文本分词并统计出现次数最高的几个词Python

本文介绍了如何使用Python进行文本数据分析的词频统计。通过读取文本文件,进行分词、去除停用词,最终找出出现次数最多的N个词。
摘要由CSDN通过智能技术生成

一、问题描述

在做文本数据分析时,经常遇到需要做词频分析,而做词频分析又经常需要统计出现次数最高的几个词,下面代码给出了基于Python的文本数据统计,基本流程为:首先读取一个文本文件,之后进行分词,再去除停用词,最后统计出现次数最多的N个词。

二、Python代码

import jieba
from collections import Counter
############################################
# 功能:获取文本文件内容
# 输入参数
#       filename:待读取的文本文件名
# 返回值
#       txtConts:读取的文本内容
def GetTxtDataFromFile( filename ):
    with open( filename, mode = 'r' ) as fp:
        txtConts = fp.read()
        return txtConts
############################################
# 功能:分词,并去除分词结果中的停用词
# 输入参数
#       txtConts:原始文本
#       stopWord:停用词
# 返回值
#       cutList:去除停用词之后的分词结果
def CutWithStopWord( txtConts, stopWord ):
    cutList = []
    s
要输出给定的txt文本出现次数最多的中文人名,可以使用Python中的jieba库进行中文分词,并结合第三方库如pynlpir或Stanford NER进行中文人名识别。具体的实现步骤如下: 1. 读取文本文件,将文件中的内容存储在一个字符串变量中。 2. 使用jieba库对文本进行分词,得到一个包含所有单的列表。 3. 使用pynlpir或Stanford NER对分词结果进行中文人名识别,得到一个包含所有人名的列表。 4. 对于每个人名,将它添加到字典中,并将对应的值加1;如果字典中已经存在该人名,则将对应的值加1。 5. 完成文本文件中所有单的处理后,可以按照出现次数从大到小对人名进行排序,或者只输出出现次数最多的前几个人名。 示例代码如下: ```python import jieba import pynlpir import re # 读取文本文件,将文件中的内容存储在一个字符串变量中。 with open('text.txt', 'r', encoding='utf-8') as f: text = f.read() # 使用jieba库对文本进行分词,得到一个包含所有单的列表。 words = jieba.lcut(text, cut_all=False) # 使用pynlpir或Stanford NER对分词结果进行中文人名识别,得到一个包含所有人名的列表。 # 这里以pynlpir为例: pynlpir.open() names = pynlpir.segment(text, pos_names='all', pos_english=False) names = [i[0] for i in names if i[1] == 'person'] # 定义一个空字典,用于存储人名和对应的出现次数。 name_counts = {} # 对于每个人名,将它添加到字典中,并将对应的值加1;如果字典中已经存在该人名,则将对应的值加1。 for name in names: if name in name_counts: name_counts[name] += 1 else: name_counts[name] = 1 # 按照出现次数从大到小对人名进行排序。 sorted_name_counts = sorted(name_counts.items(), key=lambda x: x[1], reverse=True) # 输出出现次数最多的前几个人名。 for i in range(10): print(sorted_name_counts[i][0], sorted_name_counts[i][1]) ``` 需要注意的是,中文人名识别的准确率可能不太高,因此输出结果可能存在一定的误差。可以根据实际情况进行调整和改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值