2010-10-27 332 views
2

我寫了一個代碼,它向Google發送查詢並返回結果。我從這些結果中提取片段(摘要)以供進一步處理。然而,有時非英語單詞在這些我不想要的片段中。例如:刪除python中的非英語單詞

/\u02b0w\u025bn w\u025bn unstressed \u02b0w\u0259n w\u0259n/ 

我只想要這個句子中的「非重讀」字。 我該怎麼做? 謝謝

+0

這段文字沒有任何意義。 – 2010-10-27 09:17:47

+0

你想要真正的英語詞典單詞,還是僅含有ASCII字符的單詞(即使它們是名稱或地點等專有名詞,或拼寫錯誤英文單詞)? – detly 2010-10-27 09:18:32

+0

@Glenn:這些是unicode格式的文字 – Hossein 2010-10-27 09:20:08

回答

1

您可以將您收到的單詞與英文單詞字典進行比較,例如BSD系統上的/ usr/share/dict/words。

我猜想Google的結果大部分都是語法正確的,但如果不是,您可能需要查看詞幹以便與您的字典匹配。

+0

撇開谷歌的結果來自互聯網,因此在語法上至多可疑的事實,你將不得不做反對。沒有單詞文件將包含每個單詞的每個變化。 – 2010-10-27 09:38:03

+0

問題是如果這是必需的。我們需要100%準確的結果嗎?還是我們可以生活在一個最佳的結果中。使用dictonary + stemming可能並不完美,但對TS來說可能已經足夠好了。 – bastijn 2010-10-27 09:41:43

1

您可以使用PyWordNet。這是WordNet的Python界面。只需在白色空格中分割您的句子,並檢查字典中是否有每個單詞。

2

PyEnchant可能是一個簡單的選項。我不知道它的速度,但你可以做這樣的事情:一個教程發現here

>>> import enchant 
>>> d = enchant.Dict("en_US") 
>>> d.check("Hello") 
True 
>>> d.check("Helo") 
False 
>>> 

,它也有自己的選擇,返回其建議你可以再次用於另一個查詢或東西。此外,你可以檢查你的結果是否在拉丁-1(is_utf8()excist,不知道是否is_latin-1()也可以使用類似於Enca這樣的文本文件的編碼檢測,基於知識他們的語言)。

+0

這是否允許標點符號和特殊字符?這個想法是檢查非英文文本 – MANU 2016-12-03 15:06:00