Использование textblob или spacy для исправления орфографии на французском языке - PullRequest
0 голосов
/ 04 ноября 2019

Я бы хотел исправить слова с орфографическими ошибками в тексте на французском языке, кажется, что spacy - самый точный и быстрый пакет для этого, но он сложный, я пробовал с textblob, но мне не удалось это сделатьс французскими словами

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

#english words 
from textblob import TextBlob
misspelled=["hapenning", "mornin", "windoow", "jaket"]
[str(TextBlob(word).correct()) for word in misspelled]

#french words
misspelled2=["resaissir", "matinnée", "plonbier", "tecnicien"]
[str(TextBlob(word).correct()) for word in misspelled2]

я получаю это:

английский: ['происходит', 'утро', 'окно', 'куртка']

французский: ['resaissir', 'matinnée', 'plonbier', 'tecnicien']

1 Ответ

0 голосов
/ 07 ноября 2019

textblob поддерживает только английский. Вот почему он возвращает французские слова, как они без каких-либо исправлений. Если вы хотите использовать его для французского, то вам нужно установить textblob-fr. НО Согласно официальному хранилищу здесь , textblob-fr не поддерживает проверку орфографии.

Кроме того, spaCy не поддерживает проверку орфографии в своих языковых моделях. Существует обходной путь использования spacy_hunspell, который включает hunspell (проверка орфографии LibreOffice и Mozilla Firefox), но он также не поддерживает французский язык.

Итак, я рекомендую использовать pyspellchecker который поддерживает английский, французский, немецкий, испанский и португальский языки ... Его можно легко установить с помощью pip, например, так:

pip install pyspellchecker

Английский

Вот как это можно использовать сАнглийский:

>>> from spellchecker import SpellChecker
>>>
>>> spell = SpellChecker()
>>> misspelled = ["hapenning", "mornin", "windoow", "jaket"]
>>> misspelled = spell.unknown(misspelled)
>>> for word in misspelled:
...     print(word, spell.correction(word))
jaket jacket
windoow window
mornin morning
hapenning happening

Французский

Вот как использовать его с французским ... Это точно так же, как английский с указанием langauge=fr:

>>> from spellchecker import SpellChecker
>>>
>>> spell = SpellChecker(language='fr')
>>> misspelled = ["resaissir", "matinnée", "plonbier", "tecnicien"]
>>> misspelled = spell.unknown(misspelled)
>>> for word in misspelled:
...     print(word, spell.correction(word))
plonbier plombier
matinnée matinée
tecnicien technicien
resaissir ressaisir
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...