2012-03-12 18 views
6

我想解決分詞問題(從沒有空格的長字符串中分析單詞)。 舉例來說,我們希望從somelongword[some, long, word]之間抽取單詞。分詞統計方法

我們可以通過字典的一些動態方法來實現這一點,但我們遇到的另一個問題是解析模糊性。即orcore =>or coreorc ore(我們沒有考慮詞組的含義或詞性)。所以我想到使用一些統計或ML方法。

我發現樸素貝葉斯和維特比算法與火車集可用於解決這個問題。你能告訴我一些關於這些算法在分詞問題上的應用的信息嗎?

UPD:我實現了在Clojure的這種方法,使用了一些建議由彼得·諾維格的code

回答

4

我認爲slideshow由彼得·諾維格和塞巴斯蒂安的Thurn是一個很好的點開始。它展示了谷歌所做的真實世界的工作。

+0

謝謝,好的一點開始。我在Peter Norvig的網站上找到了很多有用的代碼片段。 – mishadoff 2012-03-20 13:36:46

+3

幻燈片出於某種原因已被取消。 – 2013-03-01 09:06:26

3

這個問題在很多亞洲語言中沒有明確地對單詞邊界進行編碼(例如中文,泰文)的分詞完全是類似的。如果您想要解決問題的背景,我建議您查看Google學術搜索獲取當前的中文分詞方法。

您可以先看看一些較舊的方法: Sproat,Richard和Thomas Emerson。第一個國際中文分詞bakeoff(http://www.sighan.org/bakeoff2003/paper.pdf)

如果你想要一個現成的解決方案,我建議LingPipe的教程(http:// alias-i.com/lingpipe/demos/tutorial/chineseTokens/read-me.html)。我已將它用於未分段的英文文本,並取得了良好的效果。我在幾百萬字的newswire文字上訓練了潛在的字符語言模型,但我懷疑爲了這個任務,使用任何相對正常的英文文本的語料庫,您將獲得合理的性能。

他們使用拼寫校正系統來推薦候選人的「更正」(其中候選更正與輸入相同,但插入空格)。他們的拼寫校正器基於Levenshtein編輯距離;他們只是不允許替換和換位,並將可允許的插入限制在一個空間中。