gpt4 book ai didi

python - pandas dataframe python列中词频计数的输出不一致

转载 作者:行者123 更新时间:2023-12-01 06:49:14 25 4
gpt4 key购买 nike

所以我在 pandas 中有一个简单的数据框,其中一列包含推文消息。每个单元格或行都包含一条推文消息。我正在尝试进行词频计数来检测数据框中排名前 10 的单词。原因是通过将它们添加到我的停用词列表中来将它们从我的数据集中删除。

在我的数据集上尝试了一些代码片段,但是对于为什么在频率计数时会产生不同的结果感到困惑。下面是代码比较。

代码 1

top_N = 10
a = train_data['tweet'].str.cat(sep='')
words = nltk.tokenize.word_tokenize(a)
word_dist = nltk.FreqDist(words)

代码2

word_dist = pd.Series(' '.join(train_data['tweet']).lower().split()).value_counts()[:10]

两个代码中最常见的 10 个单词是相同的,但单词分布/频率的值或计数略有不同,即代码 1 对于代码 2 中的相同单词列表的计数略低。它们都在分析相同的数据集。相差100字左右。我看到的唯一区别是,代码 1 标记了单词,而代码 2 则分割了单词,但它们本质上是同一件事,所以我在这里错过了什么?我意识到代码 1 产生 nltk.probability.FreqDist,而代码 2 产生 pandas.core.series.Series。有人可以向我解释一下并解释其中的区别吗?

最佳答案

显然 .word_tokenize().lower().split() 不会产生完全相同的结果。我从文档中可以了解到的是 .word_tokenize() 实际上使用 TreebankWordTokenizer这是基于正则表达式的。它比仅仅在空格上分割要先进得多,并且据我估计,它可以更好地处理标点符号之类的东西。

关于python - pandas dataframe python列中词频计数的输出不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59099451/

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