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": ["劍橋分析公司多位高管對臥底記者說,他們確保了唐納德·特朗普在總統大選中獲勝"]

}

小結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章