Python对聊天记录进行拆分,找出用户最关心的咨询问题!
背景:
创新互联2013年开创至今,先为通州等服务建站,通州等地企业,进行企业商务咨询服务。为通州企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
最近部门领导交给笔者一个任务,想要从记录用户聊天记录的数据表中,找出用户对哪些问题比较关心(即:用户咨询过程中问到的哪些词语出现的频率最高),以便后期适当的做些业务的调整,改变推广策略等等
聊天记录如下:
你好
想了解想美国的博士申请
今年就毕业。准备申请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还支持全精确模式、全模式、搜索引擎模式的分词功能,这些分词功能,无绝对的优劣之分,主要看适不适用于业务分析。关于这部分的内容,如果读者有兴趣,请自行百度查阅吧。
文章题目:Python对聊天记录进行拆分,找出用户最关心的咨询问题!
当前地址:http://scyanting.com/article/pigdho.html