【停用词】NLP中的停用词怎么获取?我整理了6种方法

文章目录

  • 一、停用词介绍
  • 二、停用词应用场景
    • 2.1 提取高频词
    • 2.2 词云图
  • 三、停用词获取方法
    • 3.1 自定义停用词
    • 3.2 用wordcloud调取停用词
    • 3.3 用nltk调取停用词
      • 3.3.1 nltk中文停用词
      • 3.3.2 nltk英文停用词
    • 3.4 用sklearn调取停用词
    • 3.5 用gensim调取停用词
    • 3.6 用spacy调取停用词

一、停用词介绍

您好,我是@马哥python说 ,一名10年程序猿。

在自然语言处理(NLP)研究中,停用词stopwords是指在文本中频繁出现但通常没有太多有意义的词语。这些词语往往是一些常见的功能词、虚词甚至是一些标点符号,如介词、代词、连词、助动词等,比如中文里的"的"、“是”、“和”、“了”、“。“等等,英文里的"the”、“is”、“and”、”…"等等。

停用词的作用是在文本分析过程中过滤掉这些常见词语,从而减少处理的复杂度,提高算法效率,并且在某些任务中可以改善结果的质量,避免分析结果受到这些词的干扰。

二、停用词应用场景

2.1 提取高频词

在使用jieba.analyse提取高频词时,可以事先把停用词存入stopwords.txt文件,然后用以下语句设置停用词:jieba.analyse.set_stop_words(‘stopwords.txt’) 这样提取出的高频词就不会出现停用词了。

2.2 词云图

在使用wordcloud画词云图时,可以设置WordCloud对象的参数stopwords,把需要设置的停用词放到这个参数里(通常情况下,需要手动多次增加停用词,多轮迭代,才能绘制出满意的词云图结果)。

图1:加入停用词后的「淄博烧烤」词云图

图2:未加入停用词的「淄博烧烤」词云图

图2掺杂了太多无意义的词语,严重影响了词频分析结果,图1效果就好多了,由此可见停用词在文本分析里的重要性。

三、停用词获取方法

3.1 自定义停用词

在科研领域,很多机构公开了一些停用词库,比如中文停用词表、哈工大停用词表、百度停用词表、四川大学机器智能实验室停用词库等,以方便广大科研者使用。

下面,以哈工大停用词表为例,完整代码如下:

# 读取停用词(哈工大通用停用词表)
with open('hit_stopwords.txt', 'r') as f:stopwords_list = f.readlines()
stopwords_list = [i.strip() for i in stopwords_list]print('停用词数量:', len(stopwords_list))
print('停用词列表:')
print(stopwords_list)

运行截图:
 自定义停用词
可以看到,中文停用词还是挺全面的,共767个。

我整理了一份较详尽的停用词词典,包含:中文停用词表、哈工大停用词表、百度停用词表、四川大学机器智能实验室停用词库,公众号"老男孩的平凡之路"后台回复"停用词"直接拿!

3.2 用wordcloud调取停用词

Python中的wordcloud是用来画词云图的库,它可以根据文本中单词的频率或重要性,将单词以不同的大小、颜色等形式展示在图像中,从而形成一个视觉上吸引人的词云图。

同时,它也内置了英文停用词库,完整代码如下:

from wordcloud import STOPWORDSprint('停用词数量:', len(STOPWORDS))
print('停用词列表:')
print(STOPWORDS)

运行截图:
wordcloud调取停用词
可以看到,wordcloud共包含了192个常用英文停用词。

3.3 用nltk调取停用词

nltk是一个流行的自然语言处理库,提供了许多文本处理和语言分析的功能。包含停用词加载、文本分词、词性标注、命名实体识别、词干提取和词形还原等常见功能。

其中,nltk内置了多种语言的停用词,下面分别介绍中文、英文停用词。

3.3.1 nltk中文停用词

完整代码:

import nltk
from nltk.corpus import stopwords# 下载停用词资源
nltk.download('stopwords')# 获取中文停用词列表
stopwords_cn_list = stopwords.words('chinese')
# 打印中文停用词列表
print('中文停用词数量:', len(stopwords_cn_list))
print('中文停用词:\n', stopwords_cn_list)

运行截图:
nltk中文停用词

可以看到,nltk共包含841个中文停用词。

3.3.2 nltk英文停用词

完整代码:

import nltk
from nltk.corpus import stopwords# 下载停用词资源
nltk.download('stopwords')# 获取英文停用词列表
stopwords_en_list = stopwords.words('english')
# 打印英文停用词列表
print('英文停用词数量:', len(stopwords_en_list))
print('英文停用词:\n', stopwords_en_list)

运行截图:
nltk英文停用词

可以看到,nltk共包含179个英文停用词。

3.4 用sklearn调取停用词

sklearn是一个用于机器学习的Python库,它包含了各种经典和先进的机器学习算法,如分类、回归、聚类、降维、特征选择、模型选择等。

其中,sklearn.feature_extraction是用于特征提取的模块,可以利用它调取停用词库,完整代码如下:

from sklearn.feature_extraction.text import ENGLISH_STOP_WORDS# 打印停用词列表
print('停用词数量:', len(ENGLISH_STOP_WORDS))
print('停用词列表:')
print(list(ENGLISH_STOP_WORDS))

运行截图:
sklearn调取停用词
可以看到,sklearn共包含318个英文停用词。

3.5 用gensim调取停用词

gensim是一个用于主题建模和自然语言处理的Python库。它提供了一组功能强大的工具和算法,用于从大规模文本语料库中提取语义主题和执行相关的文本处理任务。

其中,gensim.parsing.preprocessing是gensim库中用于文本预处理的模块。该模块提供了一系列函数和工具,用于对文本进行标记化、停用词去除、大小写转换、标点符号去除、词干提取等常见的文本预处理任务。

用gensim调取停用词,完整代码如下:

from gensim.parsing.preprocessing import STOPWORDS# 打印停用词列表
print('停用词数量:', len(STOPWORDS))
print('停用词列表:')
print(list(STOPWORDS))

运行截图:
gensim调取停用词
可以看到,gensim共包含337个英文停用词。

3.6 用spacy调取停用词

spacy是一个用于自然语言处理的Python库,具有高性能、易用性和多语言支持的特点。它提供了一系列的功能和工具,用于词法分析、命名实体识别、句法分析、依存关系分析等常见的自然语言处理任务。

用spacy调取停用词,完整代码如下:

import spacynlp = spacy.load("en_core_web_sm")
stopwords = nlp.Defaults.stop_words# 打印停用词列表
print('停用词数量:', len(stopwords))
print('停用词列表:')
print(list(stopwords))

运行截图:
spacy调取停用词
可以看到,spacy共包含326个英文停用词。

以上。


推荐阅读:

【Python可视化大屏】「淄博烧烤」热评舆情分析大屏

【爬虫+数据清洗+可视化】用Python分析“淄博烧烤“的评论数据

【爬虫+数据清洗+可视化分析】用Python分析哔哩哔哩“狂飙”的评论数据

【爬虫+数据清洗+可视化分析】用Python分析哔哩哔哩“阳了“的评论数据


首发公号:【停用词】NLP中的停用词怎么获取?我整理了6种方法


我是马哥,全网累计粉丝上万,欢迎一起交流python技术。

各平台搜索“马哥python说”:知乎、哔哩哔哩、小红书、新浪微博。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊云科技为企业提供一站式的出海策略,为企业保驾护航

走出国门,寻找新的盈利空间、优化资源配置、实现创新突破,已经成为中国企业的战略共识。如何进行全球化布局、本地化运营,实现高质量出海,是出海企业共同面临的课题。在【潮向新世界】出海日活动上,亚马逊云科技分享了…

热爱python的第一天:初识python,搭建python环境,运行第一个python小程序

目录 1 初始python python 概述 python的应用领域 应用python的公司 2 搭建python 开发环境 2.1 安装python(以windows 系统为例)(1)下载安装包 (2) 下载保存后打开文件夹点击以管理员身份运行 &…

apt-get install命令

在Linux系统中,apt-get命令默认安装包的位置是在/usr目录下。具体来说,安装的可执行文件会存储在/usr/bin目录下,而库文件会存储在/usr/lib目录下。同时,相应的配置文件和文档等也会存储在/usr/share目录下。 举例,ap…

Rdkit|化学指纹(fingerprint)

github:地址 文章目录 Rdkit|化学指纹(fingerprint)化学指纹(fingerprint)RDKFingerprintMorgan指纹提供的指纹信息存储在字典中 MACCS指纹AtomPair指纹TopologicalTorsion指纹参考 Rdkit|化学指纹(fingerprint&#x…

IDEA中使用.env文件配置信息

一、说明 我们以配置阿里云的 Access Key 的信息为例(配置别的信息当然也可以,我只是举个例子!!!),假设我们的代码中需要用到它。Access Key有两个属性,分别为【ALIBABA_CLOUD_ACCE…

MySQL数据类型

目录 数据类型分类 ​编辑tinyint类型 bit类型 float类型 decimal类型 char类型 varchar类型 char和varchar比较 日期和时间类型 enum和set 数据类型分类 tinyint类型 数值越界测试: mysql> create table tt1(num tinyint); Query OK, 0 rows affec…

simulink 实现51单片机流水灯 及代码形式优化

目录 流水灯 代码形式 流水灯 需求:先左移 再右移 自己的 代码形式 2021a版本

Acwing.860 染色法判定二分图(二分图染色法)

题目 给定一个n个点m条边的无向图,图中可能存在重边和自环。 请你判断这个图是否是二分图。 输入格式 第一行包含两个整数n和m。 接下来m行,每行包含两个整数u和v,表示点u和点v之间存在一条边。 输出格式 如果给定图是二分图&#xff0c…

ES6基本知识点

目录 1.对象优化 1.1 新增API 1.2 object.assign方法的第一个参数是目标对象,后面的参数都是源对象 1.3 声明对象简写 1.4 对象的函数属性简写 1.5 对象拓展运算符 2.map和reduce 2.1 数组中新增的map和reduce方法 3 promise 3.1 promise封装异步操作 4.模…

机械臂的雅克比矩阵推导

1. 线速度和角速度的递推通式推导 p i p i − 1 R i − 1 r i − 1 , i i − 1 \mathbf{p}_{i}\mathbf{p}_{i-1}\mathbf{R}_{i-1} \mathbf{r}_{i-1, i}^{i-1} pi​pi−1​Ri−1​ri−1,ii−1​ p i − 1 \mathbf{p}_{i-1} pi−1​是 { i − 1 } \{i-1\} {i−1}坐标系的原点的…

5.EFLK(ELK+filebeat)+filter过滤

文章目录 EFLK(ELKfilebeat)部署filebeat修改配置文件logstash配置 logstash的filter过滤grok(正则捕获插件)内置正则表达式调用自定义表达式 mutate(数据修改插件)重命名字段添加字段删除字段转换数据类型替换字段内容以"|"为分割符拆分数据成…

服务器数据库中了360后缀勒索病毒怎么办,怎么解决与防范?

随着网络攻击的不断增加,服务器中受到360后缀勒索病毒的威胁也日益严重。360后缀勒索病毒是beijingcrypt勒索家族中的病毒,该病毒采用了复杂的加密程序,一旦被该病毒攻击,它会将会对服务器上的所有文件进行加密,并要求…