首页 > 解决方案 > 计算句子中两个单词同时出现的频率

问题描述

我有一个 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 

标签: pythonnlpnltktokenspacy

解决方案


您可以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)

推荐阅读