向量空间模型VSM—特征抽取算法—TF-IDF

原文作者:lucky小东西

原文地址:基于tf-idf的小说主题特征抽取算​法

1.主题特征抽取做什么

在当前个性化推荐大行其道的时候,那就不得不提用户画像。用户画像的主要工作内容就是将用户标签化,对于我们现有的数据来说,用户本身的固有属性很难获取到,或者说即使获取到了,也是不够准确的。那我们只能从“用户到底看了啥”这个角度,尝试去描述一个用户了。那么,我们想要知道一个用户“看了啥”,那么我们首先需要确定“他看的书到底是啥”。换言之,我们需要知道他读的小说是什么小说,所以,我们先得清楚文章的主题,我们得清楚小说的标签。小说的标签准了,那么通过用户对标签的行为,那么,试想一下,用户的标签还不容易吗?所以,与天猫、京东类似的电商不一样(他们的物品已经高度分类以及标签化,并且用户数据详细而准确),以内容为王的技术社区想要做好用户画像,那么,物品画像的构建是重中之重。而对于物品画像的构建,标签系统又是重中之重。对于标签系统的建立,那么,自然少不了文本主题特征的抽取。

2.TF-IDF

2.1 TF-IDF模型介绍

一个容易想到的思路,就是找到出现次数最多的词。如果某个词很重要,它应该在这篇文章中多次出现。于是,我们进行"词频"(Term Frequency,缩写为TF)统计。以我们的小说为例,出现次数最多的词是----"的"、"是"、"在"----这一类最常用的词。它们叫做"停用词"(stop words),这类词对我们无用,需要过滤掉停用词。假设我们把它们都过滤掉了,只考虑剩下的有实际意义的词。这样又会遇到了另一个问题,我们可能发现"帅哥"、"美女"这类的词出现的次数也是很高,可是这类词在所有书中都有很高的出现率,所以对我们也并不是十分有用,如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的特性,正是我们所需要的关键词。

用统计学语言表达,就是在词频的基础上,要对每个词分配一个"重要性"权重。最常见的词("的"、"是"、"在")给予最小的权重,较常见的词("帅哥")给予较小的权重,较少见的词("魔幻"、"盛唐")给予较大的权重。这个权重叫做"逆文档频率"(Inverse Document Frequency,缩写为IDF),它的大小与一个词的常见程度成反比。知道了"词频"(TF)和"逆文档频率"(IDF)以后,将这两个值相乘,就得到了一个词的TF-IDF值。某个词对文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的几个词,就是这篇文章的关键词。

第一步,计算词频。

第二步,计算逆文档频率。

如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。分母之所以要加1,是为了避免分母为0(即所有文档都不包含该词)。log表示对得到的值取对数。

第三步,计算TF-IDF。

 

可以看到,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。所以,自动提取关键词的算法就很清楚了,就是计算出文档的每个词的TF-IDF值,然后按降序排列,取排在最前面的几个词

2.2 TF-IDF模型应用实例

2.2.1 关键词提取

算法核心代码如下所示:

# -*- coding: UTF-8 -*-
from jieba import analyse
# 引入TF-IDF关键词抽取接口
tfidf = analyse.extract_tags

# 原始文本
text = "杨幂、赵又廷主演古装玄幻大剧原著小说,三生三世,她和他,是否注定背负一段纠缠的姻缘?三生三世,她和他,是否终能互许一个生生世世的承诺?" \
       "那一世,大荒之中一处荒山,成就她与他的初见。桃花灼灼,枝叶蓁蓁,妖娆伤眼。" \
       "记忆可以封存,可心有时也会背叛,忘得了前世情缘,忘不了桃林十里,亦忘不了十里桃林中玄衣的少年。"
# 基于TF-IDF算法进行关键词抽取
keywords = tfidf(text)
print "keywords by tfidf:"
# 输出抽取出的关键词
for keyword in keywords:
    print keyword + "/",
三生三世十里桃花

输入:
"杨幂、赵又廷主演古装玄幻大剧原著小说,三生三世,她和他,是否注定背负一段纠缠的姻缘?三生三世,她和他,是否终能互许一个生生世世的承诺?" 
"那一世,大荒之中一处荒山,成就她与他的初见。桃花灼灼,枝叶蓁蓁,妖娆伤眼。" 
"记忆可以封存,可心有时也会背叛,忘得了前世情缘,忘不了桃林十里,亦忘不了十里桃林中玄衣的少年。"

输出:
keywords by tf-idf:
三生/ 桃林/ 忘不了/ 三世/ 十里/ 蓁蓁/ 玄幻/ 伤眼/ 生生世世/ 互许/ 赵又廷/ 大剧/ 中玄衣/ 杨幂/ 终能/ 忘得/ 情缘/ 古装/ 妖娆/ 是否/
铁拳少年

输入:
"一个元气满满的格斗少年,费尽九牛二虎之力考入东江大学,只为挑战高中时代的学长偶像,亲手击碎高中三年的格斗梦魇。当他第一脚踏进东大长空格斗社的那天起,
他才发现格斗王冠下的荆棘远远比夺得王冠要来的更有意义,枯燥的大学青春一样可以变得热血沸腾……"

输出:
keywords by tf-idf:
格斗/ 王冠/ 学长/ 高中时代/ 社的/ 东大/ 大学/ 更有意义/ 九牛二虎之力/ 击碎/ 费尽/ 梦魇/ 长空/ 枯燥/ 热血沸腾/ 荆棘/ 东江/ 偶像/ 元气/ 满满的/
破产名媛约不约

输入:
她是落魄名媛季晚,亦是极具天赋的珠宝设计师;他是名门之后郁东尧,出身显赫。传闻他心狠手毒,亲手设计车祸,害死弟弟,又娶了弟弟的心上人季晚为妻。
四年前,一个事故、一场婚礼,将他与她的命运牢牢捆绑,她走不出去,他不曾归来。
四年后,当亡者与旧爱同时回归,掀起重重波澜,丑闻、抄袭门、连环车...

输出:
keywords by tf-idf:
弟弟/ 心狠手毒/ 四年/ 郁东尧/ 亡者/ 心上人/ 名媛/ 抄袭/ 名门/ 落魄/ 车祸/ 害死/ 连环/ 丑闻/ 波澜/ 天赋/ 捆绑/ 显赫/ 设计师/
大唐奇案集

输入:
盛世锦绣,繁华大唐,一场无头连环女尸案掀起腥风血雨。
当女扮男装的捕头沈锦文,遇见身负重重谜团的宁修睿,她的世界便开始天翻地覆。
一桩桩奇案接踵而来,诡异惊悚的四方宫灯案,骇人听闻的密室灭门案,神秘离奇的南疆将士怀胎案,西域古国龟兹国进贡的九龙雕像玉雕杀人案

输出:
keywords by tf-idf:
奇案/ 腥风血雨/ 捕头/ 灭门案/ 宁修/ 沈锦文/ 惊悚/ 女扮男装/ 杀人案/ 身负/ 怀胎/ 接踵而来/ 谜团/ 天翻地覆/ 骇人听闻/ 宫灯/ 古国/ 玉雕/ 连环/ 锦绣/
至高无上

输入:
命运是一道痛苦枷锁,芸芸众生,无人能挣脱它的锁链。三千年的孤独等待,却只换来与她一世轮回的天人永隔。
命运曰,不能改变世界,就会被世界改变,这就是命。因这句话,这一世他再次收齐遗留在上古之神石,扭曲规则,从此改变的是世界,不是他。

输出:
keywords by tf-idf:
命运/ 一世/ 轮回/ 世界/ 收齐/ 天人永隔/ 神石/ 芸芸众生/ 三千年/ 枷锁/ 锁链/ 遗留/ 上古/ 换来/挣脱/ 扭曲/ 孤独/ 无人/ 这句/

结果说明:

1.由于用的jieba分词自带的语料库,所以对于小说语料不是很完整,过滤掉停用词,常见词等效果还能够提升,这个可以通过后期训练进行补充。

2.输入数据仅为简介,所有可能有一些词可能拆分出来的并不是理想,如果实操需要采用小说内容。

即使这样,从结果中还是可以看出重点词语大多数都被提取出来了,通过抽取的关键词结合人工提供的关键词,可以对小说进行更加准确的特征描述。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值