2013-09-13 1 views
2

Я мечение текста для поиска существительных и прилагательных:NLTK разбирает скобку неправильно

text = u"""Developed at the Vaccine and Gene Therapy Institute at the Oregon Health and Science University (OHSU), the vaccine proved successful in about fifty percent of the subjects tested and could lead to a human vaccine preventing the onset of HIV/AIDS and even cure patients currently on anti-retroviral drugs.""" 
nltk.pos_tag(nltk.word_tokenize(text)) 

Это приводит к:

[('развитые', 'ННП'), («в '' В '), (далее '' Dt '), (' Вакцина ' ' ННП '), (' и', 'СС '), (' Джин',»ННП '), (' терапия '' ННП '), (' институт '' ННП '), (' в '' IN '), (далее '' Dt '), (' Oregon '' ННП «), ('Здоровье', 'ННП'), ('и', 'CC'), ('Наука', 'ННП'), ('университет', 'ННП'), ('(', 'ННП'), (OHSU '' ННП '), (') '' ННП '), (', ' ' '), (далее', 'Dt'), ('Vaccine', 'NN'), ('доказали', 'ВБД'), ('успешно', 'JJ'), ('', 'в'), ('о' 'в'), ('Пятьдесят', 'JJ'), ('процента', 'NN'), ('из', 'в'), (далее ', 'Dt'), («предметы '' NNS '), (' испытания '' ВБД '), (' и '' СС '), (' может '' MD '), (' свинец '' VB «), ('до', 'в'), ('а', 'Dt'), ('Человек', 'NN'), ('Вакцина', 'NN'), ('предотвращение', 'VBG'), (далее ', 'Dt'), ('начало', 'NN'), ('из', 'в'), ('NNS' 'ВИЧ/СПИД'), ('и', «CC '), (' даже '' RB '), (' Cure '' NN '), (' пациенты '' NNS '), (' в настоящее время '' RB '), (' на '' IN '), (' антиретровирусные '' JJ '), (' наркотики, 'NNS'), (' ''.')]

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

+0

Что вы имеете в виду Correct ? Рассматривали ли вы Раскрывая скобки? – Spaceghost

ответ

2

Если вы знаете, что вы хотите вернуть в качестве значения тега для скобок, то вы можете использовать RegexpTagger, чтобы соответствовать и резервными скобок с предпочтительным Tagger для всего остального.

import nltk 
from nltk.data import load 
_POS_TAGGER = 'taggers/maxent_treebank_pos_tagger/english.pickle' 
tagger = load(_POS_TAGGER) # same tagger as using nltk.pos_tag 

regexp_tagger = nltk.tag.RegexpTagger([(r'\(|\)', '--')], backoff = tagger) 

regexp_tagger.tag(nltk.word_tokenize(text)) 

Результат:

[(u'Developed '' ННП '), (u'at', 'в'), (u'the '' Dt «), (u'Vaccine ' ' ННП '), (u'and', 'СС'), (u'Gene', 'ННП '), (u'Therapy', 'ННП'), (u'Institute' 'ННП'), (u'at '' В '), (u'the', 'Dt'), (u'Oregon», ' ННП '), (u'Health', 'ННП') (u'and '' СС '), (u'Science', 'ННП'), (u'University '' ННП '), (' ('' - '), (' OHSU '' ННП '), (') '' - '), (', '', '), (u'the', 'Dt'), (u'vaccine '' NN '), (u'proved', 'ВБД'), (u'suc плодотворных '' JJ '), (u'in', 'В'), (u'about '' В '), (u'fifty', 'JJ'), (u'percent '' Н.Н. '), (u'of', 'IN'), (u'the '' Dt '), (u'subjects',»NNS '), (u'tested', 'VBD'), ('и', 'СС'), (u'could ' ' MD '), (u'lead', 'VB'), (u'to', 'TO '), (u'a'' Dt '), (u'human', 'NN'), (u'vaccine '' NN '), (u'preventing', 'VBG'), (u'the '' Dt «), (u'onset ' ' NN '), (u'of', 'IN'), (u'HIV/СПИД',»NNS '), (u'and', 'CC'), (u'even ' ' RB '), (u'cure', 'NN'), (u'patients '' NNS '), (u'currently', 'RB'), (u'on '' В '), (u'anti антиретровирусными', 'JJ'), (u'drugs', 'NNS'), (' ' '.')]

+0

Пожалуйста, примите ответ] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235), если оно было полезно – Spaceghost

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

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