《從Lucene到Elasticsearch:全文檢索實戰》學習筆記二
天我給大家講講分詞演算法
分詞演算法概述:詞是語義的最小單位。分詞對搜尋引擎的作用很大,可以促進搜尋引擎程式自動識別語句的含義,可以提高搜尋結果的匹配度,分析的質量也將直接影響了搜尋結果的精確度。分詞存在於文字索引的建立過程和使用者提交檢索過程。利用相同的分詞器把短語或句子劃分成相同的結果,才能保證檢索過程順利進行。中文和英文的分詞簡介如下:
1.英文分詞的原理
基本的處理流程是:
輸入文字——————>詞彙分割——————>詞彙過濾——————>詞幹提取——————>大寫轉為小寫——————>結果輸出。
2.中文分詞原理
中文分詞比較複雜,這主要是因為中文的詞與詞之間並不像英文中那樣用空格來隔開。中文分詞主要有3種方法:基於詞典匹配的分詞方法、基於語義理解的分詞、基於詞頻統計的分詞。
基於字典匹配的分詞方法按照一定的匹配策略將輸入的字串與機器字典詞條進行匹配,查字典分詞實際上就是把一個句子從左向右掃描一遍,遇到字典有的詞就標識出來,遇到複合詞就找到最長的詞匹配,遇到不認識的字串則切分成單個詞。按照匹配操作的掃描方向不同,字典匹配分詞方法可以分為正向匹配、逆向匹配以及結合來兩者的雙向匹配演算法:按照不同長度優先匹配的情況,可以分為最大匹配和最小匹配:按照是否與詞性標註過程相結合,又可以分為單純分詞方法和分詞與詞性標註相結合的方法。幾種常用的詞典分詞方法如下:
正向最大匹配(由左到右的方法)
逆向最大匹配(由右到左的方法)
基於語義理解的分詞方法是模擬人腦對語言和句子的理解,對句子進行拆分。基本模式是把分詞、句法、語義分析並行進行,利用句法和語義資訊來處理分詞的歧義。
一般結構總通常包括分詞子系統、句法語義子系統、排程系統。在排程系統的協調下,分詞子系統可以獲得有關詞、句子等等句法和語義資訊,模擬人腦對句子等理解過程。基於語義理解等分詞方法需要使用大量等語言知識和資訊。
在中文文章的上下文中,相鄰的字搭配出現的頻率越多,就越有可能形成一個固定的詞。根據n元語法知識可以知道,字與字相鄰同時出現的頻率或概率能夠較好地反映成詞的可信度。實際的系統中,通過對精心準備的中文語料中相鄰共現概率,統計出來的資訊體現了中文環境下漢字之間結合的緊密程度。當緊密程度高於閥值時,便可認為此字組可能構成一個詞。
基於詞頻統計的分詞方法只需要對語料中的字組頻度進行統計,不需要切分詞典,因而叫作無詞典分詞法或統計分詞方法。這種方法經常抽出一些共現頻度高但並不是詞的常用字組,需要專門處理,提高精確度。實際應用的統計分詞系統都使用一個基本的常用詞詞典,即將中文分詞中的串頻統計和串匹配結合起來,既發揮匹配分詞切分速度快、效率高的特點,又利用了無詞典分詞結合上下文識別生詞、自動消除歧義的優點。
作者:柯之夢
來源:CSDN
原文:https://blog.csdn.net/yin4302008/article/details/85925466
版權宣告:本文為博主原創文章,轉載請附上博文連結!