文本挖掘是從大量文本中拾弃,比如微博評(píng)論讯檐,知乎評(píng)論羡疗,JD,天貓?zhí)詫毚罅吭u(píng)論中的文本中抽取出有價(jià)值的知識(shí)别洪,并利用這些知識(shí)創(chuàng)造出價(jià)值叨恨,實(shí)現(xiàn)變現(xiàn)的一個(gè)過程。
文本挖掘目的是把文本信息轉(zhuǎn)化為人類可利用的知識(shí)挖垛。
文本挖掘我覺得可分為以下幾個(gè)方向痒钝。
第一,文本詞頻統(tǒng)計(jì)分析痢毒,提取關(guān)鍵字做詞云展示午乓。
第二,分類闸准,利用sklearn的樸素貝葉斯算法進(jìn)行分類益愈,比如垃圾郵件分類,文本分類夷家、信用等級(jí)評(píng)定蒸其,情感分析。
第三库快,文本推薦摸袁,例如使用TF-IDF找出兩篇文章的關(guān)鍵詞,然后每個(gè)文章分別取出k個(gè)關(guān)鍵詞(10-20個(gè))义屏,統(tǒng)計(jì)這些關(guān)鍵詞的詞頻靠汁,生成兩篇文章的詞頻向量,然后用余弦距離計(jì)算其相似度進(jìn)行推薦闽铐。
語料庫(kù)是我們要分析的所有文檔的集合〉現(xiàn)有十九大報(bào)告的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
# 匹配中文字符正則表達(dá)式
zh_pattern = re.compile(u'[\u4e00-\u9fa5]+')
# 加載文本數(shù)據(jù),構(gòu)建語料庫(kù)
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)
# 分詞結(jié)果存到數(shù)據(jù)框
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)
# 分詞結(jié)果頻率排序
# print(pt_stat.sort_index(by='十九大'))
# 設(shè)置詞云字體
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()