Как анализировать существительные в списке

Я хотел бы знать, есть ли способ анализировать существительные в списке. Например, если есть алгоритм, различающий разные категории, например, если существительное входит в категорию «животное», «растение», «природа» и так далее. Я думал, что можно достичь этого результата с Wordnet, но, если я не ошибаюсь, все существительные в WordNet относятся к категории "сущность". Вот сценарий моего анализа WordNet:

lemmas = ['dog', 'cat', 'garden', 'ocean', 'death', 'joy']

hypernyms = []
for i in lemmas:
    dog = wn.synsets(i)[0]
    temp_list = []
    hypernyms_list = ([lemma.name() for synset in dog.root_hypernyms() for lemma in synset.lemmas()])
    temp_list.append(hypernyms_list)
    flat = list(set([item for sublist in temp_list for item in sublist]))
    hypernyms.append(flat)
hypernyms

И результат: [['сущность'], ['сущность'], ['сущность'], ['сущность'], ['сущность'], ['сущность']].

Может ли кто-нибудь предложить мне некоторые методы для получения категории, к которой принадлежат имена, если есть что-нибудь доступное? Заранее спасибо.


person user9355680    schedule 27.07.2018    source источник
comment
как насчет библиотеки nltk?   -  person vishal    schedule 27.07.2018
comment
Я бы попробовал что-нибудь, вы имеете в виду какую-то конкретную функцию? Спасибо за помощь!   -  person user9355680    schedule 27.07.2018


Ответы (1)


Один из подходов, который я могу предложить, — это использование Google NLP API. Этот API имеет функцию определения части речи как части синтаксического анализа. См. документацию здесь: Google NLP API – анализ синтаксиса.

Другой вариант — Стэнфордский NLP API. Вот справочные документы - Stanford's NLP API

person aks    schedule 03.08.2018
comment
Спасибо за ваш комментарий, эти две ссылки очень интересны, хотя это не совсем то, что я ищу. Думаю, я нашел способ достичь своей цели! Я рассчитал path_hypernyms() (WordNet) между моим целевым словом и более высоким уровнем в синсете, которым для всех существительных является «сущность», затем я извлекаю второй, третий и четвертый по величине гипернимы и вычисляю некоторую статистику в своем списке! - person user9355680; 04.08.2018