1. 程式人生 > >中文分詞演算法概述

中文分詞演算法概述

中文分詞

詞是最小的有意義的語言成分,對一段文字進行切分稱作分詞。英文單詞之間以空格作為自然分界符,而中文以字為基本的書寫單位,詞語之間沒有明顯的區分標記。把中文的漢字序列切分成有意義的詞,就是中文分詞。中文分詞是中文資訊處理的基礎與關鍵。

中文分詞演算法

中文分詞技術屬於自然語言處理技術範疇,對於一句話,人可以通過自己的知識來明白哪些是詞,哪些不是詞,但如何讓計算機也能理解?其處理過程就是分詞演算法。中文分詞演算法主要分為3類:

(1) 基於字典、詞庫分詞(字串匹配,機械分詞方法)
將待分析的漢字串與一個“充分大”的機器詞典中的詞條進行匹配,若在詞典中找到某個字串,則匹配成功,識別出一個詞。根據掃描方向的不同分為正向匹配和逆向匹配;根據不同長度優先匹配的情況,分為最大(最長)匹配和最小(最短)匹配;根據與詞性標註過程是否相結合,又可以分為單純分詞方法和分詞與詞類標註相結合的一體化方法。
這類方法簡單、分詞效率較高,但字典中未收錄的詞識別率低。漢語語言現象複雜豐富,詞典的完備性、規則的一致性等問題使其難以適應開放的大規模文字的分詞處理。
實際應用中,將機械分詞作為初分手段,利用語言資訊提高切分準確率。優先識別具有明顯特徵的詞,以這些詞為斷點,將原字串分為較小字串再機械匹配,以減少匹配錯誤率;或將分詞與詞類標註結合。

(2) 基於統計分詞(無字典分詞)
基於字和詞的統計資訊,如把相鄰字間的資訊、詞頻及相應的共現資訊等應用於分詞,相鄰的字同時出現的次數越多,越有可能構成一個詞語。
對語料中的字組頻度進行統計,不需要切詞字典,但錯誤率很高。
可以考慮:使用基本詞典進行關鍵詞分詞,使用統計方法識別新片語,兩者結合。

(3) 基於知識理解分詞(基於語義)
該方法主要基於句法、語法分析,並結合語義分析,通過對上下文內容所提供資訊的分析對詞進行定界,它通常包括三個部分:分詞子系統、句法語義子系統、總控部分。在總控部分的協調下,分詞子系統可以獲得有關詞、句子等的句法和語義資訊來對分詞歧義進行判斷。
這類方法試圖讓機器具有人類的理解能力,需要使用大量的語言知識和資訊。由於漢語語言知識的籠統、複雜性,難以將各種語言資訊組織成機器可直接讀取的形式。

常用中文分詞引擎

目前常見的中文分詞引擎有:庖丁解牛、IKAnalyzer、盤古分詞等。

參考資料