Talk is Cheap, Show me the Code! <<网站首页文章列表

  • 搜索引擎入门——什么是中文分词以及它对于搜索引擎的意义

    什么是分词分词就是将连续的字序列,按照一定的规范重新拆分、组合成词序列的过程。通常字序列是无意义或者弱意义的,而词序列是具有完整意义表达的最小单元,它比字序列饱满但比短语简练。所以分词的直接目的就是将一段文本,提取出一系列最符合文本本意的词序列。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,但是词之间是没有形式上的分界符的,所以中文分词大多借助词库字典来进行分词。比如一句话:我是一个年过半甲的程序员,比较合理的分词结果就是我、是、一个、年过半甲、的、程序员。不过,分词的最终结果受应用场景、分词技术综合影响,具体的结果会稍有不同。比如,垂直领域的搜索引擎大多行业相关,所以其停用词(stopword)范围也不一样。上面例子中的我、是、的都被看做停用词,不会被索引,因为搜索这些关键字会被认为是无意义搜索。而对于年过半甲这个词,由于不是一个通用的词语,所以在基于词库的分词器中可能也不会被分出。 停用词(stopword)人类语言包含很多功能词。与其他词相比,功能词没有什么实际含义。最普遍的功能词比如限定词(“这”、“那”、“个”、“啊”等),这些词帮助在文本中描述名词和表达概念,如地点或数量。介词如:“下”,“上” 等表示两个词的相对位置。这些功能词的两个特征促使在搜索引擎的文本处理过程中对其特殊对待。第一,这些功能词极其普遍(词的文档频率很高)。记录这些词在每一个文档中的数量需要很大的磁盘空间。第二,由于它们的普遍性和功能,这些词很少单独表达文档相关程度的信息。如果在检索过程中考虑每一个词而不是短语,这些功能词基本没有什么帮助。在信息检

    搜索引擎   分词   中文分词   2019-08-13 浏览(479) 阅读原文>>
  • 搜索引擎进阶——关键字预处理模块

    前言在搜索引擎的两个阶段会用到分词功能,分别是索引和查询。先说一下个人在垂直搜索引擎常用的索引分词设置(针对IK分词器)。无论采用何种分词设置,都会有一定的局限性或者说缺陷。因此在合适的阶段选择适合业务场景的分词方式才是最重要的。 索引阶段IK分词器提供了两种分词模式,通过布尔变量useSmart来设置。我在索引阶段设置useSmartfalse,其含义就是采用最小粒度分词,即会分出最多的可能的词汇(包括分词歧义词汇)。比如短语“中华人民共和国”的分词结果就是:中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、共和、国。可以看出来,这个模式下分词器会将词库中有的词全部分出来。其中“华人”这个词在短语中属于歧义词,在这个语境中是不合适的。之所以选择这个模式,是因为在索引的时候尽可能的建立更多分词的倒排索引关系链,这与全文检索的“一次索引,多次查询”的特点有关。对于这个短语来说,除了“华人”之外的其它分词能搜索到这个短语,都是合理的场景。 查询阶段我在查询阶段(也就是用户输入关键字查询结果中的分词阶段),设置了useSmarttrue。其含义是IK分词器会用其智能分词功能给你最合适的分词结果,一般来说是词语最少的结果,但是它能最大程度保留原短语的语境含义。比如短语“中华人民共和国”的分词结果就是:中华、人民共和国。这两个词就最大程度保留了语境含义,而且其输入能完美映射到索引阶段。对于,索引中出现“中华”和“人民共和国”两个词语相距很远的情况,可以通过设置查询跨度来过滤。"中华人民共和国"~2,这里的2是指两个双引号之间的短语,各个分词的起始位置之间的最大允许间隔。 在Solr的schema.xml的配置xml

    Solr   Java   分词   字典树   搜索引擎   2019-07-24 浏览(305) 阅读原文>>
  • 1 
    blogTest
    分享文章
     
    使用APP的"扫一扫"功能,扫描左边的二维码,即可将网页分享给别人。
    你也可以扫描右边本博客的小程序二维码,实时关注最新文章。