data.write(i[0]+‘\n’)
将筛选结果写入 聊天记录.txt
data.close()
cursor.close()
conn.close()
关闭连接
记得把csv文件的编码格式转换成utf-8哦,不然可能会运行不下去:
当然你还可以用正则表达式去除以下内容
-
微信发送的数据:wxid.*
-
__表情:[.]*
不过我觉得这些也是必要的聊天信息之一,留着也无妨,因此在这里就不加入进去啦
最后得到的文本格式就是一行一句聊天内容,处理后我们就准备好进入下一个环节了!那就是令人激动的!生成词云
第二步,根据第一步得到的聊天数据生成词云
1. 导入我们的聊天记录,并对每一行进行分词
聊天记录是一行一行的句子,我们需要使用分词工具把这一行行句子分解成由词语组成的数组,这时候我们就需要用到结巴分词了。
分词后我们还需要去除词语里一些语气词、标点符号等等(停用词),然后还要自定义一些词典,比如说你们之间恩恩爱爱的话,一般结巴分词是无法识别出来的,需要你自行定义,比如说:小傻瓜别感冒了,一般分词结果是
小/傻瓜/别/感冒/了
如果你把“小傻瓜”加入到自定义词典里(我们下面的例子里是mywords.txt),则分词结果则会是
小傻瓜/别/感冒/了
下面对我们的聊天记录进行分词:
segment.py
import jieba
import codecs
def load_file_segment():
读取文本文件并分词
jieba.load_userdict(“mywords.txt”)
加载我们自己的词典
f = codecs.open(u"聊天记录.txt",‘r’,encoding=‘utf-8’)
打开文件
content = f.read()
读取文件到content中
f.close()
关闭文件
segment=[]
保存分词结果
segs=jieba.cut(content)
对整体进行分词
for seg in segs:
if len(seg) > 1 and seg != ‘\r\n’:
如果说分词得到的结果非单字,且不是换行符,则加入到数组中
segment.append(seg)
return segment
pri