计算数据帧列表中每个单词的单词频率

问题描述 投票:0回答:1

我已经创建了与某个类别相关的单词列表。例如:

care = ["safe", "peace", "empathy"]

而且我有一个包含语音的数据框,平均包含450个单词。我已经使用此行代码计算了每个类别的匹配次数:

df['Care'] = df['Speech'].apply(lambda x: len([val for val in x.split() if val in care]))

这给了我每个类别的匹配总数。

但是我需要查看列表中每个单词的频率。我尝试使用此代码来解决我的问题。

df.Tal.str.extractall('({})'.format('|'.join(auktoritet)))\
                           .iloc[:, 0].str.get_dummies().sum(level=0)

我尝试了不同的方法,但问题是我总是会得到部分匹配。例如,锤子算作火腿。

关于如何解决此问题的任何想法?

python string-matching word-frequency
1个回答
0
投票

您可以将以1为第二元素('word', 1)的元组中的每个单词变换,然后将其与列表中的每个单词相加。

输出将是带有单词和频率的元组列表:

[('word1', 3), ('word2', 10) ... ]

这是主要思想。

© www.soinside.com 2019 - 2024. All rights reserved.