自然语言处理之文本热词提取(含有《源码》和《数据》)
作者:不良使
主要就是通过jieba的posseg模块将一段文字分段并赋予不同字段不同意思。然后通过频率计算出热频词
数据放在文章里面了,就不用花积分下载了
**
代码
# TODO 鸟欲高飞,必先展翅 # TODO 向前的人 :Jhon import jieba.posseg as psg text=open("data/冬奥会评论区的数据.txt", "r", encoding="utf-8").read() text_psg=psg.lcut(text) # TODO 杨过 nr print('人物名词性标注为:\n',' '.join(['{}{}'.format(w,t) for w,t in text_psg])) name_counts={} #定义字典用于存储词及其出现的次数 for word_pair in text_psg: if len(word_pair.word)==1: continue else: if word_pair.flag=="nr" or word_pair.flag=="z": # TODO flag方法 name_counts[word_pair]=name_counts.get(word_pair,0)+1 #遍历所有词,每次出现对应的词都加1 # print(name_counts) #{pair('叶老汉', 'nr'): 2, pair('卫州', 'nr'): 1, pair('叶三姐', 'nr'): 10,} item=name_counts.items() items=list(item) # print(items) # TODO [(pair('鲁滨逊', 'nr'), 1), (pair('武功', 'nr'), 825), (pair('言语', 'nr'), 96)] items.sort(key=lambda x:x[1] ,reverse=True) #根据词语出现的顺序从大到小排序 name_list=open('./data/冬奥会人名出现次数.txt',"w",encoding="utf-8") for i in range(len(items)): name,pos=items[i][0] count=items[i][1] name_count=name+': '+str(count) name_list.write(name_count+'\n') name_list.close()
代码里面注释的已经非常清楚,不同的可以私信我,或者在评论区打出来,看到了会及时解惑的。
**
数据
v热v我,夺冠后齐广璞再次收获金墩墩!此前他在空中技巧混合团体比赛中获得亚军。 拉多拉夫,在本届冬奥会已斩获一金一银。 虎口水,齐广璞一金一银拿到金墩墩的他不断擦拭泪水,老将不易! 拉科罗l,在刚刚结束的自由式滑雪男子空中技巧决赛中, 酒啊就是你,中国队选手齐广璞在本届冬奥会上首次拿出5.0的高难度动作 会积极,并以出色的发挥获得129.00分,夺得金牌!这是继2006年都灵冬奥会 街廓,2月16日晚的崇礼,男子自由式滑雪空中技巧决赛 阿克苏九年,他的难度5.0动作拿下129分,圆梦夺金!赛后,齐广璞也热泪盈眶! 啊可能是,这也是中国代表团本届冬奥会的第七枚金牌!“我做到了,让五星红旗飘扬在最高处。 啊空间你是,但其实还不够好,本来还能有更高的分数。” 暗杀即可,中国老将齐广璞发挥出色。图/新华社 后即可,15日晚的男子资格赛,齐广璞和贾宗洋都是第1轮就凭借高分动作, 哈卡斯,排名前两位直接晋级决赛,后者更是高质量再现4.425动作,拿到125.67分。 JJ看来我,老将贾宗洋拼尽了全力。图/新华社 哦怕,备战中,齐广璞曾遭遇困难,有一段时间情绪不是很好。 喀喀喀,精神压力较大,长时间失眠,但他都克服了。 阿克苏六年,“因为有梦想,什么都不是问题。”北京冬奥会就是他前进的最大动力。 郝鹏,这些年,齐广璞拿到的奖项不胜枚举,世界杯冠军、世锦赛冠军……不过。 肯德基,他参加过温哥华、索契、平昌三届冬奥会,都未能收获奖牌,这次能获得第
数据每行逗号前是名字,逗号后的是评论内容,数据不太正统,先凑合着用,后面你就会发现有点那个味道了。
结果:
齐广璞: 79
冰墩墩: 70
苏翊鸣: 44
谷爱凌: 43
徐梦桃: 41
滑雪: 30
范可新: 15
贾宗洋: 13
高亭宇: 11
平昌: 6
滑冰: 6
世锦赛: 5
索契: 5
晋级: 4
安斯卡: 4
韩晓鹏: 4
张虹: 4
任子威: 4
小鸣: 4
温哥华: 3
元老: 3
张家口: 3
阿克萨: 3
祝贺: 3
吉祥物: 3
萨克森: 3
张杰: 3
金墩墩: 2
亚军: 2
都灵: 2
安康: 2
阿喀琉斯: 2
杨紫: 2
桂冠: 2
凌空: 2
韩聪: 2
融宝: 2
宝融宝: 2
雪容融: 2
明星: 2
苗子: 2
五星红旗: 1
最高处: 1
哈卡斯: 1
郝鹏: 1
肯德基: 1
李玉: 1
刘晨周: 1
乌克兰: 1
宝贵: 1
阿奎那: 1
梦中人: 1
周转: 1
高达: 1
斯诺克: 1
满怀希望: 1
阿森纳: 1
内存卡: 1
利利斯: 1
屠龙刀: 1
东道主: 1
马克: 1
阿基: 1
正佳: 1
天成: 1
折桂: 1
热切地: 1
齐天大圣: 1
哈萨克: 1
宝藏: 1
宝贝: 1
贺卡: 1
谢幕: 1
范迪安: 1
雪容融: 1
依旧: 1
舒斯: 1
施尼: 1
曼德尔: 1
肥墩墩: 1
圣保罗: 1
荣幸之至: 1
熊猫: 1
滚滚: 1
仰泳: 1
太棒了: 1
康弘: 1
最佳: 1
大力支持: 1
小胖: 1
祝福: 1
施图拜: 1
孙琳琳: 1
张雨婷: 1
终封王: 1
褚鹏: 1
阿曼: 1
陶士文: 1
可以发现结果和前面的还是挺准的。当然还可以继续优化,也可以自己训练模型,但是训练集需要很大。我这个模型是官方的,训练模型数据1.84GB
因为文本上传太多会被判刷量,所以删除了一部分。结果是之前的,没有改变,需要文本的可以去下载。测试数据下载
到此这篇关于自然语言处理之文本热词提取的文章就介绍到这了,更多相关自然语言文本热词提取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!