商务服务
基于yake的中文关键词提取试验
2024-10-31 23:53

前言

基于yake的中文关键词提取试验

之前看了云朵dalao的一篇关于关键词提取的文章,其中介绍的 Yake 模型采用了大写词、词位置、全文词频、上下文关系、句间词频等 5 个指标,计算候选词得分。感觉设计上较直观、易解释,但原 yake 库不支持中文,于是笔者便抄公式劣改了一番。

原 yake 库的核心公式不多赘述,可浏览原文了解。由于中文没有像英文单词大写这样的特征,笔者只采用了后 4 个指标,我们来逐个实现一下。

中文文本中也可能含有英语单词,可以先准备好两份停用词列表,读入成集合,这样在过滤停用词时可以大幅提高效率。可先行过滤掉数字,以及单个字的分词。

再准备好唯一词,即候选词列表,以便对每个候选词进行独立评分。

依照越靠前的句子越重要的理念,词出现的位置也体现其重要程度。原 yake 库设计的是分析候选词所在的句子,用该句子在全文中的位置中位数来计算。笔者考虑既可以用,也可以用在全文中的位置。也就是说 可以传入分词列表(前文的 ,也可以传入分句列表(见下文)。之后获取单个候选词在分词或分句列表中出现的所有位置,再计算位置中位数。在计算 T_pos 指标时,用的是二次 log 对数做归一化,为避免开头的词必然成为关键词的情形,将全文词位置(索引)从 1 开始计算。

绘制 的图像,可见词位置越靠前,T_pos 分越低(Yake 模型中候选词最终得分越低,则越重要,T_pos 作为分子)。

在这里插入图片描述

词频是最直观的指标,出现越多的词越重要,TF_norm 作为 Yake 模型分母。可先用字典记录候选词的词频,再计算均值、标准差、最值等。原 yake 库采用词频与均值、方差之和的比值,作为归一化的 TF_norm 得分结果,笔者增加了经典的 max-min 归一化做对比。

候选词的前后文中出现越多不同的词,其重要程度越低,T_Rel 作为各指标的调和项。笔者以 10 为窗口大小计算候选词向左(前文)和向右(后文)共现的唯一词的个数。

进而计算候选词的 T_Rel 指标。

句间词频指的是包含候选词的句子数量,T_sentence 作为 Yake 模型的分母,以候选句数量和句子总数的比值作为该指标得分结果。可以按中文常见标点符号作为句子分割标志,得到分句列表,再统计候选句数量。

重要性 S_t 以 T_pos 为分子,TF_norm、T_sentence 为分母,T_Rel 调和计算, 为原 Yake 模型中的大写指标的替代,笔者设置为 0 或 1 进行效果比较。最终 S_t 结果越小,表示候选词越重要。
在这里插入图片描述

笔者将算分流程封装成 ,包含多个可配置项,见注释。

该函数返回一个 Dataframe 形式的评分表,按候选词原始位置排序,见下表。
|word |fre  |t_pos |tf_norm |t_rel|t_sentence| s_t|
	|--|--|--|--|--|--|--|
	|候选词A  |词频绝对值  |指标值  |指标值  |指标值  |指标值  |总分
	|候选词B  |...  |...  |...  |...  |...  |...

增加一个取词器,传入评分表,默认返回 10 个关键词,按总分 S_t 升序。

对每个文本都试验一下 8 种参数组合的提取效果,并与纯词频排名得到的高频词做对比。

短文本用例,摘自云朵君原文部分

它是一种轻量级、无监督的自动关键词提取方法,它依赖于从单个文档中提取的统计文本特征来识别文本中最相关的关键词。该方法不需要针对特定的文档集进行训练,也不依赖于字典、文本大小、领域或语言。Yake 定义了一组五个特征来捕捉关键词特征,这些特征被启发式地组合起来,为每个关键词分配一个分数。分数越低,关键字越重要。

输出

0_s_yake [‘轻量级’, ‘监督’, ‘自动’, ‘分数’, ‘提取’, ‘越低’, ‘关键字’, ‘分配’, ‘统计’, ‘起来’]
0_s_mm [‘分数’, ‘提取’, ‘轻量级’, ‘监督’, ‘自动’, ‘越低’, ‘关键字’, ‘特征’, ‘文本’, ‘关键词’]
0_w_yake [‘轻量级’, ‘监督’, ‘自动’, ‘分数’, ‘越低’, ‘关键字’, ‘提取’, ‘分配’, ‘起来’, ‘统计’]
0_w_mm [‘分数’, ‘轻量级’, ‘提取’, ‘监督’, ‘自动’, ‘越低’, ‘关键字’, ‘特征’, ‘文本’, ‘分配’]
1_s_yake [‘轻量级’, ‘监督’, ‘自动’, ‘提取’, ‘越低’, ‘统计’, ‘关键字’, ‘分数’, ‘识别’, ‘相关’]
1_s_mm [‘轻量级’, ‘监督’, ‘自动’, ‘提取’, ‘统计’, ‘越低’, ‘关键字’, ‘识别’, ‘相关’, ‘分数’]
1_w_yake [‘轻量级’, ‘监督’, ‘自动’, ‘越低’, ‘关键字’, ‘分数’, ‘分配’, ‘提取’, ‘统计’, ‘起来’]
1_w_mm [‘轻量级’, ‘监督’, ‘自动’, ‘越低’, ‘关键字’, ‘分数’, ‘分配’, ‘提取’, ‘统计’, ‘起来’]
hot_words [‘特征’, ‘关键词’, ‘文本’, ‘提取’, ‘依赖于’, ‘文档’, ‘分数’, ‘组合’, ‘定义’, ‘五个’]

再以云朵君的原文全文做测试,补充值为 1 时,核心主题和作者都提取出来了,莫非效果不错?其实是因为这两个词都出现在全文开头,且其上下文中包含除停用词外的词极少,虽然词频指标不佳,但仍被提升了重要性。输出如下

0_s_yake [‘自然语言’, ‘分句’, ‘显式’, ‘NLP’, ‘TFIDF’, ‘word’, ‘分值’, ‘Python’, ‘list’, ‘场景’]
0_s_mm [‘word’, ‘en’, ‘关键’, ‘分句’, ‘显式’, ‘keyword’, ‘分值’, ‘Python’, ‘Keyword’, ‘特征’]
0_w_yake [‘自然语言’, ‘分句’, ‘word’, ‘显式’, ‘分值’, ‘list’, ‘TFIDF’, ‘multi’, ‘NLP’, ‘数组’]
0_w_mm [‘en’, ‘word’, ‘关键’, ‘分句’, ‘显式’, ‘keyword’, ‘分值’, ‘BERT’, ‘Keyword’, ‘keybert’]
1_s_yake [‘自然语言’, ‘云朵’, ‘场景’, ‘NLP’, ‘用于’, ‘语料库’, ‘加权’, ‘任务’, ‘语言’, ‘缺点’]
1_s_mm [‘自然语言’, ‘云朵’, ‘场景’, ‘用于’, ‘加权’, ‘语料库’, ‘NLP’, ‘任务’, ‘语言’, ‘缺点’]
1_w_yake [‘自然语言’, ‘云朵’, ‘场景’, ‘任务’, ‘语料库’, ‘en’, ‘加权’, ‘检验’, ‘检查’, ‘缺点’]
1_w_mm [‘自然语言’, ‘云朵’, ‘场景’, ‘任务’, ‘语料库’, ‘加权’, ‘en’, ‘检验’, ‘缺点’, ‘检查’]
hot_words [‘单词’, ‘关键字’, ‘文本’, ‘关键词’, ‘提取’, ‘keywords’, ‘短语’, ‘text’, ‘候选’, ‘文档’]
作者指定关键词:关键字提取、关键短语提取、Python、NLP、TextRank、Rake、BERT

以朱自清的《背影》做测试,不尽如人意。输出如下

0_s_yake [‘二年’, ‘忘记’, ‘冬天’, ‘差使’, ‘交卸’, ‘一半’, ‘祸不单行’, ‘相见’, ‘行李’, ‘再能’]
0_s_mm [‘一半’, ‘丧事’, ‘相见’, ‘行李’, ‘惦记着’, ‘徐州’, ‘南京’, ‘橘子’, ‘祖母’, ‘茶房’]
0_w_yake [‘二年’, ‘忘记’, ‘冬天’, ‘一半’, ‘相见’, ‘再能’, ‘行李’, ‘差使’, ‘交卸’, ‘不知’]
0_w_mm [‘一半’, ‘相见’, ‘丧事’, ‘行李’, ‘惦记着’, ‘橘子’, ‘南京’, ‘徐州’, ‘黑布’, ‘茶房’]
1_s_yake [‘二年’, ‘忘记’, ‘冬天’, ‘差使’, ‘交卸’, ‘祸不单行’, ‘奔丧’, ‘打算’, ‘跟着’, ‘满院’]
1_s_mm [‘二年’, ‘忘记’, ‘冬天’, ‘差使’, ‘交卸’, ‘祸不单行’, ‘跟着’, ‘打算’, ‘奔丧’, ‘满院’]
1_w_yake [‘二年’, ‘忘记’, ‘冬天’, ‘差使’, ‘交卸’, ‘祸不单行’, ‘打算’, ‘跟着’, ‘再能’, ‘奔丧’]
1_w_mm [‘二年’, ‘忘记’, ‘冬天’, ‘差使’, ‘交卸’, ‘祸不单行’, ‘打算’, ‘跟着’, ‘奔丧’, ‘满院’]
hot_words [‘父亲’, ‘看见’, ‘橘子’, ‘铁道’, ‘背影’, ‘茶房’, ‘终于’, ‘北京’, ‘一日’, ‘丧事’]

由此可发现,词位置指标的影响太大,文本开头的词若其词频小,意味着没有与其他词共现的机会,将导致其上下文关系指标失衡,从而使整体得分偏低,重要性异常高。如此对长文本的开头便有要求,如果没有概述类的描述文本,将会使第一个段落中靠前的词成为全篇关键词。并且,对散文的适用性不高。

用更长的文本试试,以笔者毕业论文做测试,将标题下的学院、姓名、摘要提取了,显然效果很差,还不如高频词,当然,也受停用词不完善的影响。输出如下

0_s_yake [‘工程学院’, ‘姓名’, ‘摘要’, ‘形状’, ‘水盆’, ‘key’, ‘导航页’, ‘信号’, ‘窗体’, ‘诊断’]
0_s_mm [‘形状’, ‘水盆’, ‘key’, ‘导航页’, ‘信号’, ‘设置’, ‘窗体’, ‘程序’, ‘查找’, ‘诊断’]
0_w_yake [‘水盆’, ‘key’, ‘形状’, ‘导航页’, ‘信号’, ‘窗体’, ‘盆地’, ‘查找’, ‘孤立’, ‘QImage’]
0_w_mm [‘水盆’, ‘形状’, ‘key’, ‘导航页’, ‘信号’, ‘查找’, ‘设置’, ‘窗体’, ‘孤立’, ‘演化’]
1_s_yake [‘工程学院’, ‘姓名’, ‘摘要’, ‘各个领域’, ‘广泛’, ‘尤为重要’, ‘利于’, ‘引导’, ‘临床’, ‘疾病’]
1_s_mm [‘工程学院’, ‘姓名’, ‘摘要’, ‘各个领域’, ‘广泛’, ‘尤为重要’, ‘利于’, ‘临床’, ‘疾病’, ‘外科手术’]
1_w_yake [‘工程学院’, ‘姓名’, ‘摘要’, ‘广泛’, ‘各个领域’, ‘尤为重要’, ‘利于’, ‘引导’, ‘临床’, ‘外科手术’]
1_w_mm [‘工程学院’, ‘姓名’, ‘摘要’, ‘广泛’, ‘各个领域’, ‘尤为重要’, ‘利于’, ‘临床’, ‘外科手术’, ‘疾病’]
hot_words [‘图像’, ‘分割’, ‘算法’, ‘区域’, ‘阈值’, ‘像素’, ‘水平’, ‘灰度’, ‘实现’, ‘种子’]

分析评分表发现,T_pos 和 T_rel 的影响较大,符合前文推测。TF_norm 作为关键词指标有足够的代表性,其权重可不调整。那么优化方向就是使 T_pos 和 T_rel 更平衡。
在这里插入图片描述
首先将 T_pos 的归一化方法改成 ,减少排在前面的词的影响。
在这里插入图片描述
一个词出现次数越多,也越容易与其他词共现,词频指标无法在总分上拉回 T_Rel 值过大时造成的影响,试用唯一词数做分母缩放 DL_RL。

再测试一下,似乎改善了其中 6 种组合的效果,仍有 2 种使用 max-min 的组合有问题。

0_s_yake [‘阈值’, ‘像素’, ‘种子’, ‘水平’, ‘区域’, ‘灰度’, ‘算法’, ‘工具’, ‘分割’, ‘图像’]
0_s_mm [‘阈值’, ‘像素’, ‘种子’, ‘区域’, ‘水平’, ‘灰度’, ‘算法’, ‘分割’, ‘工具’, ‘图像’]
0_w_yake [‘阈值’, ‘像素’, ‘种子’, ‘水平’, ‘区域’, ‘灰度’, ‘算法’, ‘工具’, ‘函数’, ‘分割’]
0_w_mm [‘阈值’, ‘像素’, ‘种子’, ‘区域’, ‘水平’, ‘灰度’, ‘算法’, ‘分割’, ‘工具’, ‘图像’]
1_s_yake [‘阈值’, ‘种子’, ‘像素’, ‘工具’, ‘灰度’, ‘水平’, ‘分水岭’, ‘函数’, ‘医学’, ‘选择’]
1_s_mm [‘工程学院’, ‘摘要’, ‘姓名’, ‘广泛’, ‘各个领域’, ‘引导’, ‘临床’, ‘疾病’, ‘外科手术’, ‘重构’]
1_w_yake [‘阈值’, ‘种子’, ‘函数’, ‘像素’, ‘工具’, ‘水平’, ‘灰度’, ‘分水岭’, ‘医学’, ‘轮廓’]
1_w_mm [‘工程学院’, ‘姓名’, ‘摘要’, ‘广泛’, ‘各个领域’, ‘临床’, ‘引导’, ‘外科手术’, ‘疾病’, ‘重构’]
hot_words [‘图像’, ‘分割’, ‘算法’, ‘区域’, ‘阈值’, ‘像素’, ‘水平’, ‘灰度’, ‘实现’, ‘种子’]

对 1000 份平均 300 字的文本进行提取共用时 13 秒。

12.777400016784668

作为练习,笔者模仿 Yake 完成的 iyake_cn 模型在一定程度上实现了提取关键词的目标,它还可在全文词频归一化方式、上下文关系窗口大小、句子分割标志选取、补足分母的指标(adjust)等方面进行调参测试,并在整体计算上优化。此外,虽然 iyake_cn 比单纯的高频词提取效果要好,但停用词的维护依然是很重要的一环。
笔者已将 iyake_cn 上传至 pypi,使用即可拆箱使用(未做边界检查,或存在 BUG ,也可直接查看完整源码,最终可用参数

用例

    以上就是本篇文章【基于yake的中文关键词提取试验】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/6182.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多   
最新新闻
云南网络营销软件哪个好?权威推荐助您快速选择
在数字化时代,网络营销软件成为了许多企业实现营销目标的重要工具。然而,市面上网络营销软件琳琅满目,选择一个适合自己的并不
宫崎骏的时代结束了
在《你想活出怎样的人生》之前,宫崎骏一直是著名的退休诈骗犯。七次退休又七次复出,年过八旬,创作欲还是旺盛到令人害怕。然而
个人大数据信用查询平台哪个更准确一些?蘑菇画像个人大数据信用报告查询平台更好用
个人大数据信用查询平台哪个更准确一些?蘑菇画像个人大数据信用报告查询平台更好用,个人大数据信用查询平台市面上还是比较多的
小红书关键词热度查询!国风大潮下,品牌怎么玩出花样、玩出水平?
国风,是当下年轻人钟爱的潮流。汉服穿搭、文物手办、国潮仿妆……频频出圈。“民族的就是世界的”,国风的影响力可谓深远,一说
app推广接单发布平台哪个好?怎么领取任务赚钱?
最近几年,随着互联网的快速发展,利用网络兼职的赚钱方式也呈现越来越火,非常受大众欢迎的趋势。而且其种类也非常多:微商、社
【可打印】文学常识常考100题汇总,初中生练一练!(部编版初中语文)
关注本公众号,私信发送数字:2493,领取电子打印版文学常识1、成语“万事俱备,只欠东风”是根据《三国演义》________ (战役)
“迎旅发大会 游美丽望城”望城首届文旅短视频大赛,最高3万奖励等你来拿!
湘江水浩浩奔腾,流淌沧桑巨变。铜官窑静穆肃然,在这里诉说着望城的厚重历史,流传着“君生我未生,我生君已老”凄美爱情故事;落日
mysql导入大txt文件怎么打开_mysql怎么导入txt文件?
有时候我们在使用mysql数据库的时候,想导入txt文本文档,要怎么操作呢?下面本篇文章就来给大家介绍一下方法
寸头抖音短视频教程_人开始衰老的迹象是什么
岁月不饶人,我才50出头,可是许多衰老迹象已经越来越明显,惹得中医闺蜜笑话这样的我。1、觉得右后背和肩膀疼,出现“五十肩”
什么是网站页脚:以及最佳页脚设计示例
主体内容外,网站还包括页眉和页脚,用于帮助访问者的特定目的。由于我们认为网站页脚设计同样重要,我们整理了10个最佳免费网站
本企业新闻

点击拨打: