一 数据的预处理
本文所有的例子我都将使用中文文本进行,所以在分析前需要对中文的文本进行一个预处理的过程(暂时只用的分词,去除停用词的部分后面介绍)
# -*- 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

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

1398

被折叠的 条评论
为什么被折叠?



