我不太擅长编程,需要帮助解决一个问题。我有一个包含4列和大约5k行的.csv文件,填充了问题和答案。我想在每个单元格中找到词组搭配。
起点:带有4列和大约5k行的Pandas数据帧(Id,Title,Body,Body2)。
目标:带有7列(Id,Title,Title-Collocations,Body,Body_Collocations,Body2,Body2-Collocations)的数据帧,并对其每行应用一个函数。
我在NLTK文档中找到了Bigramm Collocation的示例。
我希望能将这个函数适用于我的 Pandas 数据框架。我知道 Pandas 数据框架中的 apply 函数,但是无法使其正常工作。
以下是我对其中一个列进行测试的尝试:
但是如果我打印出一个示例行,我会得到:
起点:带有4列和大约5k行的Pandas数据帧(Id,Title,Body,Body2)。
目标:带有7列(Id,Title,Title-Collocations,Body,Body_Collocations,Body2,Body2-Collocations)的数据帧,并对其每行应用一个函数。
我在NLTK文档中找到了Bigramm Collocation的示例。
bigram_measures = nltk.collocations.BigramAssocMeasures()
finder.apply_freq_filter(3)
finder = BigramCollocationFinder.from_words(nltk.corpus.genesis.words('english-web.txt'))
print (finder.nbest(bigram_measures.pmi, 5))
>>>[('Beer', 'Lahai'), ('Lahai', 'Roi'), ('gray', 'hairs'), ('Most', 'High'), ('ewe', 'lambs')]
我希望能将这个函数适用于我的 Pandas 数据框架。我知道 Pandas 数据框架中的 apply 函数,但是无法使其正常工作。
以下是我对其中一个列进行测试的尝试:
df['Body-Collocation'] = df.apply(lambda df: BigramCollocationFinder.from_words(df['Body']),axis=1)
但是如果我打印出一个示例行,我会得到:
print (df['Body-Collocation'][1])
>>> <nltk.collocations.BigramCollocationFinder object at 0x113c47ef0>
我甚至不确定这是否是正确的方式。能否有人指导我正确的方向?