2017-01-08 5 views
1

Привет Я работаю с NLTK, nps_chat corpus.Tagged nltk.corpus.nps_chat.xml_post

Я знаю, что я могу получить доступ к NPS корпуса чата, как следующий

posts = nltk.corpus.nps_chat.xml_posts() 

Я подготовил список Labeled_names, следующий

Labeled_names=[(post.text,post.get('class')) for post in posts] 

И я получил следующее, как это,

>>> Labeled_names[:10] 
[('now im left with this gay name', 'Statement'), (':P', 'Emotion'), ('PART', 'System'), ('hey everyone ', 'Greet'), ('ah well', 'Statement'), ('NICK :10-19-20sUser7', 'System'), ('10-19-20sUser7 is a gay name.', 'Accept'), ('.ACTION gives 10-19-20sUser121 a golf clap.', 'System'), (':)', 'Emotion'), ('JOIN', 'System')] 

Что мне нужно знать, а не только текст, есть способ получить помеченный текст, usi ng nltk.corpus.nps_chat.xml_post?

+1

Вы имеете в виду POS-тегированный текст? Если это так, используйте 'nltk.pos_tag()' для пометки текста. – DyZ

+0

№ NPS chat corpus уже отмечен. Мне нужно сделать это, чтобы получить те теги, когда я получил текст, используя post.text –

+2

Только тег 'nltk.corpus.nps_chat.tagged_posts()' отмечен. – DyZ

ответ

0

API nps_chat API не обеспечивает простой способ просмотра тегов POS и отправки метаданных в одно и то же время, но одностороннее перемещение элементов XML, возвращаемых xml_posts(), и получение этой информации. Вот небольшая демонстрация:

from nltk.corpus import nps_chat 

for p in nps_chat.xml_posts()[3:5]: 
    print(p.get("class"), p.get("user")) 
    print(p.text) 
    tagged_words = list((t.get("word"), t.get("pos")) for t in p[0]) # <-- here it is 
    print(tagged_words) 
    print() 

Выход:

Greet 10-19-20sUser59 
hey everyone 
[('hey', 'UH'), ('everyone', 'NN')] 

Statement 10-19-20sUser115 
ah well 
[('ah', 'UH'), ('well', 'UH')] 

Каждый xml_post имеет уникальный элемент terminals, содержащий ряд элементов t каждый из которых имеет word и pos атрибуты. Полный путь: Session/Posts/Post/terminals/t. Таким образом, элемент terminals - p[0], и мы перебираем его детей, чтобы получить их слово и тег POS.

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

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