gpt4 book ai didi

python - Pandas 和 nltk : get most common phrases

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

对 python 相当陌生,我正在使用带有一列充满文本的 pandas 数据框。我正在尝试使用该专栏并使用 nltk 查找常见短语(三个或四个单词)。

    dat["text_clean"] = 
dat["Description"].str.replace('[^\w\s]','').str.lower()

dat["text_clean2"] = dat["text_clean"].apply(word_tokenize)

finder = BigramCollocationFinder.from_words(dat["text_clean2"])
finder
# only bigrams that appear 3+ times
finder.apply_freq_filter(3)
# return the 10 n-grams with the highest PMI
print finder.nbest(bigram_measures.pmi, 10)

最初的评论似乎效果很好。但是,当我尝试使用 BigramCollocation 时,它会抛出以下错误。

n [437]: finder = BigramCollocationFinder.from_words(dat["text_clean2"])
finder

Traceback (most recent call last):

File "<ipython-input-437-635c3b3afaf4>", line 1, in <module>
finder = BigramCollocationFinder.from_words(dat["text_clean2"])

File "/Users/abrahammathew/anaconda/lib/python2.7/site-packages/nltk/collocations.py", line 168, in from_words
wfd[w1] += 1

TypeError: unhashable type: 'list'

知道这指的是什么或解决方法吗。

以下命令也出现同样的错误。

gg = dat["text_clean2"].tolist()    
finder = BigramCollocationFinder.from_words(gg)
finder = BigramCollocationFinder.from_words(dat["text_clean2"].values.reshape(-1, ))

以下内容有效,但返回没有通用短语。

gg = dat["Description"].str.replace('[^\w\s]','').str.lower()
finder = BigramCollocationFinder.from_words(gg)
finder
# only bigrams that appear 3+ times
finder.apply_freq_filter(2)
# return the 10 n-grams with the highest PMI
print finder.nbest(bigram_measures.pmi, 10)

最佳答案

您的 BigramCollocationFinder 类似乎需要一个单词列表,而不是列表列表。试试这个:

finder = BigramCollocationFinder.from_words(dat["text_clean2"].values.reshape(-1, ))

关于python - Pandas 和 nltk : get most common phrases,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45306946/

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