gpt4 book ai didi

python - 如何在 NLTK 词性 (POS) 标记中只获取所选标记的词?

转载 作者:太空宇宙 更新时间:2023-11-04 03:05:56 25 4
gpt4 key购买 nike

抱歉,我是 Pandas 和 NLTK 的新手。我正在尝试构建一组自定义返回的 POS。我的数据内容:

        comment
0 [(have, VERB), (you, PRON), (pahae, VERB)]
1 [(radio, NOUN), (television, NOUN), (lid, NOUN)]
2 [(yes, ADV), (you're, ADJ)]
3 [(ooi, ADJ), (work, NOUN), (barisan, ADJ)]
4 [(national, ADJ), (debt, NOUN), (increased, VERB)]

知道如何才能只获得与所选标签(VERBNOUN)匹配的单词,如下所示吗?如果没有匹配则返回 NaN

        comment
0 [(have), (pahae)]
1 [(radio), (television), (lid)]
2 [NaN]
3 [(work)]
4 [(debt), (increased)]

最佳答案

您可以使用list comprehension,然后将空的list替换为[NaN]:

df = pd.DataFrame({'comment': [
[('have', 'VERB'), ('you', 'PRON'), ('pahae', 'VERB')],
[('radio', 'NOUN'), ('television', 'NOUN'), ('lid', 'NOUN')],
[('yes', 'ADV'), ("you're", 'ADJ')],
[('ooi', 'ADJ'), ('work', 'NOUN'), ('barisan', 'ADJ')],
[('national', 'ADJ'), ('debt', 'NOUN'), ('increased', 'VERB')]
]})

print (df)
comment
0 [(have, VERB), (you, PRON), (pahae, VERB)]
1 [(radio, NOUN), (television, NOUN), (lid, NOUN)]
2 [(yes, ADV), (you're, ADJ)]
3 [(ooi, ADJ), (work, NOUN), (barisan, ADJ)]
4 [(national, ADJ), (debt, NOUN), (increased, VE...
df.comment = df.comment.apply(lambda x: [(t[0],) for t in x if t[1]=='VERB' or t[1]=='NOUN'])
df.ix[df.comment.apply(len) == 0, 'comment'] = [[np.nan]]
print (df)
comment
0 [(have,), (pahae,)]
1 [(radio,), (television,), (lid,)]
2 [nan]
3 [(work,)]
4 [(debt,), (increased,)]

关于python - 如何在 NLTK 词性 (POS) 标记中只获取所选标记的词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39483108/

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