zoukankan      html  css  js  c++  java
  • 《从Lucene到Elasticsearch:全文检索实战》学习笔记二

    今天我给大家讲讲分词算法

          分词算法概述:词是语义的最小单位。分词对搜索引擎的作用很大,可以促进搜索引擎程序自动识别语句的含义,可以提高搜索结果的匹配度,分析的质量也将直接影响了搜索结果的精确度。分词存在于文本索引的建立过程和用户提交检索过程。利用相同的分词器把短语或句子划分成相同的结果,才能保证检索过程顺利进行。中文和英文的分词简介如下:

          1.英文分词的原理

          基本的处理流程是:

         输入文本——————>词汇分割——————>词汇过滤——————>词干提取——————>大写转为小写——————>结果输出。

          2.中文分词原理

          中文分词比较复杂,这主要是因为中文的词与词之间并不像英文中那样用空格来隔开。中文分词主要有3种方法:基于词典匹配的分词方法、基于语义理解的分词、基于词频统计的分词。

           基于字典匹配的分词方法按照一定的匹配策略将输入的字符串与机器字典词条进行匹配,查字典分词实际上就是把一个句子从左向右扫描一遍,遇到字典有的词就标识出来,遇到复合词就找到最长的词匹配,遇到不认识的字串则切分成单个词。按照匹配操作的扫描方向不同,字典匹配分词方法可以分为正向匹配、逆向匹配以及结合来两者的双向匹配算法:按照不同长度优先匹配的情况,可以分为最大匹配和最小匹配:按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与词性标注相结合的方法。几种常用的词典分词方法如下:

            正向最大匹配(由左到右的方法)

            逆向最大匹配(由右到左的方法)

          基于语义理解的分词方法是模拟人脑对语言和句子的理解,对句子进行拆分。基本模式是把分词、句法、语义分析并行进行,利用句法和语义信息来处理分词的歧义。

         一般结构总通常包括分词子系统、句法语义子系统、调度系统。在调度系统的协调下,分词子系统可以获得有关词、句子等等句法和语义信息,模拟人脑对句子等理解过程。基于语义理解等分词方法需要使用大量等语言知识和信息。

         在中文文章的上下文中,相邻的字搭配出现的频率越多,就越有可能形成一个固定的词。根据n元语法知识可以知道,字与字相邻同时出现的频率或概率能够较好地反映成词的可信度。实际的系统中,通过对精心准备的中文语料中相邻共现概率,统计出来的信息体现了中文环境下汉字之间结合的紧密程度。当紧密程度高于阀值时,便可认为此字组可能构成一个词。

         基于词频统计的分词方法只需要对语料中的字组频度进行统计,不需要切分词典,因而叫作无词典分词法或统计分词方法。这种方法经常抽出一些共现频度高但并不是词的常用字组,需要专门处理,提高精确度。实际应用的统计分词系统都使用一个基本的常用词词典,即将中文分词中的串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。
    ---------------------
    作者:柯之梦
    来源:CSDN
    原文:https://blog.csdn.net/yin4302008/article/details/85925466
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Java tomcat max-http-header-size配置导致的oom
    Idea修改jvm参数
    Java List的SubList使用问题
    Java Arrays.asList的三个坑
    Java 重写equals的时候为什么一定要重写hashcode-一个例子
    远心镜头
    镜头常识总结
    halcon中保存图像jpeg的压缩比
    红外光 相机拍照
    电磁波的穿透能力总结
  • 原文地址:https://www.cnblogs.com/yinhongke/p/10229014.html
Copyright © 2011-2022 走看看