Лемматизаторы Nltk не распознают множественную форму химических названий - PullRequest
0 голосов
/ 23 марта 2020

Итак, я должен признать, что я noob в nlp, и я понятия не имею о nltk, я просто пытаюсь использовать устаревший код, оставленный предыдущим разработчиком. Мне нужно лемматизировать слова, в основном из химических и биотехнологических публикаций. Я обычно использую WordNetLemmatizer. Большую часть времени это работает.

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
lemmatizer.lemmatize('cats')

возвращает cat.

Но затем я пытаюсь

lemmatizer.lemmatize('dehydrogenases')

, это возвращает 'дегидрогеназы'. Я хочу вернуть «дегидрогеназу». Как я могу это сделать?

1 Ответ

2 голосов
/ 23 марта 2020

Объяснение

Если вы установите nltk как модуль и затем используете следующий код для инициализации WordNetLemmatizer:

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()

Вы, вероятно, получите LookupError с надписью:

LookupError: 
**********************************************************************
  Resource wordnet not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('wordnet')

  For more information see: https://www.nltk.org/data.html

  Attempted to load corpora/wordnet.zip/wordnet/

Причина

Используемый вами лемматизатор основан на Wor dNet. Цитируя документацию Wor dNet:

WordNet® - это большая лексическая база данных Engli sh. Существительные, глаголы, прилагательные и наречия сгруппированы в наборы когнитивных синонимов (synsets), каждый из которых выражает отдельную концепцию. Синсеты взаимосвязаны посредством концептуально-семантических c и лексических отношений. Получившаяся сеть содержательно связанных слов и понятий может быть перемещена с помощью браузера. Wor dNet также свободно и публично доступен для скачивания. Структура dNet делает его полезным инструментом для компьютерной лингвистики и обработки естественного языка.

По сути, в нем нет всех слов в словаре Engli sh для лемматизации. Таким образом, хотя оно работает для слова «кошки», оно может не работать для других слов, которых нет в лексической базе данных Wor dNet.

Надеюсь, это поможет.

...