Elasticsearch核心技术与实战学习笔记 30 | 多语言及中文分词与检索

一 序

  本文属于极客时间Elasticsearch核心技术与实战学习笔记系列。

二 自然语言与查询 Recall

当处理人类自然语言时,有些情况,尽管搜索和原文不完全匹配,但是希望搜到一些内容

  • Quick brown fox 和 fast brown fox / Jumping fox 和 Jumped foxes

一些可采取的优化

  • 归一化词元:清除变音符号,如 role 的的时候 也会匹配 role
  • 抽取词根:清除单复数和时态的差异
  • 包含同义词
  • 拼写错误:拼写错误,或者同音异形词

混合多语言的挑战

分词的挑战

英文分词:You’re 分成一个还是多个?Half -baked
中文分词

  • 分词的标椎:哈工大标椎中,姓和名分开。HanLP 是在一起的。具体情况需制定不同的标椎
  • 歧义(组合型歧义,交际型歧义,真歧义)
  1. 中华人民共和国 / 美国会通过对台收武器法案 / 上海仁和服装厂

中文分词方法的演变 - 字典法

查字典 - 最容易想到的分词方法(北京航空大学的梁南元教授提出)

  • 一个句子从左到到右扫描一遍。遇到有点词就标识出来。找到复合词,就找最长的
  • 不认识的字符串就分割成单字词

最小词数的分词理论 - 哈工大王晓龙博士把查字典的方法理论化

  • 一句话应该分词数量最少的词串
  • 遇到二义性的分割,无能为力(例如:“发展中国家”/“上海大学城书店”)
  • 用各种文化规则来解决二义性,都并不成功

中文分词方法的演变 - 基于统计法的机器学习算法

统计语言模型 - 1990 年前后 ,清华大学电子工程系郭进博士

  • 解决了二义性问题,将中文分词的错误率降低了一个数据级。概率问题,动态规划 + 利用维特比算法快速找到最佳分词

基于统计的机器学习算法

  • 这类目前常用的算法是 HMM、CRF、SVM、深度学习算法等算法。比如 Hanlp 分词工具是基于 CRF 算法为例,基本思路是对汉字进行标注训练,不仅考虑了词语出现的频率,还考虑上下文,具有较好的学习能力,因此其对歧义词和未登录词的识别都具有良好的下效果
  • 随着深度学习的兴起,也出现了基于神经网路的分词器,有人尝试使用双向 LSTM + CRF 实现分词器,其本质上是序列标注,据报道其分词器字符准确率可高达 97.5%

中文分词器现状

  • 中文分词器以统计语言模型为基础,经过几十年的发展,今天基本已经可以看做是一个已经解决的问题
  • 不同分词器的好坏,主要的差别在于数据的使用和工程使用的精度
  • 常见的分词器都是使用机器学期算法和词典相结合,一方面能够提高分词准确率,另一方面能够改善领域适应性

一些中文分词器

  • HanLP - 面向生产环境的自然语言处理包

https://github.com/KennFalcon/elasticsearch-analysis-hanlp/

  • IK 分词器

#安装插件
bin/elasticsearch install https://github.com/KennFalcon/elasticsearch-analysis-hanlp/releases/download/v7.1.0/elasticsearch-analysis-hanlp-7.1.0.zip

其中HanLP远程词典配置

配置文件为ES_HOME/config/analysis-hanlp/hanlp-remote.xml

<properties>
    <comment>HanLP Analyzer 扩展配置</comment>

    <!--用户可以在这里配置远程扩展字典 -->
    <entry key="remote_ext_dict">words_location</entry>

    <!--用户可以在这里配置远程扩展停止词字典-->
    <entry key="remote_ext_stopwords">stop_words_location</entry>
</properties>

#这是ik分词器安装插件
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.0/elasticsearch-analysis-ik-7.1.0.zip

ik分词器也是支持词典热更新的。

拼音

https://github.com/medcl/elasticsearch-analysis-pinyin/

demo:

POST _analyze
{
  "analyzer": "ik_smart",
  "text": ["剑桥分析公司多位高管对卧底记者说,他们确保了唐纳德·特朗普在总统大选中获胜"]

}

小结

猜你喜欢

转载自blog.csdn.net/bohu83/article/details/106463261
今日推荐