本来玩这些都是满足自己的爱好,然而嘛,,同学突然建议我写一些blog,我才突然想到,是哦,现在怎么投简历都是已读不回,索性把自己的项目都搬上来做个博客吧hhh,说不定也能为简历加点分,毕竟宜家揾食艰难哦~
前情提要:有同学找我让我帮忙写一个情感打分的东东,于是嘛我给写出来了,从爬取数据开始写,一直到打分完成。分都打了,那不得来个词语统计?于是就又有了这篇文章。
首先看到打完分的语句
第一行为正向情感,第二行为负向情感。
然后对于语句我们需要先把它拆分成一个个词语。
from gensim.models.ldamodel import LdaModel
import jieba
import re
import pandas as pd
需要的库。
分词函数:HITSTOP是哈工大停用词库。链接我放在下面了。
链接:https://pan.baidu.com/s/1f2pUhjFLvtA_SDLkR8wXtQ
提取码:2w8y
def seg_depart(sentence):
jieba.load_userdict(r'C:\Users\86158\Desktop\作业\大三下\fenci\demo-chinese-vectorization-stop-words-master\HITstop.txt')
sentence_depart = jieba.cut(sentence.strip())
stopwords = stopwordslist() # 创建一个停用词列表
outstr = '' # 输出结果为outstr
for word in sentence_depart: # 去停用词
if word not in stopwords:
if word != '\t':
outstr += word
outstr += " "
return outstr
outstr就是获取的词语了。然后开始读取我们上面的句子。因为是第五列,所以索引为4.
file_path = r'C:\Users\86158\Desktop\temp.xlsx' # r对路径进行转义,windows需要
raw_data = pd.read_excel(file_path, header=None, sheet_name='Sheet1') # 不设置表头
after_fenci=[]
bullet_screen1=[]
for i in range(1,160):
bullet_screen1.append(raw_data.values[i, 4]) # 读取excel第5列的值,并添加到列表
for i in range(1,159):
after_fenci.append(seg_depart(bullet_screen1[i]))
print(after_fenci[3])
data_set = [] # 建立存储分词的列表
当然,分词完后的结果总是那么不尽如人意,比如会有很多无意义的词语,比如哈哈哈。我们需要放置一个过滤器来筛选掉这些词语。
useless=['哈','哈哈','哈哈哈','呵呵','哈哈哈哈','哈哈哈哈哈','包邮','上海']
for i in range(len(after_fenci)):
result = []
seg_list = after_fenci[i].split()
for w in seg_list: # 读取每一行分词
if w not in useless and len(w)>1:
result.append(w)
# 这里加一点过滤
data_set.append(result)
result就是我们当前真正有用的词语了。
可以看看分完词之后的效果:
还有次数因子:
然后我们要借助
import pyLDAvis.gensim
这个库,他会自动帮我们生成一个网页。
data = pyLDAvis.gensim.prepare(lda, corpus, dictionary)
# res=pd.DataFrame(data)
pyLDAvis.save_html(data,'20230522.html')
就酱就可以了,但是还不够,直接保存的话网页会加载不出来。
我们直接进入生成的网页
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/bmabey/pyLDAvis@3.4.0/pyLDAvis/js/ldavis.v1.0.0.css">
<div id="ldavis_el84441840285943504200703988" style="background-color:white;"></div>
<script type="text/javascript">
看到cdn,ctrl+f找到所有的cdn,将其替换成fastly。
<link rel="stylesheet" type="text/css" href="https://fastly.jsdelivr.net/gh/bmabey/pyLDAvis@3.4.0/pyLDAvis/js/ldavis.v1.0.0.css">
<div id="ldavis_el971222126861006243514626282" style="background-color:white;"></div>
<script type="text/javascript">
这样网页就能正常打开了。
至此,LDA情感打分也完成了。
完整代码请联系本人xinkong1418@163.com~