Python3 文本挖掘

文本挖掘是从大量文本中,比如微博评论,知乎评论,JD,天猫淘宝大量评论中的文本中抽取出有价值的知识,并利用这些知识创造出价值,实现变现的一个过程。

文本挖掘目的是把文本信息转化为人类可利用的知识。

文本挖掘我觉得可分为以下几个方向。
第一,文本词频统计分析,提取关键字做词云展示。
第二,分类,利用sklearn的朴素贝叶斯算法进行分类,比如垃圾邮件分类,文本分类、信用等级评定,情感分析。
第三,文本推荐,例如使用TF-IDF找出两篇文章的关键词,然后每个文章分别取出k个关键词(10-20个),统计这些关键词的词频,生成两篇文章的词频向量,然后用余弦距离计算其相似度进行推荐。

语料库是我们要分析的所有文档的集合。现有十九大报告的txt文档。

十九大报告
分词结果
分词结果频率排序
生成词云

全篇代码:

# -*- conding:utf-8 -*-

import re
import numpy as np
import pandas as pd
# 字符编码模块
import codecs
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 匹配中文字符正则表达式
zh_pattern = re.compile(u'[\u4e00-\u9fa5]+')
# 加载文本数据,构建语料库
text = codecs.open('D:/PyCharm WorkPlace/十九大.txt', 'r', 'gbk')
content = text.read()
text.close()

stat = []
# 停用词语
stop_words = set(['的', '和', '是', '在', '要', '为', '我们', '以', '把', '了', '到', '上', '有'])

# 分词
segs = jieba.cut(content)
for seg in segs:
    # 匹配中文字符
    if zh_pattern.search(seg):
        # 去除停用词
        if seg not in stop_words:
            stat.append({'from': '十九大', 'word': seg})

# print(stat)
# 分词结果存到数据框
stat_df = pd.DataFrame(stat)
print(stat_df)
# pivot_table 透视表
pt_stat = stat_df.pivot_table(index='word', columns='from', fill_value=0, aggfunc=np.size)
# 分词结果频率排序
# print(pt_stat.sort_index(by='十九大'))

# 设置词云字体
cloud = WordCloud(font_path='C:\\simhei.ttf', background_color='white')
words = pt_stat['十九大'].to_dict()
print(words)
# 生成词云
cloud.fit_words(words)
plt.imshow(cloud)
plt.axis('off')
plt.show()

你可能感兴趣的:(Python3 文本挖掘)