Python - Как извлечь существительную фразу после разбора в NLTK - PullRequest
0 голосов
/ 17 октября 2019

Я хочу извлечь существительную фразу из проанализированного текста, используя NLTK, но я не знаю, как это сделать. Я все еще ищу его, но пока не повезло. Поэтому я должен спросить здесь.

Проанализированные тексты находятся в списке, и они выглядят так:

(S the/DT (NP phone/NN) has/VBZ a/DT (NP good/JJ screen/NN) ./.)
(S (NP ipod/NN) is/VBZ the/DT best/JJS (NP mp3/NN player/NN) ./.)
(S
  does/VBZ
  the/DT
  (NP player/NN play/NN dvd/NN)
  with/IN
  audio/JJ
  and/CC
  (NP video/NN)
  ?/.)

Ранее я использовал TextBlob для извлечения существительной фразы, но по какой-то причинеВ первом предложении «телефон» не извлекается, только «хороший экран». Вот почему я возвращаюсь, используя NLTK.

1 Ответ

0 голосов
/ 17 октября 2019

Я думаю, это то, что вы ищете:

import re
s = """(S the/DT (NP phone/NN) has/VBZ a/DT (NP good/JJ screen/NN) ./.)
(S (NP ipod/NN) is/VBZ the/DT best/JJS (NP mp3/NN player/NN) ./.)
(S
  does/VBZ
  the/DT
  (NP player/NN play/NN dvd/NN)
  with/IN
  audio/JJ
  and/CC
  (NP video/NN)
  ?/.)"""

print(re.findall("(\w+)/NN", s))

re.findall() будет искать всю строку, чтобы найти совпадения. Вышеупомянутое пытается найти и вернуть то, что в круглых скобках (\w+), что означает работу, а затем /NN

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