摘要网络信息数量的日益增加,对人们从中获取有效信息的能力提出了更高要求。为了更好地呼运用户需求,
宁波网站优化提高信息处理效率并下降人力本钱,根据PyQt进行全文查找引擎平台开发。选用模块化思维规划网络信息收集功用,然后将获取的信息经数据处理后树立索引库,选用PageRank算法对查询呼应成果进行排序,完结检索器功用,并经过用户的点击决议计划,运用神经网络对排序成果进行二次批改。最后,在界面输入查询字符串后,便可快速得到已排序的链接呼应,从而能更好地反映用户对检索成果的感兴趣程度,并供给个性化效劳。
关键词关键词:全文查找引擎;网络信息收集;PageRank;PyQt
DOIDOI:10.11907/rjdk.181009
中图分类号:TP319
文献标识码:A文章编号文章编号:16727800(2018)009013204
英文标题DevelopmentofFullTextSearchEnginePlatformBasedonPyQt
--副标题
英文作者ZHANGWenchao,HUYulan
英文作者单位(InstituteofInformationScienceandTechnology,ShengyangLigongUniversity,Shengyang110159,China)
英文摘要Abstract:Withtheincreasingofnetworkinformation,peoplealsohavehigherrequirementsontheirabilitytoobtaineffectiveinformation.Inordertobetterrespondtousersneeds,improvetheefficiencyofinformationprocessingandreducehumanresources,thefunctionofnetworkinformationcollectionisdesignedwiththeideaofmodularizationfocusingonthehottechnologyoffulltextsearchengine,andtheindexdatabaseafterthedataisestablishedandprocessed,thenweusePageRankalgorithmtoimplementtheretrieverfunctioninthequeryresponse,andtherankingresultsaresecondarilycorrectedbyusingtheneuralnetworkthroughtheusersclickdecision.Atlast,afterthecompletionofthedevelopmentoffulltextsearchenginesystemplatformbyusingofPyQt,thequerystringisinputtedintheinterfaceandthesortedlinkresponsecanbequicklyobtained,whichcanbetterreflecttheusersinterestinthesearchresultsandprovidepersonalizedservice.
英文關键词KeyWords:fulltextsearchengine;networkinformationcollection;PageRank;PyQt
0引言
随着核算机与网络技术的快速开展,每天的信息量呈爆破式增加,查找引擎应运而生。查找引擎经过对互联网上的信息资源进行收集、提取和安排处理,为用户供给检索效劳,已成为当今一种必不可少的网络资源获取东西,也是科研人员研究的重点方向。
文献[1]和文献[2]选用目标交换模型将页面中结构化标签对应的数据部分抽取出来,形成相应的Web信息模型,但由于Web网页结构仅仅一种信息的简单表现方式,运用这些标签进行信息抽取[3]得到的精度、可信度不高,因而对网络信息的收集进行模块化规划,对页面的文本内容进行预处理后树立索引库,完结根据内容的信息抽取;文献[4]规划一个根据Web的全文查找引擎,扩充了体系的全文检索规模,完结了根据近义词的检索;文献[5]介绍一种个性化智能Agent查找引擎规划方案,选用内容过滤的办法结构用户个性化信息表,但无法体现查找成果的重要程度。本文介绍一种选用PageRank对检索呼应网页进行排序,并根据用户点击决议计划,运用神经网络批改排序成果的办法,可更好地反映用户对检索成果的感兴趣程度。
1编程环境树立
PC端全文查找引擎的效劳器操作体系选用Windows7,开发平台选用Anaconda2.3+PyQt4+eric44.5.24。Anaconda是一个用于科学核算的Python发行版,支持Linux、Mac、Windows体系,供给了包办理与环境办理功用,能够很便利地解决多版别Python并存、切换以及各种第三方包装置问题。Anaconda运用东西/指令conda进行package与environment的办理,而且已包括了Python和相关配套东西。PyQt是一个GUI库,是将Python和Qt结合在一起的产品[6],而Qt是目前比较成功与强壮的GUI库。Eric4是一个用PyQt4和QScintilla2开发的Python集成开发环境,非常适合开发Python的GUI运用。首要装置Anacoda,并挑选Python为默许解说器;接着装置PyQt,挑选默许办法装置;然后装置Eric4,在文件夹下双击install.py。假如是首次装置Eric4,则需求首要装备运转环境,在Editor目录下APIs的Language选项中挑选Python语言,点击AddfrominstalledAPIS,默许挑选eric4.api;最后单击CompileAPIS进行编译,以加速运转速度。完结上述操作后,则会在Anacoda装置途径下生成eric4.bat文件,至此开发环境树立完毕。
2全文查找引擎体系结构
现有的查找引擎根据作业原理可区分为全文查找引擎、信息检索Agent、目录查找引擎和元查找引擎4类[7],其中全文查找引擎是运用最广的引擎。全文查找引擎首要由网络资源收集、数据处理、索引库构建与成果排序4部分组成,结构如图1所示。
网络资源的收集由网络爬虫完结,网络爬虫经过解析URL链接获取网页内容,查看该页面内容后,再寻找另一个URL,不断循环该过程收集资源;数据处理可进一步精炼数据,将网络中杂乱无章的数据聚合成标准、合理的方式,以便利分析处理;索引库需求保存URL链接及其页面内呈现的单词方位信息,并对页面内容进行过滤和分词;成果排序是对检索回来信息与检索目标间相关度的一种衡量,相同也是查找引擎的重要技术,对回来高质量的检索呼应起着关键作用。
3首要模块功用完结
3.1网络资源收集
网络数据收集也称为网络爬虫[8]或数据挖掘,运用Python的标准库urllib2和非标准库BeautifulSope,经过广度优先[9]的查找办法完结数据收集。urllib2下的urlopen办法能够打开并获取一个网络远程目标,BeautifulSoup经过对网页HTML标签的定位,可格式化并安排杂乱的网络信息。网络资源的收集架构首要由URL办理器、网页下载器与网页解析器3部分组成[10]。URL办理器办理待抓取和已抓取的URL,避免重复抓取与循环抓取;网页下载器担任将互联网上URL对应的网页下载到本地;网页解析器对网页内容进行结构化,以便后续的数据处理,并从中获取有价值的信息。
网络资源获取过程如下:①在URL办理器中查看是否存在待爬取的URL链接,假如有则将该URL传递至网页下载器,下载页面内容;②将已下载的URL内容交付给网页解析器以结构化网页,并将页面中指向其它页面的URL链接输出至URL办理器;③由URL办理器判断这些URL是否存在于已爬取的URL列表中,假如不存在,则将其添加至待爬取URL队列中。重复迭代该过程便可不断获取网络资源。
3.2数据处理
收集好的HTML文档中包括许多不在索引规模内的标签和特点等信息[11],所以首要需求提取出网页的纯文本部分,运用BeautifulSoup目标的contents特点将一切标签节点以列表方式输出,并运用string特点以递归向下的办法取出一切文本信息,最后以长字符串的方式回来。
树立索引需求的是网页的URL链接和其所对应页面内容中的单词及单词方位信息,因而首要应取得网页中一切a标签中herf特点中的内容,其次将获取的文本字符串区分为词组。筛选URL链接可用BeautifulSoup目标的标签特点一步取得,而词组区分需求用到正则表达式与Python的非标准库jieba。jieba是一款根据Python的中文分词东西,选用动态规划查找最大概率途径,以找出根据词频的最大切分组合。中文的utf8编码在u4e00u9fa5规模内,根据该约束运用正则表达式提取出一切中文字符串,并可运用jieba的查找引擎模式切割获取到的中文字符串,以便后续树立索引。
3.3索引库树立
索引不只包括了一切词组的文本和方位信息,还包括文本所属网页的URL及其与文本之间的链接信息。运用SQLite创建索引库,SQLite是一个嵌入式数据库,在Pyhton中运用SQLlite3树立与数据库的衔接,将索引所需信息别离保存在5张数据表中,别离是单词列表、单词方位信息表、URL链接表、URL外部指向链接表,以及URL与单词映射关系表。其中单词方位信息代表单词在页面中呈现的次序,以单词在表中的ID字段进行标识。URL链接和外部指向链接信息在网络资源收集时由URL办理器部分取得。
索引库的GUI显现成果如图2所示,GUI程序树立的第一步需求与数据库树立衔接,PyQt4的QtSql模块供给了与平台及数据库种类无关的拜访SQL数据库接口;衔接树立之后运用QSqlTableModel模块载入相关数据表,QSqlTableModel类是一个独立处理数据库的高档界面接口;最后在QTableView窗口部件中显现设置好的模型。
3.4成果排序
无论何种查找引擎均以在最短时间内供给给用户最满意的成果为意图,在大量满意条件的呼应页面中,用户不可能体系阅读一切查询成果[12],成果排序在用户对网络查找引擎的满意度及检索相关文档成功率方面有着重要影响[13]。排序算法可根据查找成果与查询字符串的相关性对包括目标信息的网页按递减次序排序,算法按原理可分为根据文本内容和根据链接两大类[14]。根据文本内容的排序办法以与查询字符串匹配的单词频度、单词在网页中呈现的相对方位和单词呈现次序等为影响因子进行排序;根据链接的排序以相互链接网页之间相关度对其重要程度的影响为考量。
根据链接的排序办法已广泛运用于商业查找引擎中,其运用根据链接的PageRank算法对检索呼应页面进行排序。该算法的基本思维是为每个网页给定指示其重要程度的点评值,而每个网页的重要性依赖于一切指向该网页的其它网页重要性[15]。网页的PageRank值核算办法如下:
PR(X)=(1-d)+d∑ni=1Pr(Ti)C(Ti)(1)
式中,d为阻尼因子,代表用户继续点击每个网页中链接的概率,在本文中设定为0.85。n是链接到网页X的网页总数,Ti是链接到网页X的第i个页面,C(Ti)是网页Ti指向其它页面的链接总数。在该算法中,核算每个网页的点评值需预先知道指向该页面其它页面的点评值,所以首要應为每个网页设定一个初始点评值,然后经过迭代核算逐渐迫临实在值,迭代次数根据网页数量断定。
运用PageRank算法排序的成果仅仅根据网络信息,并不能反映用户兴趣目标,所以可经过树立一个神经网络,根据用户对检索呼应网页的点击决议计划批改排序成果[16],以供给愈加人性化的效劳。构建的神经网络共运用三层神经元,第一层接收查询字符串,第二层为躲藏层,担任对输入进行组合,第三层回来不同URL的权重列表。对输入层到躲藏层,以及躲藏层到输出层的默许权重别离设定为-0.2和0。
输入层每次接收到未见过的词组,便在躲藏层中新建一个节点,并为单词与躲藏节点之间,以及查询节点与呼应链接成果设置默许权重的衔接。神经网络中运用反双曲正切变换函数衡量每个节点对输入的呼应程度,以结构前向传递算法,回来一切输出层节点的输出成果。0值代表一切用户未点击的URL,1值代表用户点击过的URL。节点间衔接的权重值根据每个输出层的期望输出,运用反向传递法进行更新。关于输出层,首要核算每个节点当时输出成果与期望成果之间的距离,然后运用当时输出级别上的斜率,断定节点总输入的改动量,最后改动每个外部回指链接的强度值,其值与当时链接的强度及学习速率成必定比例;关于躲藏层,首要将每个节点输出链接的强度值乘以其目标节点所需的改动量,累加求和后改动其输出成果,然后运用当时输出级别上的斜率断定总输入的改动量,最后改动每个输入链接强度值,其值与链接的当时强度及学习速率成必定比例。
4自定义查找
自定义查找功用的完结树立在上文各模块功用基础之上,可供给主题查找效劳,其用户界面如图3所示。用户能够在链接输入框中输入某一感兴趣主题任意网页的URL,然后单击“爬取”,即可使后台在网络中主动选用广度优先模式收集该主题的网络资源,将其处理后树立索引,随后在查找文本输入框中输入与主题相关的关键词,便可得到排序后的链接及其评分成果。
5结语
本文介绍了根据PyQt的全文查找引擎体系,以便运用户了解查找引擎作业流程。全文查找引擎共有5大功用模块,别离是网络信息收集、数据处理、索引库树立、成果排序与神经网络练习。然而,神经网络部分的躲藏层较少,用户点评衡量单一,还需作进一步改进。
参考文献参考文献:
[1]LUCAIOCCHI.TheWebOEMapproachtoWebinformationextraction[J].JournalofNetworkandComputerAppications,1999,22:259269.
[2]黄豫清,戚广志,张福炎.从WEB文档中结构半结构化信息的抽取器[J].软件学报,2000(1):7378.
[3]SHEN,LI,WANG,etal.Multileveldiscriminativedictionarylearningtowardshierarchicalvisualcategorization[C].IEEEConferenceonComputerVisionandPatternRecognition.InstituteofElectricalandElectronicsEngineers,2013:383390.
[4]陈康,许婷,戴文俊,等.根据Web的全文查找引擎的规划与完结[J].核算机工程,2005(20):5153.
[5]金玉坚,刘焱.根据用户的个性化智能查找引擎[J].现代情报,2005(7):170172.
[6]陈笑飞,李滔.根据Python的虚拟仪器技术研究及完结[J].电子规划工程,2012,20(16):4850.
[7]JANSENBJ,POOCHU.AreviewofWebsearchingstudiesandaframeworkforfutureresearch[J].JournaloftheAssociationforInformationScience&Technology,2001,52(3):235246.
[8]RUNGSAWANGA,ANGKAWATTANAWITN.Learnabletopicspecificwebcrawler[J].JournalofNetwork&ComputerApplications,2005,28(2):97114.
[9]GWETUMV.TheapplicationofsamplingtothedesignofstructuralanalysisWebcrawlers[J].InternationalJournalofComputerScienceIssues,2010.
[10]刘玮玮.查找引擎中主题爬虫的研究与完结[D].南京:南京理工大学,2006.
[11]熊忠阳,蔺显强,张玉芳,等.结合网页结构与文本特征的正文提取办法[J].核算机工程,2013,39(12):200203,210.
[12]BARILANJ.ComparingrankingsofsearchresultsontheWeb[J].InformationProcessingandManagement,2004(41):15111519.
[13]COURTOISMP,BERRYMW.ResultsrankinginWebsearchengines[J].Online,1999,23(3):3946.
[14]MCCALLUMAK,NIGAMK,RENNIEJ,etal.Automatingtheconstructionofinternetportalswithmachinelearning[J].InformationRetrieval,2000,3(2):127163.
[15]馮振明.Google核心——PageRank算法讨论[J].核算机技术与开展,2006(7):8284.
[16]金祖旭,李敏波.根据用户反馈的查找引擎排名算法[J].核算机体系运用,2010,19(11):6065.
责任编辑(责任编辑:黄健)
本文转载自
宁波网站优化www.leseo.net
补充词条:
宁波seo排名
宁波网站优化推广
宁波谷歌优化
宁波谷歌seo
宁波seo推广公司