python中文分词+词频统计的实现步骤

 更新时间:2022年06月11日 15:05:33   作者:爱吃糖的月妖妖  
词频统计就是输入一段句子或者一篇文章,然后统计句子中每个单词出现的次数,下面这篇文章主要给大家介绍了关于python中文分词+词频统计的相关资料,需要的朋友可以参考下

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

本文记录了一下Python在文本处理时的一些过程+代码

一、文本导入

我准备了一个名为abstract.txt的文本文件

接着是在网上下载了stopword.txt(用于结巴分词时的停用词)

有一些是自己觉得没有用加上去的 

另外建立了自己的词典extraDict.txt

准备工作做好了,就来看看怎么使用吧!

二、使用步骤

1.引入库

代码如下:

import jieba
from jieba.analyse import extract_tags
from sklearn.feature_extraction.text import TfidfVectorizer

2.读入数据

代码如下:

jieba.load_userdict('extraDict.txt')  # 导入自己建立词典

3.取出停用词表

def stopwordlist():
    stopwords = [line.strip() for line in open('chinesestopwords.txt', encoding='UTF-8').readlines()]
    # ---停用词补充,视具体情况而定---
    i = 0
    for i in range(19):
        stopwords.append(str(10 + i))
    # ----------------------
 
    return stopwords

4.分词并去停用词(此时可以直接利用python原有的函数进行词频统计)

def seg_word(line):
    # seg=jieba.cut_for_search(line.strip())
    seg = jieba.cut(line.strip())
    temp = ""
    counts = {}
    wordstop = stopwordlist()
    for word in seg:
        if word not in wordstop:
            if word != ' ':
                temp += word
                temp += '\n'
                counts[word] = counts.get(word, 0) + 1#统计每个词出现的次数
    return  temp #显示分词结果
    #return str(sorted(counts.items(), key=lambda x: x[1], reverse=True)[:20])  # 统计出现前二十最多的词及次数

5. 输出分词并去停用词的有用的词到txt

def output(inputfilename, outputfilename):
    inputfile = open(inputfilename, encoding='UTF-8', mode='r')
    outputfile = open(outputfilename, encoding='UTF-8', mode='w')
    for line in inputfile.readlines():
        line_seg = seg_word(line)
        outputfile.write(line_seg)
    inputfile.close()
    outputfile.close()
    return outputfile

6.函数调用

if __name__ == '__main__':
    print("__name__", __name__)
    inputfilename = 'abstract.txt'
    outputfilename = 'a1.txt'
    output(inputfilename, outputfilename)

7.结果  

附:输入一段话,统计每个字母出现的次数

先来讲一下思路:

例如给出下面这样一句话

Love is more than a word
it says so much.
When I see these four letters,
I almost feel your touch.
This is only happened since
I fell in love with you.
Why this word does this,
I haven’t got a clue.

那么想要统计里面每一个单词出现的次数,思路很简单,遍历一遍这个字符串,再定义一个空字典count_dict,看每一个单词在这个用于统计的空字典count_dict中的key中存在否,不存在则将这个单词当做count_dict的键加入字典内,然后值就为1,若这个单词在count_dict里面已经存在,那就将它对应的键的值+1就行

下面来看代码:

#定义字符串
sentences = """           # 字符串很长时用三个引号
Love is more than a word
it says so much.
When I see these four letters,
I almost feel your touch.
This is only happened since
I fell in love with you.
Why this word does this,
I haven't got a clue.
"""
#具体实现
#  将句子里面的逗号去掉,去掉多种符号时请用循环,这里我就这样吧
sentences=sentences.replace(',','')   
sentences=sentences.replace('.','')   #  将句子里面的.去掉
sentences = sentences.split()         # 将句子分开为单个的单词,分开后产生的是一个列表sentences
# print(sentences)
count_dict = {}
for sentence in sentences:
    if sentence not in count_dict:    # 判断是否不在统计的字典中
        count_dict[sentence] = 1
    else:                              # 判断是否不在统计的字典中
        count_dict[sentence] += 1
for key,value in count_dict.items():
    print(f"{key}出现了{value}次")

输出结果是这样:

总结

以上就是今天要讲的内容,本文仅仅简单介绍了python的中文分词及词频统计!

到此这篇关于python中文分词+词频统计的实现步骤的文章就介绍到这了,更多相关python中文分词 词频统计内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python3中@dataclass的实现示例

    python3中@dataclass的实现示例

    @dataclass 是 Python 3.7 引入的一个装饰器,用于方便地定义符合数据类协议的类,本文主要介绍了python3中@dataclass的实现示例,感兴趣的可以了解一下
    2024-02-02
  • Python机器学习库Scikit-learn实战教程

    Python机器学习库Scikit-learn实战教程

    文章介绍了Python在机器学习领域的应用,重点介绍了Scikit-learn库的使用方法,并通过实际案例展示了如何使用Scikit-learn进行分类、回归、聚类和文本挖掘等任务,同时,文章还讨论了特征工程、超参数调整、避免过拟合和交叉验证等进阶技巧
    2025-01-01
  • Python装饰器结合递归原理解析

    Python装饰器结合递归原理解析

    这篇文章主要介绍了Python装饰器结合递归原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 使用Python抓取豆瓣影评数据的方法

    使用Python抓取豆瓣影评数据的方法

    今天小编就为大家分享一篇关于使用Python抓取豆瓣影评数据的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Python 中 and, or, &, |, ^ 的使用小结

    Python 中 and, or, &, |, ^ 

    这篇文章主要介绍了Python 中 and, or, &, |, ^ 的使用小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • 通过OpenCV实现对指定颜色的物体追踪

    通过OpenCV实现对指定颜色的物体追踪

    这篇文章主要介绍的是通过OpenCV实现对特定颜色的物体追踪,文中实验用的是绿萝的树叶。本文的示例代码讲解详细,对学习OPenCV有一定的帮助,感兴趣的小伙伴可以了解一下
    2021-12-12
  • python程序中断然后接着中断代码继续运行问题

    python程序中断然后接着中断代码继续运行问题

    这篇文章主要介绍了python程序中断然后接着中断代码继续运行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python多线程Threading、子线程与守护线程实例详解

    Python多线程Threading、子线程与守护线程实例详解

    这篇文章主要介绍了Python多线程Threading、子线程与守护线程,结合实例形式详细分析了Python多线程Threading、子线程与守护线程相关概念、原理、用法与操作注意事项,需要的朋友可以参考下
    2020-03-03
  • Python绘制1000响大地红鞭炮动态效果

    Python绘制1000响大地红鞭炮动态效果

    俗话说得好,这所谓放鞭炮就是来压邪祟,除恶的,但是近几年来都不让放炮了,这篇文章主要介绍了Python来绘制1000响大地红鞭炮动态效果
    2023-01-01
  • pytorch1.60 torch.nn在pycharm中无法自动智能提示的解决

    pytorch1.60 torch.nn在pycharm中无法自动智能提示的解决

    这篇文章主要介绍了pytorch1.60 torch.nn在pycharm中无法自动智能提示的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论