我不太习惯编程,需要一些帮助来解决问题。我有一个.csv,带有4列和大约5k行,充满了问题和答案。我想在每个单元格中找到单词搭配。
起点:具有4列和约5k行的Pandas数据框。(编号,标题,正文,正文2)
目标:具有7列(Id,标题,标题合并,Body,Body_Collocations,Body2,Body2-Collocations)的数据框,并对每个行应用一个函数。
我在NLTK文档中找到了Bigramm配置的示例。
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 Dataframe。我知道Pandas Dataframes的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>
我什至不确定这是否正确。有人可以指出我正确的方向吗?
如果要应用BigramCollocationFinder.from_words()
到每个value
在Body
`列,你必须做的:
df['Body-Collocation'] = df.Body.apply(lambda x: BigramCollocationFinder.from_words(x))
在本质上,apply
允许你遍历rows
并提供相应value
的Body
column
所施加的功能。
但是,正如评论中所建议的那样,提供数据样本将使解决您的特定案例变得更加容易。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句