基于TF-IDF的新闻标签提取

1. 新闻标签

  新闻标签是一条新闻的关键字,可以由编辑上传,或者通过机器提取。新闻标签的提取主要用于推荐系统中,所以,提取的准确性影响推荐系统的有效性。同时,对于将标签展示出来的新闻网站,标签的准确性也会影响用户体验。

2. 新闻标签提取算法

  新闻首先是一段文本,新闻的标签首先是这一段文本的关键字。在文本关键字提取当中,TD-IDF是首先可以想到的算法。TF-IDF算法的优点是:简单快速,结果比较符合实际情况;缺点是,单纯以“词频”衡量一个词的重要性,不够全面,而且重要的词可能出现次数少。

直接将新闻文本利用TF-IDF出来的结果往往包含比较宽泛,不能够直接使用。将TF-IDF输出的结果集中的每个关键词添加一个标签权重。权重计算方式为 TF-IDF的权重乘标签热度权重,其中,标签热度权重可以通过爬取海量历史新闻的标签,统计标签出现次数,以标签次数作为热度的权重。
如果想要精益求精的话,可以不简单统计次数相加,而是带上时间属性,给近期时间一个较大的值,久的时间一个小的值。

3. 新闻标签提取流程

a) 统计海量新闻标签,并得到标签热度;
b)利用TF-IDF得新闻文本关键字集(取top20);
c) 将20个关键字的权重乘对应标签热度 Ti = TFIDFi * (1 + HOTi) 其中,加一是为了避免关键字不在标签字典里导致结果为0;
d) 根据计算结果重新排序,取前5个关键字;

4. 实验结果

最后简单验证了一下,利用jieba完成TF-IDF,再python计算。
验证了一条财经新闻 链接为:http://finance.caijing.com.cn/20170607/4281440.shtml
网站新闻的关键字为: 要么, 房贷, 业务, 银行
程序得到关键字为:房贷,贷款,银行,利率,流动性
效果比较:显然,程序得到的标签更为准确。

基于TF-IDF的新闻标签提取的更多相关文章

  1. 基于TF/IDF的聚类算法原理

        一.TF/IDF描述单个term与特定document的相关性TF(Term Frequency): 表示一个term与某个document的相关性. 公式为这个term在document中出 ...

  2. Elasticsearch由浅入深(十)搜索引擎:相关度评分 TF&IDF算法、doc value正排索引、解密query、fetch phrase原理、Bouncing Results问题、基于scoll技术滚动搜索大量数据

    相关度评分 TF&IDF算法 Elasticsearch的相关度评分(relevance score)算法采用的是term frequency/inverse document frequen ...

  3. TF/IDF(term frequency/inverse document frequency)

    TF/IDF(term frequency/inverse document frequency) 的概念被公认为信息检索中最重要的发明. 一. TF/IDF描述单个term与特定document的相 ...

  4. 信息检索中的TF/IDF概念与算法的解释

    https://blog.csdn.net/class_brick/article/details/79135909 概念 TF-IDF(term frequency–inverse document ...

  5. 使用solr的函数查询,并获取tf*idf值

    1. 使用函数df(field,keyword) 和idf(field,keyword). http://118.85.207.11:11100/solr/mobile/select?q={!func ...

  6. TF/IDF计算方法

    FROM:http://blog.csdn.net/pennyliang/article/details/1231028 我们已经谈过了如何自动下载网页.如何建立索引.如何衡量网页的质量(Page R ...

  7. tf–idf算法解释及其python代码实现(下)

    tf–idf算法python代码实现 这是我写的一个tf-idf的简单实现的代码,我们知道tfidf=tf*idf,所以可以分别计算tf和idf值在相乘,首先我们创建一个简单的语料库,作为例子,只有四 ...

  8. tf–idf算法解释及其python代码实现(上)

    tf–idf算法解释 tf–idf, 是term frequency–inverse document frequency的缩写,它通常用来衡量一个词对在一个语料库中对它所在的文档有多重要,常用在信息 ...

  9. 文本分类学习(三) 特征权重(TF/IDF)和特征提取

    上一篇中,主要说的就是词袋模型.回顾一下,在进行文本分类之前,我们需要把待分类文本先用词袋模型进行文本表示.首先是将训练集中的所有单词经过去停用词之后组合成一个词袋,或者叫做字典,实际上一个维度很大的 ...

随机推荐

  1. npm详解

    一.npm介绍及安装 对于npm,大家多多少少都用过,作为一门技术,我想写篇博客记录一下,一起分享,一起学习. npm,是Node Package Manager的缩写,node的模块管理器,它是随同 ...

  2. Fibonacci 数列O(logn)解法

    传统解法 提到斐波那契数列(Fibonacci Sequence),首先想到的是经典的动规(DP)算法. 时间复杂度O(n),这里空间复杂度可以优化到O(1).代码如下: int fib_n(int ...

  3. mpu6050参数获取

    MPU6050其实就是一个 I2C 器件,里面有很多寄存器(但是我们用到的只有几个),我们通过读写寄存器来操作这个芯片.所以首要问题就是 STM32 和 MPU6050 的 I2C 通信.1.配置 S ...

  4. CF #311 D. Vitaly and Cycle 加最少边形成奇圈

    题目链接:http://codeforces.com/problemset/problem/557/D 大意 给出一个未必联通的无向图(点数至少为3),问最少加多少边可以形成一个奇圈,以及这样做的方案 ...

  5. 设计模式的征途—3.抽象工厂(Abstract Factory)模式

    上一篇的工厂方法模式引入了工厂等级结构,解决了在原来简单工厂模式中工厂类职责太重的原则,但是由于工厂方法模式的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,从而增加系统开销.那么,我们应该 ...

  6. 【整理】hash算法原理及常见函数

    简介 Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值.        散列表 ...

  7. IO调度器原理介绍

    IO调度器(IO Scheduler)是操作系统用来决定块设备上IO操作提交顺序的方法.存在的目的有两个,一是提高IO吞吐量,二是降低IO响应时间.然而IO吞吐量和IO响应时间往往是矛盾的,为了尽量平 ...

  8. PHP填补数字前后的0

    PHP数字填补0 经常会遇到这样的问题: 自然数字是0,1,2,3...而我们需要的却是满足多少多少位数的数字,如:001,002. 在ID,编号,学号中我们会经常用到补全前面或者后面的空位(一般为前 ...

  9. 让div自适应浏览器窗口居中显示

    今天做 banner 时发现一个问题,就是浏览器窗口水平拉伸时 banner 图未能居中,所以网上找了些资料,自己写了个小 demo html代码: <div class="div1& ...

  10. nodejs环境的搭建(linux环境centos6.5)

    更新yum # yum update 新建用户 # adduser user设置密码 # passwd user 允许用户通过ssl远程访问 # vi /etc/ssh/sshd_config 在文末 ...