Как извлечь существительные из фразы в Python? - PullRequest
0 голосов
/ 20 сентября 2018

Я делаю задачу классификации ключевой фразы, и для этого я работаю с извлечением существительного из ключевых фраз в python.Маленькая помощь, доступная в Интернете, не очень полезна.я борюсь с этим.

Ответы [ 3 ]

0 голосов
/ 20 сентября 2018

Вы можете использовать части речевого тегирования для предложения с помощью пакета инструментов NLTK и извлекать теги, связанные либо с «существительными», либо с «глаголами»

text = '''I am doing a keyphrase classification task and for this i am working with the head noun extraction from keyphrases in python. The little help available on internet is not of good use. i am struggling with this.'''
pos_tagged_sent = nltk.pos_tag(nltk.tokenize.word_tokenize(text))

nouns = [tag[0] for tag in pos_tagged_sent if tag[1]=='NN']

Out:

[('I', 'PRP'),
 ('am', 'VBP'),
 ('doing', 'VBG'),
 ('a', 'DT'),
 ('keyphrase', 'NN'),
 ('classification', 'NN'),
0 голосов
/ 20 сентября 2018

Вы можете использовать пакет Stanford Parser в NLTK и получить отношения зависимости;затем используйте работу с отношениями, например nn или соединение (существительное модификатор соединения).Вы можете взглянуть на руководство по типизированным зависимостям De Marneffe здесь .

В руководстве существительная фраза "фьючерсы на цены на нефть" содержит соединения, имеющие два модификатора и заголовок.

Вы можете проверить деревья разбора и зависимости любого предложения в демонстрационном интерфейсе Stanford Parser здесь .

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

Приветствия

0 голосов
/ 20 сентября 2018

Эта задача известна как тегирование части речи и относится к области обработки естественного языка (NLP).Чтобы извлечь существительные из текста, вы можете использовать nltk

import nltk

text= 'Your text goes here'

# Check if noun (=NN)
isNoun = lambda pos: pos[:2] == 'NN'

# tokenise text and keep only nouns
tokenized = nltk.word_tokenize(lines)
nouns = [word for (word, pos) in nltk.pos_tag(tokenized) if isNoun (pos)] 
print(nouns)

или TextBlow

from textblob import TextBlob
text= 'Your text goes here'
blob = TextBlob(text)
print(blob.noun_phrases)

Если вы хотите узнать больше о тегах PoS, вы можете найти этот пост с официальной nltk страницы очень полезен.

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