美文网首页
Python3 文本挖掘

Python3 文本挖掘

作者: nobodyyang | 来源:发表于2019-03-21 15:14 被阅读0次

    文本挖掘是从大量文本中,比如微博评论,知乎评论,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 文本挖掘

          本文链接:https://www.haomeiwen.com/subject/amlrmqtx.html