gpt4 book ai didi

python - 向数据框中添加词性列

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

我有以下名为 df2 的数据框,它是根据单词集合创建的,其中包括频率列和累计总数:

    word      freq    cum_total     
0 nesoi 1970 1970
1 cotton 734 2704
2 exceeding 732 3436
3 fiber 620 4056
4 part 618 4674

我想使用 NLTK 在上表中添加一列,显示“单词”列中每个单词所属的词性,因此输出如下所示:

    word      freq    cum_total  part_of_speech   
0 nesoi 1970 1970 noun
1 cotton 734 2704 noun
2 exceeding 732 3436 adverb
3 fiber 620 4056 adjective
4 part 618 4674 pronoun

这是我的代码:

import nltk
df2['part_of_speech']=df2['word'].apply(nltk.pos_tag)

结果输出如下所示:

    word      freq    cum_total  part_of_speech   
0 nesoi 1970 1970 [(n, JJ), (e, NN), (s, NN), (o, NN), (i, NN)]
1 cotton 734 2704 [(c, NNS), (o, VBP), (t, JJ), (t, NN), (o, NN)...
2 exceeding 732 3436 [(e, NN), (x, NNP), (c, VBZ), (e, JJ), (e, IN)...
3 fiber 620 4056 [(f, NN), (i, NN), (b, VBP), (e, NN), (r, NN)]
4 part 618 4674 [(p, NN), (a, DT), (r, NN), (t, NN)]

如何编码以根据“单词”列获取所需的“part_of_speech”列?等效标签即可(POS 的 2 或 3 个字符缩写形式)。

最佳答案

pos_tag 函数假设输入是由多个单词组成并以空格分隔的文档/文本。这里的解决方案是将输入封装在列表中。此外,您可以直接从嵌套列表/元组输出中提取 pos:

import nltk
import pandas as pd

df = pd.DataFrame({'words':['this','apple','run','pretty']})

df['pos'] = df['words'].apply(lambda x: nltk.pos_tag([x])[0][1])

这给你:

    words pos
0 this DT
1 apple NN
2 run VB
3 pretty RB

关于python - 向数据框中添加词性列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58703422/

25 4 0
文章推荐: css - 是否可以在 SVG 元素上有两个笔画?
文章推荐: matlab - 呈现不同颜色的直方图 - matlab
文章推荐: html - 将一个
拆分为两个水平对齐的