books_over10['Keywords'] = ""
r = Rake() # Uses stopwords for english from NLTK, and all puntuation characters.
for index, row in books_over10.iterrows():
a=r.extract_keywords_from_text(row['bookTitle'])
c=r.get_ranked_phrases() # To get keyword phrases ranked with scores highest to lowest.
books_over10.at[index, 'Keywords'] = c
books_over10.head()
我正在使用上面的代码,以便处理所有行并从列bookTitle的每一行提取关键字,然后将它们作为列表插入到同一行上名为keywords的新列中。问题是,是否有一种更有效的方法可以在不遍历所有行的情况下执行此操作,因为这需要大量时间。任何帮助都将不胜感激。提前谢谢
长明的解决方案:
def extractor(row):
a=r.extract_keywords_from_text(row)
return r.get_ranked_phrases() # To get keyword phrases ranked with scores highest to lowest.
r = Rake() # Uses stopwords for english from NLTK, and all puntuation characters.
books_over10['Keywords'] = books_over10['bookTitle'].map(lambda row : extractor(row))
试试看map。不确定您使用的是什么Rake,而且您对其进行编码的方式有点混乱,但一般语法可能是
相关问题 更多 >
编程相关推荐