DIPRE论文阅读记录——参考说明

                                             参考说明

以下内容为本人在查阅与原论文相关的文献同时加上自我理解后编写的流程及备注:

首先原论文中所描述算法的数据来源和格式一直是令我困惑的一件事,我曾一度以为是利用爬虫对网页进行检索,找到书名作者对,但又并不是单个网站,如果利用某度等搜索引擎进行检索又是不可行的,因为搜索引擎的检索结果是对输入内容进行处理过后的检索结果,而非直接按照用户提供的搜索内容进行搜索,因此找到集成信息源就成为了第一个问题。

原文的介绍中提到:

There has been considerable work on integrating a number of information sources using specially coded wrappers or lters [Tsi,MOS97].In this paper, we address the problem of extracting a relation from the thousands of sources that may hold pieces of the relation on the World Wide Web.

即文章所描述的算法是在集成信息源中进行搜索,而如果利用搜索引擎来代替集成信息源的话是不可行的。

在原文的实验部分描述:“使用了共计147G,两千四百万个网页的存储库,数据是Stanford WebBase的一部分”。由此得知其实是要从已有的一系列网页中抽取数据,且网页的格式应该是纯文本,即标签内文本不含标签。该算法的本质其实应该是文本抽取问题,形成正则表达式对字符串进行匹配并抽取结果。

其次要搞清楚:种子、模式、事件这三者的区别

种子是用来在所有URL的文档中进行搜索的,搜索到的结果记录成事件,也就是:

                                                          (前缀、作者、中缀、书名、后缀、顺序、URL)

这里都是具体的,譬如

(”著名的作者“,“东野圭吾”,“写了”,“白夜行”,“这本书,轰动一时”,“true”,“www.books.com/TopRated”)和

(“红极一时的作者”,“太宰治”,“写了”,“人间失格”,“这本书,畅销市场,“true”,“www.books.com/Sellers”)

然后根据这些查找到的事件,形成模式:

                                                                   (前缀、中缀、后缀、顺序、URL前缀)

形成的模式应该尽可能多的去匹配事件,比如形成模式:

                                                                          (的作者 .*? 写了 .*? 这本书)

上述模式中,(前缀=“的作者”,中缀=“写了”,后缀=”这本书“,顺序=true,URL前缀=”www.books.com“)

然后根据该模式去寻找,具体怎么找原文中没有提到,既然模式中包含URL前缀,应该是在能匹配该URL前缀的网页地址下利用正则表达式匹配网页的文本内容,然后将找到的事件再次记录,事件中的元组对提取成新的种子(这里的种子应该是在所有存储库找),然后利用新种子找到新事件,利用新事件形成行模式,这样成为循环,如果找到了足够多的种子,也就是元组对,则退出。

该程序的输出即是一系列的(作者,书名)的元组对,和一系列的模式集,模式集用来从添加到数据库中的新文档中抽取关系,这个程序的输入应该是从数据库的输入,而非直接利用爬虫去爬搜索引擎或者网站,同时数据库保存的模式字段可能为(URL,该URL下的文档内容),不过数据库的内容还是离不开爬虫。

外网对原文的参考文献叙述到:

All documents and seed instances reside on Hadoop’s HDFS

Hadoop’s MapReduce framework is used to process instances

and patterns over documents local to each map and reduce

worker machines on HDFS

New instances and patterns generated in each iteration are

stored on HDFS

看到这里,我也是满脸雾水。查找资料后:HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

HDFS的设计适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用。

不过最后参考文献描述,它是一个分布式信息提取系统,逻辑上与DIPRE相同,也就是不用HDFS,也可以用其他类似的信息来源代替。

至此,在刚阅读完后我产生的两个问题得到了解决:

问题一:数据来源,文章提到需要一个庞大的网络文档数据库,在以前网页基本是静态的页面,而现在基本是动态的页面,在哪里搜索种子呢?

问题二:形成模式后,拥有URL前缀和文档出现的模式,但是并没有URL列表集来和URL前缀进行匹配,因为URL后缀基本是动态生成的,那么该如何使用模式呢?

后续工作便是编程实现该算法了,由于Stanford WebBase数据量太大且在外网,在上面进行搜索总是报错(先附上链接http://diglib.stanford.edu:8091/),又对参考文献中的HDFS不太熟悉,所以准备先用mysql数据库手动插入一些外网链接和一些网页内容,利用python连接数据库获取数据把算法实现后,再想办法利用爬虫爬一些真实的数据到数据库中。

PS:

1、获取百度搜索结果的真实url:https://blog.csdn.net/u014487025/article/details/87939603

2、有个VPN能翻墙Google是极其重要的,国内几乎找不到对DIPRE算法的描述

 

内容概要:本文档详细介绍了Android开发中内容提供者(ContentProvider)的使用方法及其在应用间数据共享的作用。首先解释了ContentProvider作为四大组件之一,能够为应用程序提供统一的数据访问接口,支持不同应用间的跨进程数据共享。接着阐述了ContentProvider的核心方法如onCreate、insert、delete、update、query和getType的具体功能与应用场景。文档还深入讲解了Uri的结构和作用,它是ContentProvider中用于定位资源的重要标识。此外,文档说明了如何通过ContentResolver在客户端应用中访问其他应用的数据,并介绍了Android 6.0及以上版本的运行时权限管理机制,包括权限检查、申请及处理用户的选择结果。最后,文档提供了具体的实例,如通过ContentProvider读写联系人信息、监听短信变化、使用FileProvider发送彩信和安装应用等。 适合人群:对Android开发有一定了解,尤其是希望深入理解应用间数据交互机制的开发者。 使用场景及目标:①掌握ContentProvider的基本概念和主要方法的应用;②学会使用Uri进行资源定位;③理解并实现ContentResolver访问其他应用的数据;④熟悉Android 6.0以后版本的权限管理流程;⑤掌握FileProvider在发送彩信和安装应用中的应用。 阅读建议:建议读者在学习过程中结合实际项目练习,特别是在理解和实现ContentProvider、ContentResolver以及权限管理相关代码时,多进行代码调试和测试,确保对每个知识点都有深刻的理解。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值