2010-02-10 50 views
9

什麼是關於如何建立一個自然語言解析程序是這樣的書籍自然語言模型:建設,修復拼寫錯誤

 
input: I got to TALL you 
output: I got to TELL you 

input: Big RAT box 
output: Big RED box 

in: hoo un thum zend three 
out: one thousand three 

它必須有語言模式,讓預測拼錯什麼話!

什麼是關於如何建立這樣的工具,最好的書?

p.s.是否有免費的Web服務拼寫檢查?從谷歌可能?..

+5

+1爲拼寫錯誤「拼寫錯誤」。這是一個笑話,對吧? – APC 2010-02-10 13:00:11

+1

@APC哈哈哈還挺。快速打字,但它展示了這些工具是如何有用的。 – EugeneP 2010-02-10 13:06:06

+0

+1,在Google Wave中使用Spelly!:P – 2010-02-10 13:11:35

回答

7

彼得·諾維格寫了一個了不起的spell checker。也許這可以幫助你。

+0

剛剛打算鏈接:-) +1 – 2010-02-10 12:58:57

+0

酷腳本。看起來好像直接將它擴展爲單詞bigrams或trigrams,如果你有選擇語言的正確文本語料庫的話。 – 2010-02-10 13:10:29

+0

的確,這是我在下面的帖子中試圖記住的腳本。 +1 – 2010-02-10 14:02:26

2

soundexwiki)是一種選擇

+0

正如George Bernard Shaw(其中許多人)總是抱怨的那樣,事情拼寫方式和發音方式之間經常存在很大的分歧。至少用英語。 SOUNDEX()可能是意大利語的一種有效方法。 – APC 2010-02-10 13:47:36

+0

這是Delphi RTL中的一種,它非常不可預知,但相當酷 - 對於喜歡寫fenetiklee err ..發音的人來說很好。 – 2010-02-10 15:32:47

1

Dev Days London,邁克爾·斯帕克斯提出了Python腳本正是編碼爲。這非常簡單!看看您是否可以在Google中找到。也許這裏有人會有鏈接。

+3

根據MetaSO上的DevDays主題,Michael Sparks提供的腳本是已經提到的Peter Norvig腳本:http://meta.stackexchange.com/questions/27859/devdays-london-can-i-get-hold -of-the-presentation-material/28522#28522 – APC 2010-02-10 13:15:24

+0

是的,這是正確的,謝謝 – 2010-02-10 14:01:46

4

你至少有三種選擇

  1. 您可以編寫一個程序,明白的語言(即一個詞是什麼意思)。這是今天研究的一個話題。當你可以購買一臺速度足夠快的計算機來運行這樣的程序時(這可能是10年後計算機已經比現在快1000倍),預計會有第一個結果。

  2. 使用一個巨大的文集(文本文件),以培養Hidden Marcov Model

  3. 使用龐大的語料庫並生成有關四聯碼 n-grams的統計信息,即N個詞的元組出現的頻率。我沒有這方面的鏈接,但這個想法是,有些詞總是出現在其他詞的上下文中。所以,當你將文本解析爲4-gram並在數據庫中查找並找不到時,可能會發現當前元組有問題。下一步是找到所有可能的匹配(其他4克,其中有一個小的soundex或類似的距離與當前的),並嘗試使用最高頻率。

    谷歌有這個數據相當多的語言,你會發現更多的有關這個谷歌實驗室。

[編輯]一些google搜索後,我終於找到了鏈接:在this page,你可以買英語1到谷歌收集到整個互聯網上的DVD 6 5克。

谷歌搜索「谷歌拼寫統計正克」也將開啓了一些有趣的環節。

+0

Google會與我分享這些數據嗎? ;) – EugeneP 2010-02-10 13:11:53

+0

我這麼認爲。我必須再次找到鏈接。 – 2010-02-10 13:41:56

+0

謝謝你提供了一個完整而有趣的答案。 – EugeneP 2010-02-25 08:23:26

2

有相當多的Java庫,自然語言處理,這將有助於你實現一個拼寫檢查工具。但你問了一本書。 Foundations of Statistical Natural Language Processing Christopher D. Manning和HinrichSchütze看起來是一個不錯的選擇。第一作者是斯坦福大學教授,領導一個小組負責自然語言處理和開發許多人使用的Java庫和NLP資源。