当前位置: 首页 > news >正文

出色的网站帮忙注册公司

出色的网站,帮忙注册公司,网站开发维护合同范本,宁波优化系统原文链接--http://www.importnew.com/12707.html 全文检索引擎Solr系列—–全文检索基本原理 2014/08/18 | 分类#xff1a; 基础技术, 教程 | 2 条评论 | 标签#xff1a; solr 分享到#xff1a; 64 本文作者#xff1a; ImportNew - 刘志军 未经许可#xff0c;禁止转载… 原文链接--http://www.importnew.com/12707.html 全文检索引擎Solr系列—–全文检索基本原理 2014/08/18 | 分类 基础技术, 教程 | 2 条评论 | 标签 solr 分享到 64 本文作者 ImportNew - 刘志军 未经许可禁止转载 场景小时候我们都使用过新华字典妈妈叫你翻开第38页找到“坑爹”所在的位置此时你会怎么查呢毫无疑问你的眼睛会从38页的第一个字开始从头至尾地扫描直到找到“坑爹”二字为止。这种搜索方法叫做顺序扫描法。对于少量的数据使用顺序扫描是够用的。但是妈妈叫你查出坑爹的“坑”字在哪一页时你要是从第一页的第一个字逐个的扫描下去那你真的是被坑了。此时你就需要用到索引。索引记录了“坑”字在哪一页你只需在索引中找到“坑”字然后找到对应的页码答案就出来了。因为在索引中查找“坑”字是非常快的因为你知道它的偏旁因此也就可迅速定位到这个字。 那么新华字典的目录索引表是怎么编写而成的呢首先对于新华字典这本书来说除去目录后这本书就是一堆没有结构的数据集。但是聪明的人类善于思考总结发现每个字都会对应到一个页码比如“坑”字就在第38页“爹”字在第90页。于是他们就从中提取这些信息构造成一个有结构的数据。类似数据库中的表结构 word page_no --------------- 坑 38 爹 90 ... ... 这样就形成了一个完整的目录索引库查找的时候就非常方便了。对于全文检索也是类似的原理它可以归结为两个过程1.索引创建Indexing2. 搜索索引Search。那么索引到底是如何创建的呢索引里面存放的又是什么东西呢搜索的的时候又是如何去查找索引的呢带着这一系列问题继续往下看。 索引 Solr/Lucene采用的是一种反向索引所谓反向索引就是从关键字到文档的映射过程保存这种映射这种信息的索引称为反向索引 左边保存的是字符串序列右边是字符串的文档Document编号链表称为倒排表Posting List字段串列表和文档编号链表两者构成了一个字典。现在想搜索”lucene”那么索引直接告诉我们包含有”lucene”的文档有23103592而无需在整个文档库中逐个查找。如果是想搜既包含”lucene”又包含”solr”的文档那么与之对应的两个倒排表去交集即可获得3、10、35、92。 索引创建 假设有如下两个原始文档 文档一Students should be allowed to go out with their friends, but not allowed to drink beer. 文档二My friend Jerry went to school to see his students but found them drunk which is not allowed. 创建过程大概分为如下步骤 一把原始文档交给分词组件(Tokenizer) 分词组件(Tokenizer)会做以下几件事情(这个过程称为Tokenize)处理得到的结果是词汇单元Token 将文档分成一个一个单独的单词去除标点符号去除停词(stop word) 所谓停词(Stop word)就是一种语言中没有具体含义因而大多数情况下不会作为搜索的关键词这样一来创建索引时能减少索引的大小。英语中停词(Stop word)如”the”、”a”、”this”中文有”的得”等。不同语种的分词组件(Tokenizer)都有自己的停词(stop word)集合。经过分词(Tokenizer)后得到的结果称为词汇单元(Token)。上例子中便得到以下词汇单元(Token) StudentsallowedgotheirfriendsalloweddrinkbeerMyfriendJerrywentschoolseehisstudentsfoundthemdrunkallowed 二词汇单元(Token)传给语言处理组件(Linguistic Processor) 语言处理组件(linguistic processor)主要是对得到的词元(Token)做一些语言相关的处理。对于英语语言处理组件(Linguistic Processor)一般做以下几点 变为小写(Lowercase)。将单词缩减为词根形式如”cars”到”car”等。这种操作称为stemming。将单词转变为词根形式如”drove”到”drive”等。这种操作称为lemmatization。语言处理组件(linguistic processor)处理得到的结果称为词(Term)例子中经过语言处理后得到的词(Term)如下 studentallowgotheirfriendallowdrinkbeermyfriendjerrygoschoolseehisstudentfindthemdrinkallow。 经过语言处理后搜索drive时drove也能被搜索出来。Stemming 和 lemmatization的异同 相同之处Stemming和lemmatization都要使词汇成为词根形式。两者的方式不同Stemming采用的是”缩减”的方式”cars”到”car””driving”到”drive”。Lemmatization采用的是”转变”的方式”drove”到”drove””driving”到”drive”。两者的算法不同Stemming主要是采取某种固定的算法来做这种缩减如去除”s”去除”ing”加”e”将”ational”变为”ate”将”tional”变为”tion”。Lemmatization主要是采用事先约定的格式保存某种字典中。比如字典中有”driving”到”drive””drove”到”drive””am, is, are”到”be”的映射做转变时按照字典中约定的方式转换就可以了。Stemming和lemmatization不是互斥关系是有交集的有的词利用这两种方式都能达到相同的转换。三得到的词(Term)传递给索引组件(Indexer) 利用得到的词(Term)创建一个字典 Term Document ID student 1 allow 1 go 1 their 1 friend 1 allow 1 drink 1 beer 1 my 2 friend 2 jerry 2 go 2 school 2 see 2 his 2 student 2 find 2 them 2 drink 2 allow 2 对字典按字母顺序排序 Term Document ID allow 1 allow 1 allow 2 beer 1 drink 1 drink 2 find 2 friend 1 friend 2 go 1 go 2 his 2 jerry 2 my 2 school 2 see 2 student 1 student 2 their 1 them 2 合并相同的词(Term)成为文档倒排(Posting List)链表Document Frequency文档频次表示多少文档出现过此词(Term)Frequency词频表示某个文档中该词(Term)出现过几次对词(Term) “allow”来讲总共有两篇文档包含此词(Term)词Term)后面的文档链表总共有两个第一个表示包含”allow”的第一篇文档即1号文档此文档中”allow”出现了2次第二个表示包含”allow”的第二个文档是2号文档此文档中”allow”出现了1次 至此索引创建完成搜索”drive”时”driving””drove””driven”也能够被搜到。因为在索引中”driving””drove””driven”都会经过语言处理而变成”drive”在搜索时如果您输入”driving”输入的查询语句同样经过分词组件和语言处理组件处理的步骤变为查询”drive”从而可以搜索到想要的文档。 搜索步骤 搜索”microsoft job”用户的目的是希望在微软找一份工作如果搜出来的结果是:”Microsoft does a good job at software industry…”这就与用户的期望偏离太远了。如何进行合理有效的搜索搜索出用户最想要得结果呢搜索主要有如下步骤 一对查询内容进行词法分析、语法分析、语言处理 词法分析区分查询内容中单词和关键字比如english and janpan”and”就是关键字”english”和”janpan”是普通单词。根据查询语法的语法规则形成一棵树语言处理和创建索引时处理方式是一样的。比如leaned–leandriven–drive二搜索索引得到符合语法树的文档集合三根据查询语句与文档的相关性对结果进行排序 我们把查询语句也看作是一个文档对文档与文档之间的相关性relevance进行打分scoring分数高比较越相关排名就越靠前。当然还可以人工影响打分比如百度搜索就不一定完全按照相关性来排名的。 如何评判文档之间的相关性一个文档由多个或者一个词Term组成比如”solr” “toturial”不同的词可能重要性不一样比如solr就比toturial重要如果一个文档出现了10次toturial但只出现了一次solr而另一文档solr出现了4次toturial出现一次那么后者很有可能就是我们想要的搜的结果。这就引申出权重Term weight的概念。 权重表示该词在文档中的重要程度越重要的词当然权重越高因此在计算文档相关性时影响力就更大。通过词之间的权重得到文档相关性的过程叫做空间向量模型算法(Vector Space Model) 影响一个词在文档中的重要性主要有两个方面 Term FrequenceytfTerm在此文档中出现的频率ft越大表示越重要Document Frequencydf表示有多少文档中出现过这个Tremdf越大表示越不重要 物以希为贵大家都有的东西自然就不那么贵重了只有你专有的东西表示这个东西很珍贵权重的公式空间向量模型 文档中词的权重看作一个向量 Document {term1, term2, …… ,term N} Document Vector {weight1, weight2, …… ,weight N} 把欲要查询的语句看作一个简单的文档也用向量表示 Query {term1, term 2, …… , term N} Query Vector {weight1, weight2, …… , weight N} 把搜索出的文档向量及查询向量放入N维度的空间中每个词表示一维 夹角越小表示越相似相关性越大转载于:https://www.cnblogs.com/rocky-fang/p/6526695.html
http://www.huolong8.cn/news/170655/

相关文章:

  • 网站程序 seo上海网站建设套餐
  • 实现网站开发php网站作业
  • 电商网站建设内容规划建设银行钓鱼网站
  • 网站开发商网页设计app软件
  • 网站数据中心的建设建设银行个人网银登录
  • 南京新标特企业网站哪家广告做的哈尔滨关键词优化推广
  • 电脑版和手机版网站怎么做如何制作网页模板
  • 张家港做网站优化排名外链 网站权重
  • 遇到灾难网站变灰怎么做j建设网站
  • 简述建立网站的步骤传播性wordpress主题
  • 域名到期了网站备案还有效吗室内设计师招聘网站
  • 河南省监理协会官方网站建设百度竞价和优化的区别
  • 阿里巴巴国际网站建设wordpress滑动解锁
  • 邹城市网站建设如何用服务器代替空间做网站
  • 个人备案公司网站谈谈网站建设创新问题
  • 网站上传后后台进不去京东内部券网站怎么做
  • 在线可以做翻译的网站吗南宁区建设银行招聘网站
  • 网站开发域名注册成都手机端建站模板
  • 阿里云怎么做淘宝客网站常用的html编辑器有哪些
  • 优秀地方门户网站系统网络营销网
  • phpcms 笑话网站wordpress国人编辑器
  • 那个网站可以做考卷申请了域名 网站怎么建设呢
  • 影响网站打开速度的因素淘宝做问卷的网站
  • linux系统搭建网站保定网站排名哪家公司好
  • 装修公司营销网站模板制作网页时一般使用什么对网页进行布局
  • 做图标的网站网店装修图
  • 做特效很牛的一个外国网站自己可以建设环保公益网站吗
  • 用Html5做网站徐城乡建设局网站
  • 重庆在百度做个网站多少钱烟台网站关键词推广
  • 合肥建设干部学校网站wordpress绑定域名后乱码