Я новичок в Python и NLTK. Я занят приложением, которое может выполнять проверки орфографии (заменяет неправильно написанное слово правильно записанным словом), В настоящее время я использую Enchant Library на Python-2.7, PyEnchant и библиотеке NLTK. Код ниже - это класс, который обрабатывает коррекцию/замену.
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 на каждое слово и возвращает список слов, но правильно написана.
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 делает это, например, потому что их эксперт по правописанию очень хорош? Любые предложения