用 Python 分析《红楼梦》(1)
1 前言
两个月以来,我通过互联网自学了一些文本处理的知识,用自然语言处理和机器学习算法对《红楼梦》进行了一些分析。这个过程中我找到了一些有趣的发现,所以我想写一篇文章,既㲌与大家分享和讨论实验结果,也顺便做一个整理和总结。(其实虽说是两个月,但是中间停顿了一段时间,真正在做的时间大概是两周左右)
我开始做这件事情是因为之前看到了一篇挺好玩的文章,大概内容是,作者用“结巴分词”这个开源软件统计了红楼梦中各词汇的出现次数(也就是词频),然后用词频作为每个章回的特征,最终用“主成份分析”算法把每个章回映射到三维空间中,从而比较各个章回的用词有多么相似。(文章:用机器学习判定红楼梦后40回是否曹雪芹所写)作者的结论是后四十回的用词和前八十回有明显的差距。
看完文章之后,我觉得有两个小问题:首先,作者用的结巴分词里的词典是根据现代文的语料获得的(参见“结巴分词”开发者之前对网友的回复:模型的数据是如何生成的? · Issue #7 · fxsjy/jieba),而《红楼梦》的文字风格是半文半白的,这样的分词方法准确性存疑;其次,虽然作者用《三国演义》做了对比,但是依然没有有力地证明用词差异没有受到情节变化的影响。于是我决定自己做一遍实验,用无字典分词的方法来分词,并且尝试剔除情节对分析的影响,看看结果会不会有所不同。
本来开始写的时候觉得 5000 字就差不多了,结果最后成文的时候竟然达到了 1.3 万字。即使这样,我也只能解释一下算法的大
用 Python 分析《红楼梦》(1)相关推荐
- python分析红楼梦出现的虚词词频统计,python对红楼梦的每一章节进行词频统计
python对红楼梦的每一章节进行词频统计 python对红楼梦的每一章节进行词频统计 import jieba f=open("G:\\红楼梦.txt","r" ...
- python分析红楼梦出现的虚词词频统计_用Python分析红楼梦,见证贾府的兴衰
分词词频统计 什么是分词?众所周知中文是以字为单位,句子中所有的字连起来才能描述一个意思.例如我是一个学生.计算机不能很容易明白"学"."生"两个字合起来才表示 ...
- python红楼梦人物词频统计_用Python绘制红楼梦词云图,竟然发现了这个!
原标题:用Python绘制红楼梦词云图,竟然发现了这个! Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具 ...
- 用Python读红楼梦之——一、词云绘制
原文连接 Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦 ...
- python红楼梦词云_用Python读红楼梦之——二、词云美化
原文链接 咱们书接上回,讲到我们使用Python把红楼梦中的核心词汇给绘画出来了,但是,红楼梦这么唯美的书,给我们乌漆麻黑的搞了一张词云,宝宝们肯定接受不了. 我们先来找照片,这张照片不错,不过还是要 ...
- 代码实现 | LDA方法分析红楼梦各回主题
文章目录 1 数据预处理 1.1 准备工作 1.2 读入文本 1.3 分词.去停词 2 基本情况 2.1 全文词频及词云图 2.2 人物出场情况 2.3 宝玉的cp 3 LDA分析红楼梦各回的主题 3 ...
- python对红楼梦的每一章节进行词频统计
python对红楼梦的每一章节进行词频统计 import jieba f=open("G:\\红楼梦.txt","r",encoding="utf-8 ...
- 用Python读红楼梦之——二、词云美化
原文连接 咱们书接上回,讲到我们使用Python把红楼梦中的核心词汇给绘画出来了,但是,红楼梦这么唯美的书,给我们乌漆麻黑的搞了一张词云,宝宝们肯定接受不了. 我们先来找照片,这张照片不错,不过还是要 ...
- Gephi简易学习[六]———— 拓展分析红楼梦数据
拓展分析:我们需要在下面操作流程某一步进行改动,然后看看对结果有什么影响 操作流程 统计分析→外观→布局→过滤 Gephi简易学习[五]---- 分析红楼梦数据,了解Gephi操作流程中的 最终结果 ...
- python红楼梦人物统计_Python分析红楼梦,宝玉和十二钗的人物关系
红楼梦出场人物很多,人物关系极其复杂,这次我们用Python来分析主人公贾宝玉和他的姐妹们,金陵十二钗之间的关系,做一个简要的分析. 出场率 由于我们只统计宝玉和十二钗(正册)这些人物,因此我们需要实 ...
最新文章
- OpenCV+python:ROI与泛洪填充
- linux中使用scp远程拷贝文件及文件夹
- .NET Core竟然无法在Mac下进行build
- 如何保护自己的android app
- SQL四种语言:DDL,DML,DCL,TCL
- 其他系统 对外接口设计_领导:项目有个接口要对外开放,小张你来设计一下?...
- 【转载】SAP参数文件简介
- linux关路由器,安全关闭 Linux 的方式
- Netweaver和Windows,Ubuntu的数据共享
- 树莓派使用STEP2:设置网络
- android检查可用网络的代码
- 2021年6月Python小屋编程比赛获奖名单
- oracle 数据库由Linux平台向Windows平台迁移
- Atitit ati擅长领域总结 目录 1.1. 要点::文化 教育 祭祀(spec ,bp ??)	2 1.2. 项目提取共同特点》》产品》》内部产品+tool》》sdk》》spec》》准则
- Android中添加手心默认输入法,并能卸载
- 正斜杠,又称左斜杠,符号是/;反斜杠,也称右斜杠,符号是\。
- 华为hcip认证考试内容是什么?hcip认证有哪些方向
- 几种能让Mac“飞”起来的系统空间清理方法
- ERROR: Could not build wheels for mujoco-py which use PEP 517 and cannot be installed directly
- 数值微分25 - Poisson 泊松方程(一维、二维):已知一些自定义的二阶导数点,得到一条曲线,即原方程平滑地通过它们)