что означает hunspell_spell - PullRequest
       146

что означает hunspell_spell

0 голосов
/ 04 августа 2020

Я работаю над классификацией текста и столкнулся с проблемой орфографии. Я пытаюсь решить эту проблему с помощью spacy_hunspell, но не могу понять, в чем суть свойства hunspell_spell, потому что оно всегда возвращает None.

for token in  nlp('I can haz cheezeburger.'):
    print(token._.hunspell_spell)
    if not token._.hunspell_spell:
        print(token.text, token._.hunspell_suggest)

Код, указанный выше, возвращает:

None
I ['I', 'Ia', 'In', 'Ir', 'It', 'Io', 'IE', 'IA', 'AI', 'IN', 'RI', 'IT', 'IL', 'ID', 'DI']
None
can ['Can', 'van', 'cab', 'cam', 'ca', 'an', 'cane', 'cans', 'scan', 'cant', 'clan', 'cyan', 'Scan', 'car', 'ran']
None
haz ['ha', 'haze', 'hazy', 'has', 'hat', 'had', 'hag', 'ham', 'hap', 'hay', 'haw', 'ha z']
None
cheezeburger ['cheeseburger', 'vegeburger']
None
. []

Вначале я думал, что это свойство возвращается с ошибкой токена или нет. Кто-нибудь знает, что означает свойство hunspell_spell? Как проверить, что слово написано с ошибкой с помощью spacy_hunspell (не соответствует морфологическим правилам)? Я думаю, что моя реализация не идеальна.

for token in  nlp('I can haz cheezeburger.'):
    is_correct = any([token.text == str.lower(suggest) for suggest in token._.hunspell_suggest])
    is_correct = "correct" if is_correct else "misspeled"
    print(f"{token.text} is {is_correct}")

Указанный выше код возвращает:

I is misspeled
can is correct
haz is misspeled
cheezeburger is misspeled
. is misspeled

1 Ответ

0 голосов
/ 04 августа 2020

Это бесплатная библиотека для проверки орфографии и морфологического анализатора, а также инструмент командной строки

...