成都网站建设设计

将想法与焦点和您一起共享

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对聊天记录进行拆分,找出用户最关心的咨询问题!
分享URL:http://chengdu.cdxwcx.cn/article/pigdho.html