Python 2.7: алгоритм Lesk возвращает None

Я создаю программу, которая устраняет неоднозначность слов, и я использовал nltk. Теперь, когда я вышел на сцену, чтобы использовать алгоритм lesk, у меня возникли некоторые проблемы.

Например, если я попробую:

c = lesk('There sign bothered consider inverse logic namely mental illness   substance abuse might degree consequence rather cause homelessness ','consider')

c будет None, что означает, что алгоритм не вернет ничего.

Я попытался дать вместо предложения список слов: т.е.

sent = word_tokenize('There sign bothered consider inverse logic namely mental illness substance abuse might degree consequence rather cause homelessness ')
c = lesk(sent, 'consider')

или даже список леммат вместо полных слов, но он по-прежнему возвращает None.

Кто-нибудь знает, если это особенность lesk (когда он не может устранить неоднозначность, чтобы вернуть None), или я делаю что-то не так? Кроме того, если это особенность, то можно ли ее удалить (чтобы вернуть мне слово вместо None)?

Спасибо!

1 ответ

Решение

Да, метод возвращает None если никакого смысла слова не было найдено. Вы можете увеличить размер контекста. Насколько я вижу в исходном коде методов, контекстное предложение должно быть токенизировано.

Другие вопросы по тегам