Я пытаюсь исправлять опечатки с помощью spaCy, и для этого мне нужно знать, существует ли слово в словаре или нет. Если нет, идея состоит в том, чтобы разделить слово на две части, пока все сегменты не будут существовать. Например, «ofthe» не существует, «of» и «the» существуют. Поэтому мне сначала нужно знать, существует ли слово в словаре. Вот тут и начинаются проблемы. Я попробую:
for token in nlp("apple"):
print(token.lemma_, token.lemma, token.is_oov, "apple" in nlp.vocab)
apple 8566208034543834098 True True
for token in nlp("andshy"):
print(token.lemma_, token.lemma, token.is_oov, "andshy" in nlp.vocab)
andshy 4682930577439079723 True True
Понятно, что это не имеет смысла, в обоих случаях "is_oov" равно True, и оно есть в словаре. Я ищу что-то простое, например
"andshy" in nlp.vocab = False, "andshy".is_oov = True
"apple" in nlp.vocab = True, "apple".is_oov = False
И на следующем этапе также какой-нибудь метод исправления слов. Я могу использовать библиотеку проверки орфографии, но это не соответствует словарному запасу spaCy.
Эта проблема является частым вопросом, и любые предложения (код) приветствуются.
Благодарность,
AHe