资讯专栏INFORMATION COLUMN

文本分析——分词、统计词频、词云

TNFE / 1506人阅读

摘要:导入包导入文件和数据数据预处理分词并去除停用词算法该类会将文本中的词语转换为词频矩阵,矩阵元素表示词在类文本下的词频该类会统计每个词语的权值第一个是计算,第二个是将文本转为词频矩阵获取词袋模型中的所有词语将矩阵抽取出来,元素表示

导入包
import os
import sys
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import re
from pandas import Series, DataFrame  

import string
import re
import jieba
import jieba.analyse
import datetime
from wordcloud import WordCloud, ImageColorGenerator
import codecs
导入文件和数据
gongdan = pd.read_excel("Gongdan.xlsx")
数据预处理
gongdan["content"] = [str(i) for i in gongdan["content"]]
gongdan["content"] = ["".join(re.findall(u"[u4e00-u9fff]+", i)) for i in gongdan["content"]]
indexs = list(gongdan["content"][pd.isnull(gongdan["content"])].index)
gongdan = gongdan.drop(indexs)
indexs = list(gongdan["content"][gongdan["content"]==""].index)
gongdan = gongdan.drop(indexs)

content = gongdan["content"]

cont = "".join(content)
cont = "".join(re.findall(u"[u4e00-u9fa5]+", cont))
分词并去除停用词
stopwords = set()
fr = codecs.open("stopwords.txt", "r", "utf-8")
for word in fr:
   stopwords.add(str(word).strip())
fr.close()

jieba.load_userdict("dict.txt")
text = list(jieba.cut(cont, cut_all=False, HMM=True))
text = list(filter(lambda x: x not in stopwords, text))
text = [str(i) for i in text if i != " "]
Tfidf 算法
from sklearn import feature_extraction
from sklearn.feature_extraction.text import TfidfTransformer  
from sklearn.feature_extraction.text import CountVectorizer  

test = " ".join(text)
tlist = []
tlist.append(test)

vectorizer=CountVectorizer()#该类会将文本中的词语转换为词频矩阵,矩阵元素a[i][j] 表示j词在i类文本下的词频
transformer = TfidfTransformer()#该类会统计每个词语的tf-idf权值
tfidf = transformer.fit_transform(vectorizer.fit_transform(tlist))  #第一个fit_transform是计算tf-idf,第二个fit_transform是将文本转为词频矩阵  

word=vectorizer.get_feature_names()#获取词袋模型中的所有词语  
weight=tfidf.toarray()#将tf-idf矩阵抽取出来,元素a[i][j]表示j词在i类文本中的tf-idf权重  
tfidf_list = {}
for i in range(len(weight)):#打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重  
    for j in range(len(word)):  
        tfidf_list[word[j]] = weight[i][j]
词云
font_path = "yahei.ttf"

from PIL import Image
back_coloring = np.array(Image.open("circle.jpg"))

wc = WordCloud(font_path=font_path,  # 设置字体
               background_color="white",  # 背景颜色
               max_words=60,  # 词云显示的最大词数
               mask=back_coloring,  # 设置背景图片
               stopwords=stopwords,
               max_font_size=100,  # 字体最大值
               random_state=42,
               width=1000, height=860, margin=2,# 设置图片默认的大小,但是如果使用背景图片的话,那么保存的图片大小将会按照其大小保存,margin为词语边缘距离
#               prefer_horizontal=1,
               )

wc.generate_from_frequencies(tfidf_list)

plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.figure()
wc.to_file("w.png")

# create coloring from image
image_colors = ImageColorGenerator(back_coloring)
# recolor wordcloud and show
# we could also give color_func=image_colors directly in the constructor
plt.imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
plt.axis("off")
plt.figure()
plt.imshow(back_coloring, cmap=plt.cm.gray, interpolation="bilinear")
plt.axis("off")
plt.show()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41336.html

相关文章

  • Python生成歌词词云

    摘要:上面是生成词云的方法封装,还有一些其他方法根据词频生成词云根据文本生成词云根据词频生成词云根据文本生成词云将长文本分词并去除屏蔽词此处指英语,中文分词还是需要自己用别的库先行实现,使用上面的对现有输出重新着色。 对于数据展示这一块有时候会用到词云,python中提供的wordcloud模块可以很灵活的完成生成词云除了使用python提供的wordcloud模块以为还有在线的生成方式ht...

    junbaor 评论0 收藏0
  • python爬虫实战一:分析豆瓣中最新电影的影评

    摘要:准备把豆瓣上对它的影评短评做一个分析。这样就得到了最新电影的信息了。例如战狼的短评网址为其中就是电影的,表示评论的第条评论。如下图所示好的,至此我们已经爬取了豆瓣最近播放电影的评论数据,接下来就要对数据进行清洗和词云显示了。 简介 刚接触python不久,做一个小项目来练练手。前几天看了《战狼2》,发现它在最新上映的电影里面是排行第一的,如下图所示。准备把豆瓣上对它的影评(短评)做...

    BearyChat 评论0 收藏0
  • 从13万猫眼评论看看《流浪地球》到底怎么样

    摘要:今年的流浪地球这么火,通过爬取猫眼电影上网友对该片的评价如何。也许很多人在这天通过看流浪地球过节吧。 背景 最近几年猫眼电影越来越热门了,都差不多和豆瓣并驾齐驱了。今年的《流浪地球》这么火,通过爬取猫眼电影上网友对该片的评价如何。 爬取猫眼评论 找到评论网页地址 先打开猫眼官网找到《流浪地球》的介绍页面:https://maoyan.com/films/248906 showImg(h...

    lemanli 评论0 收藏0
  • 复仇者联盟谁才是绝对 C 位?Python分析9万条数据告诉你答案

    摘要:数据库文件已经超过了了。复联从开始便是漫威宇宙各路超级英雄的集结,到现在的第部,更是全英雄的汇聚。所以,灭霸出现的次数居然高于了钢铁侠。情感分析,又称为意见挖掘倾向性分析等。 showImg(https://segmentfault.com/img/remote/1460000019095022); 作者 | 罗昭成责编 | 唐小引 《复联 4》国内上映第十天,程序员的江湖里开始流传这...

    shiweifu 评论0 收藏0
  • Python pyecharts如何绘制云图呢?下面就给大家详解解答

      Python pyecharts作为常用的数据可视化软件,能够清晰的将海量的数据,去做一个拆分,要是更直观的去查看数据图表的话,就需要去制作云图了?那么,怎么制作云图呢?下面就给大家详细的做个解答。  词云图  什么是词云图,相信大家肯定不会感到陌生,一本书统计里面出现的词频,然后可视化展示,让读者快速的了解这个主题纲要,这就是词云的直接效果。  词云图系列模板  固定模式词云图  修改一些参...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<