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

news2024/11/25 12:51:36

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


在这里插入图片描述


作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(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:
                continue
            else:
                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:
                continue
            else:
                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:更多精彩内容还请进入本文专栏人工智能,进行查看,欢迎大家支持与指教啊~( ̄▽ ̄~)~

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/50670.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python-百度API文字识别

最近公司通过网络查询到我们部门有人工作时间逛b站次数太多,这事惊动了上层领导,搅得人心惶惶。突然星期某信服的一套监控员工电脑的系统,不经一颤。想着自己也尝试玩玩电脑屏幕文字识别-----抓取关键字,然后将图片保存下来。 这…

Cocos 帮助更多优秀移动游戏登上 Web 舞台

作者 / Cocos 3D 内容开发引擎对于一款游戏开发引擎来说,关注市场风向,第一时间将合适的技术带给开发者永远是最重要的工作之一。作为一款国际化的 3D 引擎,Cocos 在全球拥有 160 万开发者,覆盖全球设备超 16 亿,曾被用…

STC 51单片机47——外部中断控制流水灯

#include <reg52.h> #include <intrins.h> //仿真与开发板一致&#xff0c;无需修改 sbit INT_0 P3^2; //开发板上&#xff0c;黑色按钮帽的按钮中的一个 unsigned char light0xfe; void delay500ms(void) //约500ms延时子程序&#xff08;12MHZ&a…

【Flink】使用CoProcessFunction完成实时对账、基于时间的双流join

文章目录零 处理函数回顾一 CoProcessFunction的使用1 CoProcessFunction使用2 实时对账&#xff08;1&#xff09;使用离线数据源&#xff08;批处理&#xff09;&#xff08;2&#xff09;使用高自定义数据源&#xff08;流处理&#xff09;二 基于时间的双流 Join1 基于间隔…

【自然语言处理(NLP)】基于预训练模型的机器阅读理解

【自然语言处理&#xff08;NLP&#xff09;】基于预训练模型的机器阅读理解 作者简介&#xff1a;在校大学生一枚&#xff0c;华为云享专家&#xff0c;阿里云专家博主&#xff0c;腾云先锋&#xff08;TDP&#xff09;成员&#xff0c;云曦智划项目总负责人&#xff0c;全国高…

【Pandas数据处理100例】(九十二):Pandas中的transform()函数使用方法

前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPandas版本:1.3.5N…

Linux总结

目录学习阶段基本介绍概述Linux和UnixLinux和Windows的比较Linux目录结构远程登录Linux为什么需要远程登录LinuxXShell工具Xftp工具Linux命令关机/重启命令用户登录/注销运行级别Linux系统的7个运行级别运行级别原理帮助指令man获得帮助信息help指令执行历史命令用户管理添加用…

我的网站被攻击了,运维大佬给了我自动封禁ip的脚本。

我的网站被攻击了&#xff0c;发现友圈最近出现这种情况的还不少&#xff0c;真是神奇了&#xff0c;这事也能扎堆发生。 分享出来给大家&#xff0c;万一以后用得着呢~ 故事背景 我的一个小网站最近总是收到云监控报警&#xff0c;一个部署在4核8G单机上的小网站。 查了log…

微信开发者工具 / 反编译工具CrackMinApp 下载安装

微信开发者工具 / 反编译工具CrackMinApp 下载安装 文章目录微信开发者工具 / 反编译工具CrackMinApp 下载安装前言一、微信开发者工具下载安装二、反编译工具CrackMinApp安装三、导入反编译后的文件四、友情提示总结前言 微信开发者工具介绍&#xff1a;微信提供的微信小程序…

CVPR 2022 视频全景分割新 Benchmark:VIPSeg

关注公众号&#xff0c;发现CV技术之美今天向大家分享 CVPR 2022 论文『Large-scale Video Panoptic Segmentation in the Wild: A Benchmark』,介绍一个新的视频全景分割&#xff08;Video Panoptic Segmentation&#xff09;领域 Benchmark&#xff1a;VIPSeg。论文链接&…

GB/T 10707 橡胶燃烧性能

GB/T 10707&#xff1a;Rubber-Determination of the burning GB/T 10707&#xff1a;橡胶燃烧性能的测定 GB/T 10707橡胶燃烧性能的测定–适用范围&#xff1a; 本标准规定了在实验室环境下测定橡胶燃烧性能的两种方法&#xff1a;氧指数法和垂直燃烧法 本标准适用于在实验…

云原生丨MLOps与DevOps的区别

MLOps 是机器学习 (ML) 工程的很重要的一个部分&#xff0c;专注于简化和加速将 ML 模型交付到生产以及维护和监控它们的过程。 MLOps 涉及不同团队之间的协作&#xff0c;包括数据科学家、DevOps 工程师、IT 专家等。 MLOps 可以帮助组织创建和提高其 AI 和机器学习解决方案…

卧式钢筋切割机设计

目 录 1 绪论 1 1.1 国内外钢筋切割技术的发展状况 1 1.2 冷轧带肋钢筋的概述 2 1.2.1 钢筋的种类 2 1.2.2 冷轧带肋钢筋的表面形式 3 1.2.3 冷轧带肋钢筋基本性能 3 1.3 课题的提出和意义 4 2 对钢筋类金属材料弹塑性弯曲的分析 4 2.1 概述 5 2.2 弹塑性弯曲的变形过程 6 3 切…

再次安装torch踩过的坑

没有多余空间 我用conda 从新创建了一个项目环境&#xff0c;安装了一些基础的库。然后当我下载安装torch的时候&#xff0c;报错说安装的空间不足&#xff0c;我看了一下&#xff0c;torch确实比较大&#xff0c;一个多G&#xff0c;但是之前也没有出现过这个问题。 一开始以…

python中如何打印日志信息

日志打印方式 常见的Python日志打印方式为使用内置函数print()或者logging模块打印日志。 print()只能将日志打印至控制台&#xff0c;不推荐此方式logging模块默认将日志打印至控制台&#xff0c;也可以配置打印到指定日志文件&#xff0c;推荐使用此方式 logging模块 日志…

[附源码]JAVA毕业设计高速公路服务区管理系统(系统+LW)

[附源码]JAVA毕业设计高速公路服务区管理系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项…

二分查找 binarySearch 适合初学分析的例子

递归代码&#xff1a; #include <cstdio> #include <algorithm> #define MAX 5 using namespace std;int binarySearch(int x,int a[],int left,int right);int main() {int a[MAX]{1,3,4,5,9};printf("find %d location is %d\n",4,binarySearch(4,a,0…

Sap中的RFC接口

文章目录1 Definition2 Call process3. Communication4 Communication module5 RFC version .6 RFC and Web service7 Remote object maintain8 Call RFC9 Summary1 Definition 2 Call process 3. Communication 4 Communication module 5 RFC version . 6 RFC and Web service…

Linux驱动: rtc子系统

1. 前言 限于作者能力水平&#xff0c;本文可能存在的谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. 背景 本文分析代码基于Linux 3.10内核&#xff0c;硬件平台为嵌入式ARM32平台. 3. rtc子系统 3.1 相关代码文件列表 drivers/rtc/class.c …

代码文档

为您的团队和您未来的自己代码文档。 Intuition 代码告诉你_怎么_做&#xff0c;注释告诉你_为什么_。——杰夫阿特伍德 可以通过代码文档来进一步组织代码&#xff0c;让其他人&#xff08;以及未来的自己&#xff09;更容易轻松地导航和扩展它。在完成编写代码库的那一刻就最…