在数据框中对每一行应用NLTK Rake

3
我想将Rake函数 (https://pypi.org/project/rake-nltk/) 应用到数据框的每一行。
我可以将该函数应用于特定行,但无法将其添加到数据框中。
这是我目前的代码:
r = Rake(ranking_metric= Metric.DEGREE_TO_FREQUENCY_RATIO, language= 'english', min_length=1, max_length=4)
r.extract_keywords_from_text(test.document[177])
r.get_ranked_phrases() #prints a list of keywords
test['keywords'] = test.applymap(lambda x: r.extract_keywords_from_text(x)) #trying to apply it to each row.

它只是无限地运行。我只想将一个名为“关键词”的新列添加到我的数据框“test”中,该列包含来自r.get_ranked_phrases()的关键词列表。

1个回答

5

r.extract_keywords_from_text(x)会返回None

import pandas as pd
from  rake_nltk import Rake  

r = Rake()    

df=pd.DataFrame(data = ['machine learning and fraud detection are a must learn',
                  'monte carlo method is great and so is hmm,pca, svm and neural net',
                  'clustering and cloud',
                  'logistical regression and data management and fraud detection'] ,columns = ['Comments'])


 def rake_implement(x,r):
     r.extract_keywords_from_text(x)
     return r.get_ranked_phrases()

df['new_col'] =df['Comments'].apply(lambda x: rake_implement(x,r))
print(df['new_col'])
#o/p
0      [must learn, machine learning, fraud detection]
1    [monte carlo method, neural net, svm, pca, hmm...
2                                  [clustering, cloud]
3    [logistical regression, fraud detection, data ...
Name: new_col, dtype: object  

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接