gpt4 book ai didi

python - 计算 Python 数据框中的短语频率

转载 作者:行者123 更新时间:2023-11-28 21:42:13 24 4
gpt4 key购买 nike

我拥有的数据存储在 pandas 数据框中 - 请参阅下面的可重现示例。真正的数据框将有超过 10k 行,每行有更多的单词/短语。我想计算每个双词短语出现在 ReviewContent 列中的次数。如果这是一个文本文件而不是数据框的列,我会使用 NLTK 的 Collocations 模块(类似于答案 herehere 的内容)。我的问题是:如何将 ReviewContent 列转换为单个语料库文本?

import numpy as np
import pandas as pd

data = {'ReviewContent' : ['Great food',
'Low prices but above average food',
'Staff was the worst',
'Great location and great food',
'Really low prices',
'The daily menu is usually great',
'I waited a long time to be served, but it was worth it. Great food']}

df = pd.DataFrame(data)

预期输出:

[(('great', 'food'), 3), (('low', 'prices'), 2), ...]

[('great food', 3), ('low prices', 2)...]

最佳答案

作为一个序列/可迭代对象,df["ReviewContent"] 的结构与将 nltk.sent_tokenize() 应用于文本文件的结果完全相同:每个字符串包含一个句子的列表。因此,只需以相同的方式使用它。

counts = collections.Counter()
for sent in df["ReviewContent"]:
words = nltk.word_tokenize(sent)
counts.update(nltk.bigrams(words))

如果您不确定下一步该做什么,那与使用数据框无关。要计算双字母,您不需要 collocations 模块,只需 nltk.bigrams() 和一个计数字典。

关于python - 计算 Python 数据框中的短语频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44001167/

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