def get_keyphrase(s):
tr4w=TextRank4Keyword()
tr4w.analyze(text=str(s),lower=True,window=2) #文本分析,文本小写,窗口为2
# 最多5个关键词组,有可能一个也没有。词组在原文中出现次数最少为1。
phase_list=tr4w.get_keyphrases(keywords_num=5,min_occur_num=1)
if len(phase_list)==0:
return np.NaN
else:
return phase_list[0]
Travel_tips=pd.concat([Travel_tips1,Travel_tips2],axis=0) # 游记攻略
def addstr(s):
return '游记攻略-'+str(s)
Travel_tips['语料ID']=Travel_tips['游记ID'].progress_apply(addstr)
Travel_tips['文本']=Travel_tips['游记标题']+'\n'+Travel_tips['正文']
Travel_tips['年份']=pd.to_datetime(Travel_tips['发布时间']).dt.year
Travel_tips['产品名称']=Travel_tips['文本'].progress_apply(get_keyphrase)
在tr4w=TextRank4Keyword()中添加停用词文本参数,
tr4w=TextRank4Keyword(stop_words_file='stop_words.txt')
参考代码:
from textrank4zh import TextRank4Keyword
import pandas as pd
import numpy as np
def get_keyphrase(s):
tr4w=TextRank4Keyword(stop_words_file='stop_words.txt')
tr4w.analyze(text=str(s),lower=True,window=2) #文本分析,文本小写,窗口为2
# 最多5个关键词组,有可能一个也没有。词组在原文中出现次数最少为1。
phase_list=tr4w.get_keyphrases(keywords_num=5,min_occur_num=1)
if len(phase_list)==0:
return np.NaN
else:
return phase_list[0]
#游记攻略
result=pd.DataFrame()
Travel_tips=pd.read_csv('F:/2022/py01/travel_st.csv',encoding='utf-8')#pd.concat([Travel_tips1,Travel_tips2],axis=0) # 游记攻略
def addstr(s):
return '游记攻略-'+str(s)
result['语料ID']=pd.Series(range(1,len(Travel_tips)+1)).apply(addstr)
result['文本']=Travel_tips['标题']+'\n'+Travel_tips['玩法']
result['年份']=pd.to_datetime(Travel_tips['出发日期'].str.replace('出发','')).dt.year
result['产品名称']=result['文本'].apply(get_keyphrase)
print(result)
运行结果:
语料ID 文本 年份 产品名称
0 游记攻略-1 #春之女神#徜徉帝都春色,阅尽京城美景。\n购物 美食 骑行 2016 阅尽京城
1 游记攻略-2 经典帝都“延禧攻略”圣地巡礼【故宫、国博、颐和园、恭王府、南锣鼓巷、798】\n端午 五一 ... 2018 圣地巡礼
2 游记攻略-3 【初遇北京图鉴】一口京腔一首歌,一面红墙一抹风\n美食 暑假 夏季 第一次 2018 初遇北京图鉴
3 游记攻略-4 北京一站式吃喝玩乐全攻略丨最详细的攻略,只看这篇就够了\n深度游 美食 徒步 2018 吃喝玩乐全攻略
4 游记攻略-5 170+北京 玩遍地铁2号线,再附上一份北京深度游攻略!\n深度游 美食 徒步 2016 深度游
如有帮助,请点采纳。
参考一下这篇文章
https://www.jianshu.com/p/cf0a118215d7
这个算法的理解关键就是中间那部分