2016-09-26 5 views
0

Я использовал StanfordParser с NLTK на Python. это дает мне следующий вывод:Как получить POS-теги из NLTK с помощью Stanford Parser?

(ROOT 
    (S 
     (NP (NNP Python)) 
     (VP (VBZ is) (NP (DT a) (JJ lovely) (NN language))) 
     (. !))) 

Но я хочу, чтобы иметь список, как это:

[['Python', 'NNP'], ['is', 'VBZ'], ['a', 'DT'], ['lovely', 'JJ'], ['language', 'NN']] 

Я хочу все Именные. Что мне делать?

+0

Если вам нужны только теги POS, тогда нет необходимости запускать синтаксический анализатор, поскольку пометка POS - это шаг предварительной обработки для синтаксического анализа. Посмотрите на тегеры NLTKs POS, например. [StanfordPOSTagger] (http://www.nltk.org/api/nltk.tag.html#module-nltk.tag.stanford). – lenz

+0

@lenz StanfordPOSTagger не дает мне именных фраз. –

+0

В вашем примере вывода нет именных фраз. Я предлагаю вам сначала выяснить, что именно вам нужно, а затем опубликовать новый вопрос и удалить его здесь (изменение заявления о проблеме с помощью редактирования не одобрено на этом сайте). – lenz

ответ

0

Здесь вы можете увидеть методы для NLTK деревьев: http://www.nltk.org/_modules/nltk/tree.html

Это, скорее всего, будет сделать это:

parser = StanfordParser(model_path="lib/englishPCFG.ser.gz") 
parsed = parser.raw_parse("update Office 365") 
next(parsed).pos() 

Возвращает: [('обновление', 'VB'), ('Офис ',' NNP '), (' 365 ',' NNP ')]

 Смежные вопросы

  • Нет связанных вопросов^_^