Python自然语言处理—统计词频

本文通过Python对中文文本进行自然语言处理,包括数据预处理、频率分布分析,展示了如何选择细粒度的词,并探讨了词长的分布。在预处理阶段,对文本进行分词处理;在频率分布部分,揭示了去除停用词的重要性;通过列表解析实现对词的筛选,以获取有意义的高频词;最后分析了词长分布情况,以深入理解文本特征。

一 数据的预处理

本文所有的例子我都将使用中文文本进行,所以在分析前需要对中文的文本进行一个预处理的过程(暂时只用的分词,去除停用词的部分后面介绍)

# -*- coding:utf-8 -*-
from nltk import FreqDist
import jieba
import pymssql

# 我的数据来源于数据库,用的是爬虫的小学数学题
conndb = pymssql.connect(host=".", user="**", password="****", database="JD")
cursor = conndb.cursor()
cursor.execute("SELECT TOP 2000 [题目] FROM [JD].[dbo].[题库]")
rows = cursor.fetchall()


#将200道题目中文分词后,并放到一个List中
text = []
for line in rows:
    content = list(jieba.cut(line[0]))
    for word in content:
        text.append(word)

结果如下图所示,可以看到有很多标点符号和单个无意义数字


二 频率分布

fdist1 = FreqDist(text)  # 生成词频的字典,格式(“词1”:数量,“词2”:数量...)
vocabulary1 = fdist1.keys()  # 字典的Key,就是所有的词
print(list(vocabulary1)[0:10])  # 词的前10个是什么,注意字典的Keys是乱序的所有前1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值