您好,登录后才能下订单哦!
背景:
最近部门领导交给笔者一个任务,想要从记录用户聊天记录的数据表中,找出用户对哪些问题比较关心(即:用户咨询过程中问到的哪些词语出现的频率最高),以便后期适当的做些业务的调整,改变推广策略等等
聊天记录如下:
你好
想了解想美国的博士申请
今年就毕业。准备申请2020年的。打算申金融或者工商
正在准备中
有几篇中文的。比较水。
还没有。博士竞争激烈。打算多申一些学校。
那qq吧。1111111
谢谢
2222222
本科GPA一般。3.4的样子
211
孟
学生
都行的
嗯好的
麻烦问下会先qq联系吧
电话不一定能接到
嗯对
嗯
谢谢
思路:
使用jieba模块的自定义词库对每条聊天记录进行拆分(即:中文分词),然后将每条分词的结果存到中间表,最后对这张中间表进行结果的汇总。虽然jieba具备了新词语的识别能力,但是词库中的词语可能对于某个特定领域的词语分词的识别的不是特别令人满意,使用自定义的关键词库,可以使分词时保证更高的准确性。
源代码:
cat userdict.txt
留学
出国
研究生
英国
美国
cat fenci_dictionary.py
import jieba.analyse
import pymysql
db = pymysql.connect(host='xx.xx.xx.xx',user='xxx',passwd='xxx',db='dbname',charset='utf8',connect_timeout=30)
cursor = db.cursor()
sql= 'SELECT msg from tablename where msg_type="g" limit 50'
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
row = row[0]
# UserDictionary Model
jieba.load_userdict('userdict.txt')
for i in jieba.cut(row):
sql1 = 'insert into test.tmp_fenci_statistic(keywords) values("%s")' % i
try:
cursor.execute(sql1)
db.commit()
except:
db.rollback()
db.close()
jieba介绍:
jieba分词器安装(就是一个Python模块)
pip3 install jieba
jieba分词添加自定义词典:
如果词库中没有特定领域的词语,或者对于某个特定领域的关键词不是识别的特别令人满意,虽然jieba具备了新词语的识别能力,但是我们可以自定义属于自己的关键词库,以便在分词时保证更高的准确性
语法:
jieba.load_userdict(filename) #filename为自定义的词典路径
词典格式:
一个词占一行,可以包含三个部分,1:词语,2:词频;3:词性 2、3 都可以省略,之间用空格隔开
例:
cat userdict.txt
留学
出国
研究生
英国
美国
题外:
jieba还支持全精确模式、全模式、搜索引擎模式的分词功能,这些分词功能,无绝对的优劣之分,主要看适不适用于业务分析。关于这部分的内容,如果读者有兴趣,请自行百度查阅吧。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。