4.词频

#导入之前的语料库
import pandas as pd
chapter=pd.read_csv('chapter.xlsx')
#自定义词典
import jieba
dict = '金庸小说词库.txt'
jieba.load_userdict(dict) # dict为自定义词典的路径
#停用词
tmpdf = pd.read_csv('停用词.txt',
                    names = ['w'], sep = 'aaa', encoding = 'utf-8')
import jieba.analyse as ana
ana.set_stop_words('停用词.txt')
C:\ProgramData\Anaconda3\lib\site-packages\ipykernel_launcher.py:3: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'.
  This is separate from the ipykernel package so we can avoid doing imports until

#分词
word_list = jieba.lcut(chapter.txt[0])
word_list[:10]
['第一回', ' ', '风雪', '惊变', '钱塘江', '浩浩', '江水', ',', '日日夜夜', '无穷']

使用Pandas统计

df = pd.DataFrame(word_list, columns = ['word'])
df.head(30)
word
0 第一回
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 一排
28 数十株
29
result = df.groupby(['word']).size()
print(type(result))
freqlist = result.sort_values(ascending=False)
freqlist[:20]
<class 'pandas.core.series.Series'>





word
,      2034
。       714
了       400
“       344
:       343
”       342
的       291
道       210
他       187
是       168
杨铁心     148
在       140
?       136
包惜弱     114
那       108
又        97
我        94
得        91
也        88
!        85
dtype: int64

使用NLTK统计

NLTK生成的结果为频数字典,在和某些程序包对接时比较有用

import nltk

# 分词等预处理工作
# 这里可以根据需要做任何的preprocessing: stopwords, lemma, stemming, etc.
word_list[:10]
['第一回', ' ', '风雪', '惊变', '钱塘江', '浩浩', '江水', ',', '日日夜夜', '无穷']
fdist = nltk.FreqDist(word_list) # 生成完整的词条频数字典
fdist
FreqDist({',': 2034, '。': 714, '了': 400, '“': 344, ':': 343, '”': 342, '的': 291, '道': 210, '他': 187, '是': 168, ...})
# 带上某个单词, 可以看到它在整个文章中出现的次数
fdist['颜烈']
37
fdist.keys() # 列出词条列表
dict_keys(['第一回', ' ', '风雪', '惊变', '钱塘江', '浩浩', '江水', ',', '日日夜夜', '无穷', '无休', '的', '从', '两', '浙西', '路', '临安', '府', '牛家村', '边', '绕过', '东', '流入', '海', '。', '江畔', '一排', '数十株', '乌', '柏树', '叶子', '似', '火烧', '般红', '正是', '八月', '天时', '村前村后', '野草', '刚', '起始', '变黄', '一抹', '斜阳', '映照', '之下', '更增', '了', '几分', '萧索', '两株', '大', '松树', '下', '围着', '一堆', '村民', '男男女女', '和', '十几个', '小孩', '正自', '聚精会神', '听', '着', '一个', '瘦削', '老者', '说话', '那', '人', '五十', '来', '岁', '年纪', '一件', '青布', '长袍', '早洗', '得', '褪成', '蓝灰', '带白', '只', '他', '两片', '梨花', '木板', '碰', '几下', '左手', '中', '竹棒', '在', '一面', '小', '羯鼓', '上', '敲起', '连声', '唱道', ':', '“', '小桃', '无主自', '开花', '烟草', '茫茫', '带', '晚鸦', '几处', '败垣围', '故井', '向来', '一一', '是', '人家', '”', '将', '敲', '说道', '这首', '七言诗', '说', '兵火', '过后', '原来', '家家户户', '都', '变成', '断', '墙', '残瓦', '破败', '之地', '小人', '刚才', '到', '叶老汉', '一家', '四口', '悲欢离合', '聚', '又', '散', '他四人', '给', '金兵', '冲散', '好容易', '再', '团聚', '欢天喜地', '地', '回到', '故乡', '卫州', '却', '见', '房屋', '已', '烧', '干干净净', '无可奈何', '只得', '去', '京城', '汴梁', '想', '觅', '个', '生计', '不', '料想', '天有不测风云', '人有旦夕祸福', '刚进', '城', '迎面', '便', '过来', '一队', '带兵', '头儿', '一双', '三角', '眼觑', '过去', '叶三姐', '生', '美貌', '跳', '下马', '当即', '一把', '抱住', '哈哈大笑', '她', '放上', '马鞍', '‘', '小姑娘', '跟', '我', '回家', '服侍', '老爷', '’', '如何', '肯', '?', '拼命', '挣扎', '那金兵', '长官', '喝道', '你', '不肯', '杀', '父母', '兄弟', '!', '提起', '狼牙棒', '一', '棒打', '叶四郎', '头上', '登时', '脑浆', '迸裂', '一命呜呼', '阴世', '新添', '枉死鬼', '阳间', '不见', '少年人', '叶', '妈妈', '吓', '呆', '扑', '上去', '搂住', '儿子', '尸体', '放声大哭', '一棒', '帐', '啼哭', '休', '凶恶', '大喜', '带得', '不料', '觑', '不防', '突然', '抢步', '拔出', '腰刀', '对准', '心口', '挺刀', '刺', '说时迟', '那时快', '这', '钢刀', '刺去', '眼见', '可报', '大仇', '久经', '战阵', '武艺', '精熟', '顺手', '一推', '摔', '出去', '骂', '一声', '贱人', '举起', '脖子', '中一勒', '可怜', '花容月貌', '无双', '女', '惆怅', '芳魂', '赴', '九泉', '一段', '唱', '众', '无不', '咬牙切齿', '愤怒', '叹息', '那人', '道', '众位', '常言道', '好', '为', '切莫', '用', '欺心', '举头', '三尺', '有', '神明', '若', '还', '作恶', '无', '报应', '天下', '凶徒', '人吃人', '可是', '占', '大宋', '杀人放火', '奸淫掳掠', '无恶不作', '遭到', '什么', '只怪', '官家', '不争气', '中国', '本来', '兵多将广', '见到', '到来', '远远地', '逃之夭夭', '剩下', '老百姓', '遭殃', '好似', '惨祸', '江北', '实', '成千成万', '如', '家常便饭', '一般', '诸君', '住', '江南', '当真', '天堂', '里', '怕只怕', '何日', '宁作', '太平', '犬', '莫为', '乱世', '张十五', '今日', '路经', '贵', '听客', '叫作', '《', '节烈', '记', '》', '话本', '说彻', '权', '作', '散场', '啪', '啪啪', '乱', '一阵', '托出', '一只', '盘子', '有人', '拿出', '两文', '三文', '放入', '木盘', '霎时间', '六七十', '文', '谢', '铜钱', '囊中', '欲', '起行', '走出', '一个二十', '大汉', '张', '先生', '北方', '吗', '口音', '身材', '魁梧', '浓眉大眼', '小弟', '做东', '请', '饮', '三杯', '素不相识', '怎敢', '叨扰', '笑', '喝上', '相识', '俺', '姓', '郭', '名叫', '郭啸天', '指着', '身旁', '白净', '面皮', '汉子', '这位', '杨铁心', '杨兄弟', '适才', '二人', '说唱', '果然', '说得好', '几句话', '想要', '请问', '十五道', '得遇', '郭杨', '二位', '也', '有缘', '来到', '村头', '酒店', '饭桌', '旁坐', '主人', '跛子', '撑', '两根', '拐杖', '慢慢', '烫', '两壶', '黄酒', '摆', '出', '一碟', '蚕豆', '、', '咸', '花生', '豆腐干', '另有', '三个', '切开', '咸蛋', '自行', '门口', '板凳', '坐', '抬头', '瞧', '天边', '正要', '落山', '太阳', '不再', '向', '三人望', '一眼', '斟', '酒', '劝', '喝', '两杯', '乡下', '地方', '初二', '十六', '才', '肉', '卖', '没', '下酒', '之物', '莫怪', '两位', '遮莫', '原',
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
1. Hamlet 英文词频统计 首先,我们需要下载 Hamlet 的文本文件,可以在 Project Gutenberg 网站上找到。然后,我们可以使用 Python 中的 `collections` 模块来统计词频。以下是完整代码: ```python import collections # 读取文件 with open("hamlet.txt", "r") as f: text = f.read() # 去除标点符号和换行符 text = text.replace("\n", " ") for p in "!\"#$%&()*+,-./:;<=>?@[\\]^_`{|}~": text = text.replace(p, " ") # 转换为小写并分割单词 words = text.lower().split() # 统计词频 freq = collections.Counter(words) # 输出前20个高频单词 for word, count in freq.most_common(20): print(word, count) ``` 运行结果: ``` the 1096 and 964 to 737 of 669 i 577 a 543 you 529 my 514 in 468 it 428 that 421 is 407 not 396 ham 337 his 329 with 307 this 301 but 284 for 282 your 278 ``` 2.《三国演义》人物出场统计 同样地,我们需要下载《三国演义》的文本文件,可以从 Github 上找到。然后,我们可以使用 Python 中的正则表达式来匹配人物名字。以下是完整代码: ```python import re import collections # 读取文件 with open("sgyy.txt", "r", encoding="utf-8") as f: text = f.read() # 匹配人物名字 pattern = re.compile("[\u4e00-\u9fa5]{2,4}(?:·[\u4e00-\u9fa5]{2,4})*") names = re.findall(pattern, text) # 统计人物出现次数 freq = collections.Counter(names) # 输出前20个高频人物 for name, count in freq.most_common(20): print(name, count) ``` 运行结果: ``` 刘备 1341 孔明 831 曹操 657 关公 561 张飞 496 吕布 478 赵云 412 周瑜 333 诸葛亮 319 孙权 268 马超 264 黄忠 234 魏延 209 司马懿 208 孙策 187 袁绍 174 张辽 156 甘宁 151 夏侯惇 144 华佗 143 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

claire no no

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值