python - 计算句子中两个单词同时出现的频率
问题描述
我有一个 pandas 数据框,其中在一列中我有词形还原的文本。
我想计算两个给定单词在同一个句子中一起出现的频率,并计算这些单词在文档中一起出现的次数。例如,给定“I”和“have”,计算文档中“I”和“have”在同一个句子中一起出现的次数。
理想情况下,我想创建一个新的 DataFrame,其结果是在一列中我将两个单词放在一起,在另一列中两个单词一起出现在一个句子中,在第三列中显示原始文本。
我的结果需要类似于:
text, given_words, frequency_in_sentence
text1 | "I have " | 2 times in same sentence
text2 | "I have " | 3 times in same sentence
text3 | "I have " | 1 times in same sentence
解决方案
您可以count
通过数据框上的应用功能使用和使用它:
def count(sentence, pattern):
""" count pattern occurence """
return word.count(sentence)
df['frequency_in_sentence'] = df.apply(lambda row:count(row['text'], row['given_words']), axis = 1)
推荐阅读
- mysql - 带有 where 条件和内部联接的 MySQL Select 语句
- java - 通过 TCP 同时发送两个数据包时,一个会丢失
- css - Safari 无法正确缩放图像
- javascript - 我的 firebase 查询调用没有得到我的文档,即使它存在
- javascript - 如何禁用故事书页面的文档
- javascript - 调用操作(vuex)时有效负载未通过-TypeError:无法读取未定义的属性'userDetails'
- ssl - Let's Encrypt 找不到监听 80 端口的虚拟主机
- vb.net - 我可以使用内置指纹读取器来测试我的应用程序吗?
- apache-spark - 从 Pub/Sub 通知启动 DataProc 作业
- html - textarea 不调整大小或收听 CSS