IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> NLP文本关键词提取之TF-IDF模型:基于结巴分词和wordcloud进行疫情文本数据分析 -> 正文阅读

[人工智能]NLP文本关键词提取之TF-IDF模型:基于结巴分词和wordcloud进行疫情文本数据分析

TF-IDF模型:基于结巴分词和wordcloud进行疫情文本数据分析

最近做了新冠疫情中国政策的文本数据分析,下面来介绍一下相关知识进行总结与巩固,也希望帮助更多的人。

一、Tf-idf:关键词提取

停用词:停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词

某个词比较少见,但在文章中多次出现,进而反映文章特行,那么它就是关键词

1、词频TF

词 频 ( T F ) = 某 个 词 在 文 章 中 的 出 现 次 数 该 文 出 现 词 的 总 数 \scriptsize词频(TF) = \frac{某个词在文章中的出现次数}{该文出现词的总数} (TF)=?

2、逆文档频率IDF

image-20220505155431647

IDF越大,词频越大,重要程度越高

TF-IDF=词频*逆文档频率

二、结巴分词

jieba是Python 中文分词组件库,内置了许多方法帮助我们去使用。

pip install jieba

下面是结巴分词演示

1、首先导入jieba分词库

import pandas as pd
import jieba
import os
import jieba.analyse

2、获取文件夹下的所有文件名

有感兴趣想做的,可以找一些txt文件数据放入文件夹内(数据量越大越好)

content_S =[]
contents = []   # 存放txt文件每行的内容
path1 = r"policy_2020"
files_1 = os.listdir(path1)   # 得到path1文件夹下所有文件的名称
# print(files_1)

3、遍历每一个文件并使用结巴进行分词

这里我用了非常低级的写法,这样使我的时间复杂度过大,当数据量很大时不建议这样写,学习使用还是可以的,大佬们也可以提一些宝贵建议。由于数据原因我用了5小时才跑完这部分内容(2144个txt文件)。

for i in range(len(files_1)):
    new_path = path1 + '\\'+ files_1[i]
    contents.append(new_path)
# print(contents)
    for j in range(len(contents)):
        with open(contents[j], 'r', encoding='utf-8') as f:
            myString = f.read().replace(' ','').replace('\n','')
            # 取关键词前五
        tags = jieba.analyse.extract_tags(myString,topK=5)
#         print(tags)
        content_S.append(tags)
    print("完成",i)

4、读取分好词的conten_S和停用词

df_content=pd.DataFrame({'content_S':content_S})
df_content.head()
# 停用词
stopwords = pd.read_csv("baidu_stopwords.txt",index_col=False,sep="\t",quoting=2,names=['stopword'],encoding='utf-8')
stopwords.head

5、停用词判断逻辑

def drop_stopwords(contents,stopwords):
    contents_clean=[]
    all_words=[]
    for line in contents:
        line_clean = []
        for word in line:
            if word in stopwords:
                continue
            line_clean.append(word)
            all_words.append(str(word))
        contents_clean.append(line_clean)
    return contents_clean,all_words
cons = df_content.content_S.values.tolist()
stopwords=stopwords.stopword.values.tolist()
contents_clean,all_words = drop_stopwords(cons,stopwords)

6、查看经过停用词处理后的数据

df_content=pd.DataFrame({'content_clean':contents_clean})
df_content.head()
#关键词
df_all_words=pd.DataFrame({'all_words':all_words})
df_all_words.head()
#查看经过结巴分词后的所有关键词词频
words_count=df_all_words.groupby(by=['all_words'])['all_words'].agg([("count","count")])
words_count=words_count.reset_index().sort_values(by=["count"],ascending=False)
words_count.head(20)

image-20220512215201124

三、绘制词云

使用wordcloud库可以进行词云绘制,将高频词可视化展示出来

首先需要导入 pip install wordcloud

from wordcloud import WordCloud
import matplotlib.pyplot as plt
%matplotlib inline
import matplotlib
matplotlib.rcParams['figure.figsize'] = (10.0,5.0)
#设置字体和背景颜色及最大文字大小,没有的话可以随便找个字体文件
wordcloud=WordCloud(font_path="./data/simhei.ttf",background_color="white",max_font_size=80)
word_frequence = {x[0]:x[1] for x in words_count.head(100).values}
wordcloud=wordcloud.fit_words(word_frequence)
plt.imshow(wordcloud)

运行结果如下

image-20220512214243335
0).values}
wordcloud=wordcloud.fit_words(word_frequence)
plt.imshow(wordcloud)


运行结果如下

[外链图片转存中...(img-w6Q74NUD-1652364226383)]
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-16 11:19:45  更:2022-05-16 11:19:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:53:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码