определить английские слова и слова NLTK корпус - PullRequest
0 голосов
/ 07 февраля 2019

Просто пытаться увидеть слово - английский или нет.Это:

english_words = set(nltk.corpus.words.words())
print("revised" in english_words)

приводит к ложному.Я делаю что-то неправильно?Этого следовало ожидать?Есть ли лучшие способы сделать это?Благодарю.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Кажется, что "исправлено" действительно нет в списке слов:

import nltk

english_words = set(nltk.corpus.words.words())

for w in english_words:
    if w.startswith("revise"):
        print(w)

печатает следующий список:

reviser
revise
revisee
revisership

На основании этого источника ,В разделе 4.1, отсюда происходит список слов:

Корпус слова - это файл / usr / share / dict / words из Unix

Вам нужно решить для вашего случая использования, достаточно ли предоставленного списка слов из NLTK или если вы хотите переключиться на более полный (и больший) список.

0 голосов
/ 07 февраля 2019

Попробуйте это

from nltk.corpus import wordnet

if not wordnet.synsets(word_to_test):
  #Not an English Word
else:
  #English Word
...