温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python 对聊天记录进行拆分,找出用户最关心的咨询问题!

发布时间:2020-06-11 17:45:14 来源:网络 阅读:365 作者:insist_way 栏目:编程语言

背景:

最近部门领导交给笔者一个任务,想要从记录用户聊天记录的数据表中,找出用户对哪些问题比较关心(即:用户咨询过程中问到的哪些词语出现的频率最高),以便后期适当的做些业务的调整,改变推广策略等等


聊天记录如下:

你好

想了解想美国的博士申请

今年就毕业。准备申请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还支持全精确模式、全模式、搜索引擎模式的分词功能,这些分词功能,无绝对的优劣之分,主要看适不适用于业务分析。关于这部分的内容,如果读者有兴趣,请自行百度查阅吧。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI