gpt4 book ai didi

python - 已标记 nltk.corpus.nps_chat.xml_post

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:40 24 4
gpt4 key购买 nike

您好,我正在使用 NLTK、nps_chat 语料库。

我知道我可以像下面这样访问 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')]

我需要知道的是,有没有办法使用 nltk.corpus.nps_chat.xml_post 来获取标记文本,而不仅仅是文本?

最佳答案

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 标签。

关于python - 已标记 nltk.corpus.nps_chat.xml_post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41529750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com