python笑傲江湖统计字数_基於Python的tf-idf算法实现:以《笑傲江湖》为例

news/2024/11/28 11:54:01/

连结Jasonnor/tf-idf-python​github.com

简介

tf-idf(term frequency-inverse document frequency)是一种用於信息检索与文字探勘的常用加权技术,为一种统计方法,评估字词对於「文件集合」或「语料库中的一份文件」的重要程度。详细方法和公式可参见Wikipedia,不再赘述。Figure 1: 输入「笑傲江湖」文件集合,每份文件为小说中的一个章回,输出每章前 K 高的字词和其权重

本项目为实作 tf-idf ,输入给定「一组有特定集合关系的文件」(例如某本小说),输出为每份文件的 tf-idf 权重值结果,具体为显示前 k 高的「字词」和其权重值,如 Figure 1 所示。另外也可以输入某个字词,输出该字词在所有文件中的权重值。

因为中文无法像英文可以藉由空白来区隔字词,我们采用了 jieba 结巴中文分词,将文件集合先进行分词获得语料库,之後使用 tf-idf 演算法取得字词加权值。

预设测试资料位於 data 资料夹底下,每组文件以 01 ~ 99.txt 格式命名,并放置到各别所属集合的资料夹,例如 data/笑傲江湖/01.txt 。测试资料包含笑傲江湖丶创世纪丶出埃及记。

jieba 其实也内建了「基於 TF-IDF 算法的关键词抽取」,不过根据它的文件和 Source Code 所述, jieba 其实只读取一个文件来计算TF,而IDF部分则是读取他们自定的语料库,因此结果不准确(不是基於相关文件集合来计算逆频率)。具体可以试试目录下的src/tf-idf-jieba.py,我写了简单的 jieba 版本 Demo。

预览简易GUI「笑傲江湖」资料集的各章字词权重列表,可以看到各章节的重要关键字排名字词「任我行」在各章节的权重排名,可以看到他在第28章出场最多,而数值为0的部分就能得知他没有出现

結論

tf-idf 这个统计方法可以应用在许多场合,处理小说只是其中一种。不过 tf-idf 尽管简单有效,却存在部分重大缺陷。以我个人发现的例子来说,笑傲江湖资料集里每章基本上都一定会出现主角的名字「令狐冲」这个字词,然而对 tf-idf 来说,每章都出现的东西代表它是常用字词,逆频率的存在使「令狐冲」的权重反而变为 0,这真是很讽刺的结果。

可以见得 idf 的简单架构不能有效反映常见字词和重要字词的比重,精确度并不是很高。另外位置资讯也是其缺陷一环,不过在小说中这种缺点并不明显,因此不多做讨论。


http://www.ppmy.cn/news/551158.html

相关文章

笑傲江湖时间线

1412年,林远图出生; 1422年,风清扬出生; 1440年,华山派精英岳肃、蔡子峰访问泉州少林寺游学,偷看了武学秘籍; 1442年,红叶禅师把《葵花宝典》烧毁,指派弟子渡元上华山…

力扣动态规划专题(五)子序列问题 不连续子序列与连续子序列 步骤及C++实现

文章目录 300.最长递增子序列674.最长连续递增子序列动态规划贪心算法 718. 最长重复子数组二维dp数组一维dp数组 1143.最长公共子序列1035.不相交的线53. 最大子序和动态规划贪心算法 300.最长递增子序列 步骤 确定dp数组以及下标的含义 dp[i]:i之前(包…

烟雨江湖小米鸿蒙,烟雨江湖小米时装怎么拿? 小米衣服获取方法详解[多图]

烟雨江湖小米衣服是小米渠道服的专属奖励哦,虽然外表看起来朴朴素素的,但是免费奖励谁都喜欢拿,下面手游汇大大就带来详细内容,快来看看吧~ 烟雨江湖小米衣服获取方法 烟雨江湖小米衣服怎么得? 小米上线邮箱领。 小米专…

OSPF三部曲(之)江湖任我行-OSPF的多域配置

一、为什么要划分OSPF多区域,生成OSPF多区域的原因? 1、改善网络的可扩展性。 2、快速收敛。 3、取得上述两个目标的关键是把网络分成更小的区。 二、OSPF路由器的有哪几种类型? 1、骨干路由器:area0区域中的内部路由器。 2、内部…

Linux 远程控制服务(SSH和Telnet)

一、SSH服务 服务器(IP:192.168.10.91) 配置sshd服务 两种验证方式: 1.基于口令的验证—用账户和密码来验证登录 2.基于密钥的验证—需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中…

家庭宽带服务器有什么作用,服务器用的宽带和家用宽带有什么区别?

原标题:服务器用的宽带和家用宽带有什么区别? 最近,有用户咨询“服务器用的宽带和家用宽带有什么区别?”北京宽带通就在网上搜集了相关资料,来回答这个问题,有不全面的欢迎各位粉丝留言补充。 一般服务器带…

光猫是什么?光纤猫的工作原理及应用范围介绍!

光猫就是“光modem”,是指将光以太信号转换成其它协议信号的收发设备,也是起着调制解调的作用。光猫也称为单端口光端机,该设备作为本地网的中继传输设备,适用于基站的光纤终端传输设备以及租用线路设备。而对于多口的光端机一般会…

什么叫单模光纤_单模光纤和多模光纤的区别是什么

单模光纤和多模光纤有什么区别呢? 折射率的不同:单模光纤多采用阶跃折射率分布。多模光纤可以采用阶跃折射率分布,也可以采用渐变折射率分布;因此,石英光纤大体上也可以采用多模阶跃折射率光纤、多模渐变折射率光纤和单…