当前位置:   article > 正文

Python教程95:jieba去掉停用词+词频统计+tokenize分词位置的示例用法_python英文停用词怎么过滤

python英文停用词怎么过滤

Python教程94:jieba模块用法(分词模式+自定义词典+提取词性+关键字),一个优秀的中文分词库。

1.停用词(Stop Words)是指在信息检索和文本挖掘中,为了提高处理效率和效果,经常会被自动忽略的词或词组。这些词通常出现频率非常高,但对文本内容的理解并没有太大帮助。停用词包括但不限于:
代词:如“我”、“你”、“他”、“她”、“它”等。
介词:如“在”、“到”、“从”、“对于”等。
连词:如“和”、“与”、“但是”、“而且”等。
助词:如“的”、“了”、“着”、“过”等。
常用动词:如“是”、“有”、“说”等。
通用量词:如“一些”、“很多”、“这个”、“那个”等。

2.停用词的示例用法+源码中列表推导式的理解

filtered_words = [word for word in seg_list if word not in stop_words]
  • 1

for word in seg_list:遍历 seg_list 中的每一个元素,这里每个元素都被命名为 word。if word not in stop_words:对于每一个 word,检查它是否不在 stop_words 列表中。如果 word 不在 stop_words 中,那么它就会被添加到 filtered_words 列表中。这样,filtered_words 就只包含了 seg_list 中不是停用词(stop words)的单词。

# @Author : 小红牛
# 微信公众号:WdPython
import re
import jieba

# 1.待分词的文本
text = '杨过是金庸先生所著武侠小说《神雕侠侣》中的男主角啊。12abc'
print('1.原文本'.center(30, '-'))
print(text)
# 2.只取中文的字符,过滤英文数字,各种标点符号等等
chinese = re.findall('[\u4e00-\u9fff]+', text)
new_text = ''.join(chinese)
print('2.在原文本中,只取中文文本'.center(30, '-'))
print(new_text)

# 3.把停用词放到集合中,会自动去掉重复的停用词
stop_words = set(['我', '在', '的', '是', '啊'])

# 4.对new_text进行jieba分词
seg_list = jieba.cut(new_text, cut_all=False)

# 推导式过滤停用词
filtered_words = [word for word in seg_list if word not in stop_words]

# 5.过滤停用词后的文本
print('3.去掉停用词后的分词文本'.center(30, '-'))
print(filtered_words)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

输出内容

------------1.原文本-------------
杨过是金庸先生所著武侠小说《神雕侠侣》中的男主角啊。12abc
--------2.在原文本中,只取中文文本--------
杨过是金庸先生所著武侠小说神雕侠侣中的男主角啊
--------3.去掉停用词后的分词文本---------
['杨过', '金庸', '先生', '所著', '武侠小说', '神雕侠侣', '中', '男主角']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.使用Counter进行词频统计,参数为列表数据。使用jieba对文本进行分词,接着,使用Python内置的collections.Counter对列表中的词进行词频统计。最后,遍历统计结果并打印出来。

# @Author : 小红牛
# 微信公众号:WdPython
import re
import jieba
from collections import Counter

text = '凤凰台上凤凰游,凤去台空江自流。'
# 使用正则,只取中文的字符,过滤英文数字,各种标点符号等等
chinese = re.findall('[\u4e00-\u9fff]+', text)
new_text = ''.join(chinese)

# 1.使用jieba进行分词
lcut_result = jieba.lcut(new_text, cut_all=False)

# 2.使用Counter进行词频统计,参数为列表
word_counts = Counter(lcut_result)
print(word_counts)
# 3.打印词频统计结果
for word, count in word_counts.items():
    print(f'{word}: {count}')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

输出内容:

Counter({'凤凰': 2, '台上': 1, '游凤去': 1, '台空江': 1, '自流': 1})
凤凰: 2
台上: 1
游凤去: 1
台空江: 1
自流: 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.jieba.tokenize示例用法:返回一个生成器,每次迭代返回一个包含三个元素的元组(word, start, end),其中 word 是分词结果中的一个词,start 和 end 分别是该词在原始句子中的起始和结束位置(基于字符索引)。对于一些需要知道分词结果位置信息的任务(如文本高亮、实体识别等)非常有用。

函数的基本语法如下:

jieba.tokenize(sentence, mode='default', cut_all=False)
  • 1

参数说明:
sentence:需要分词的字符串。
mode:分词模式,默认为 ‘default’。jieba 支持多种分词模式,包括精确模式、全模式、搜索引擎模式等。可以通过设置mode参数来选择不同的分词模式。
cut_all:是否使用全模式分词,默认为 False。如果设置为 True,则使用全模式分词。

import jieba

# 1.待分词的文本
text = '小红牛在分享零基础的Python教程'
jieba.add_word('小红牛')
jieba.add_word('零基础')

# 2.tokenize进行分词并获取位置信息
tokenize_result = jieba.tokenize(text)
for word, start, end in tokenize_result:
    print(f"词: {word}, 起始位置: {start}, 结束位置: {end}")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

输出内容

: 小红牛, 起始位置: 0, 结束位置: 3:, 起始位置: 3, 结束位置: 4: 分享, 起始位置: 4, 结束位置: 6: 零基础, 起始位置: 6, 结束位置: 9:, 起始位置: 9, 结束位置: 10: Python, 起始位置: 10, 结束位置: 16: 教程, 起始位置: 16, 结束位置: 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

完毕!!感谢您的收看

----------★★历史博文集合★★----------

我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具 NumPy Pygame

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/617453
推荐阅读
相关标签
  

闽ICP备14008679号