【自然语言处理概述】文本词频分析



作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建设专家委员会(TIPCC)志愿者,以及编程爱好者,期待和大家一起学习,一起进步~
.
博客主页ぃ灵彧が的学习日志
.
本文专栏人工智能
.
专栏寄语:若你决定灿烂,山无遮,海无拦
.

文章目录

  • 【自然语言处理概述】文本词频分析
  • 一、前沿
    • (一)、任务描述
    • (二)、环境配置
  • 二、代码部分
    • (一)、文本加载
    • (二)、文本分词
    • (三)、去停用词
    • (四)、根据词频排序并输出
    • (五)、小结
  • 三、总结

一、前沿

(一)、任务描述

文本与图片具有本质上的差别:图片本质上是数字化的,其每个像素点都由三原色的组合灰度值构成,而文本属于自然语言,其表现形式无法被计算机直接识别,因此,在自然语言处理技术发展的早期,解决文本表示问题是一项极具挑战的任务。


(二)、环境配置

本次实验平台为百度AI Studio,Python版本为Python3.7,下面介绍如何通过Python编程方式实现文本词频分析。


二、代码部分

(一)、文本加载

首先将需要分析的文本从文件中读出,本文以一篇散文为例进行后面的分析:


with open('test.txt', 'r', encoding='UTF-8') as novelFile:novel = novelFile.read()

(二)、文本分词

目前,Python支持多种第三方分词工具,最常用的有jieba分词、SnowNLP、THULAC、NLPIR等,本书以jieba分词为例进行演示,更多分词工具读者可以自行实验尝试。


import jieba # jieba中文分词库
novelList = list(jieba.lcut(novel))

(三)、去停用词

在自然语言中,存在很多无意义的词,比如标点符号“、”“的”“之”等,这类词出现频率高,且具有很有限的语义作用,称作停用词。为了避免这类词对统计结果造成的干扰,通常在分词之后,需要将其剔除,只保留重要的词语用作进一步分析,下面一段代码演示了计算每个词出现的频次的过程,若该词在停用词列表中,直接不计入:

stopwords = [line.strip() for line in open('stop.txt', 'r', encoding='UTF-8').readlines()]
novelList = list(jieba.lcut(novel))
novelDict = {}# 统计出词频字典
for word in novelList:if word not in stopwords:# 不统计字数为一的词if len(word) == 1:continueelse:novelDict[word] = novelDict.get(word, 0) + 1

(四)、根据词频排序并输出

import jieba # jieba中文分词库with open('test.txt', 'r', encoding='UTF-8') as novelFile:novel = novelFile.read()
# print(novel)
stopwords = [line.strip() for line in open('stop.txt', 'r', encoding='UTF-8').readlines()]
novelList = list(jieba.lcut(novel))
novelDict = {}# 统计出词频字典
for word in novelList:if word not in stopwords:# 不统计字数为一的词if len(word) == 1:continueelse:novelDict[word] = novelDict.get(word, 0) + 1# 对词频进行排序
novelListSorted = list(novelDict.items())
novelListSorted.sort(key=lambda e: e[1], reverse=True)# 打印前10词频
topWordNum = 0
for topWordTup in novelListSorted[:10]:print(topWordTup)from matplotlib import pyplot as plt
x = [c for c,v in novelListSorted]
y = [v for c,v in novelListSorted]
plt.plot(x[:10],y[:10],color='r')
plt.show()

(五)、小结

词频统计在一定程度上可以反映文本的特征。文本词频分析仅仅可以作为文本的一部分最浅层的特征使用,但是要分析其深度语义,需要使用更加先进的文本特征提取方式。


三、总结

本系列文章内容为根据清华社出版的《自然语言处理实践》所作的相关笔记和感悟,其中代码均为基于百度飞桨开发,若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回!!!

最后,引用本次活动的一句话,来作为文章的结语~( ̄▽ ̄~)~:

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

ps:更多精彩内容还请进入本文专栏人工智能,进行查看,欢迎大家支持与指教啊~( ̄▽ ̄~)~

【自然语言处理概述】文本词频分析相关推荐

  1. NLP之TEA:自然语言处理之文本情感分析的简介、算法、应用、实现流程方法、案例应用之详细攻略

    NLP之TEA:自然语言处理之文本情感分析的简介.算法.应用.实现流程.实现方法之详细攻略 目录 TEA的简介 TEA的应用 TEA的实现流程 TEA的实现方法 T1.词袋模型 TEA的案例应用 TE ...

  2. python文本txt词频统计_python实例:三国演义TXT文本词频分析

    0x00 前言 找不到要写什么东西了!今天有个潭州大牛讲师  说了个  文本词频分析 我基本上就照抄了一遍 中间遇到一些小小的问题 自我百度 填坑补全了  如下 : 效果演示 0x01   准备环境及 ...

  3. 大数据分析 | 用 Python 做文本词频分析

    老师教给我,要学骆驼,沉得住气的动物.看它从不着急,慢慢地走,慢慢地嚼,总会走到的,总会吃饱的. ---<城南旧事> 目录 一.前言 Python 简介 Python 特点 二.基本环境配 ...

  4. 数据分析学习总结笔记16:NLP自然语言处理与文本探索性分析

    文章目录 1 引言 2 数据集 3 文本统计信息分析 4 Ngram模型探索 5 基于pyLDAvis的主题模型探索 6 绘制词云图 7 情感分析 7.1 TextBlob 7.2 Vader Sen ...

  5. 自然语言处理之文本情感分析

    1.导语 深度学习近些年取得突破性的发展,目前深度学习技术在人工智能领域应用最广泛的两方面就是CV(计算机视觉)和NLP(自然语言处理),在本次夏虹老师的<人工智能>课程上,我和我的小组成 ...

  6. 文本词频分析_Python初学

    目的是将文本的词频进行统计分析,并做成词云 import jieba import matplotlib.pyplot as plt from wordcloud import WordCloud,I ...

  7. python jieba词频统计英文文本_python实战,中文自然语言处理,应用jieba库来统计文本词频...

    模块介绍 安装:pip install jieba 即可 jieba库,主要用于中文文本内容的分词,它有3种分词方法: 1. 精确模式, 试图将句子最精确地切开,适合文本分析: 2. 全模式,把句子中 ...

  8. 自然语言处理(NLP)之使用LSTM进行文本情感分析

    情感分析简介 文本情感分析(Sentiment Analysis)是自然语言处理(NLP)方法中常见的应用,也是一个有趣的基本任务,尤其是以提炼文本情绪内容为目的的分类.它是对带有情感色彩的主观性文本 ...

  9. python文本聚类 词云图_有哪些软件可以进行中文词频分析?

    在现实生活中,人想做词云,也有了关键词的数据但自己又不会做词云可怎么办,我给大家推荐几款词云制作工具,让你瞬间呈现美观.酷炫的词云可视化.我们先来看看国外的词云制作工具: 1.Wordle Wordl ...

最新文章

  1. 毕业三年,贷款40万创业之后我又做回了程序员
  2. JZOJ 5267. 费马点问题
  3. proj4经纬度bl转换xy_多种坐标系之间的转换之Proj.NET_转载
  4. GDIPlus灰度化图像
  5. 移除指定 global using 命名空间
  6. leetcode89. 格雷编码
  7. php dingo和jwt,dingo配合laravel、JWT使用
  8. ASP.NET Core Api网关Ocelot的中文文档
  9. 阿里首款自研芯片含光800问世!算力相当于10个CPU,性能超第二名4倍!
  10. 大数据之-Hadoop3.x_MapReduce_ReduceJoin案例需求分析---大数据之hadoop3.x工作笔记0128
  11. Tomcat Insufficient space for shared memory file
  12. 问卷统计前奏【SPSS 072期】
  13. 独自封装windows 10系统教程(全)
  14. CentOS 7.6 安装 Sentaurus 2017.09 记录
  15. iphone 装 android系统,iPhone上安装Android系统详细步骤。
  16. 网易云音乐评论抓取(js逆向)
  17. 如何将一串数字用函数的方法倒过来(C语言)
  18. 如何PHP给人生日祝福,送给网友的生日祝福语 朋友的祝福语
  19. 书画拍卖系统 php源码,网上拍卖系统,源代码
  20. 汇编程序:计算分段函数

热门文章

  1. 万字长文读透 Redis
  2. 数学速算法_简单易学的速算法,贴墙上背,孩子次次数学100分!
  3. iOS面试攻略,你必须拥有
  4. 蚁群算法(详解)python
  5. mysql数据库加锁语句_sql语句对数据库表进行加锁和解锁
  6. 阿里跟腾讯又㕛叒打起来了,这次是在东南亚
  7. 利用R语言画简单时间序列图
  8. TPTP监控远程Tomcat
  9. ZipFile 解压多个.zip压缩文件
  10. 小红书笔记api_odoo与小红书对接笔记