我對Python和NLTK相當新穎。我忙於一個可以執行拼寫檢查的應用程序(用正確拼寫的單詞替換拼寫錯誤的單詞), 我目前使用Python-2.7上的Enchant Library,PyEnchant和NLTK庫。下面的代碼是處理更正/替換的類。Python的拼寫檢查器
from nltk.metrics import edit_distance
class SpellingReplacer(object):
def __init__(self, dict_name = 'en_GB', max_dist = 2):
self.spell_dict = enchant.Dict(dict_name)
self.max_dist = 2
def replace(self, word):
if self.spell_dict.check(word):
return word
suggestions = self.spell_dict.suggest(word)
if suggestions and edit_distance(word, suggestions[0]) <= self.max_dist:
return suggestions[0]
else:
return word
我寫了一個函數,它在單詞的列表,並進行高清替換每個單詞和返回的單詞的列表,但拼寫正確。
def spell_check(word_list):
checked_list = []
for item in word_list:
replacer = SpellingReplacer()
r = replacer.replace(item)
checked_list.append(r)
return checked_list
>>> word_list = ['car', 'colour']
>>> spell_check(words)
['car', 'color']
現在我真的不喜歡這一點,因爲它不是很準確,我正在尋找一種方式來實現對單詞的拼寫檢查和更換。我還需要一些可以解決「caaaar」這樣的拼寫錯誤的東西?有更好的方法來執行拼寫檢查嗎?如果是的話,他們是什麼? Google如何做這件事,因爲他們的拼寫建議者非常好? 任何建議