精华内容
下载资源
问答
  • TFIDF关键词提取

    2014-09-07 19:03:30
    利用java实现TFIDF提取关键词,是术语提取、推荐系统等应用的基础之一。
  • 基于java版jieba分词实现的tfidf关键词提取 文章目录基于java版jieba分词实现的tfidf关键词提取 为了改善我的个性化新闻推荐系统的基于内容相似度的推荐算法效果,我尝试找寻关键词提取效果可能优于本来使用的ansj的...

    基于java版jieba分词实现的tfidf关键词提取


    为了改善我的个性化新闻推荐系统的基于内容相似度的推荐算法效果,我尝试找寻关键词提取效果可能优于本来使用的ansj的tfidf的其它库,花了一番功夫后,发现tfidf算法本身并不复杂,但是训练tfidf的语料库可能才是性能的瓶颈,所以我找到了很有名的中文分词库jieba分词的语料库,并且找到了jieba分词的Java版本,于是fork了项目,并参照python版tfidf算法,实现了Java版本的tfidf算法,最后验证了效果一致。(PS:但是给原项目发pull request的时候没有人处理,看起来java版的项目似乎已经很长时间没有人维护了…)

    我的项目链接放到了这里,欢迎大家star和fork,也欢迎提出任何建议和pull request,也希望以后能长期维护该项目,因为我本人对于自然语言处理的相关技术也是比较感兴趣的。

    展开全文
  • TFIDF关键词提取简介

    千次阅读 2019-04-08 12:27:33
    对于若干个文章的集合,我们要提取每篇文章具有代表性的关键词,我们应该怎么做呢? 最直观也是最容易想到的方法,就是统计每个词汇在文章中出现的频率TF(term frequency),频率高的就是具有代表性的词汇。但是...

    TFIDF原理

    对于若干个文章的集合,我们要提取每篇文章具有代表性的关键词,我们应该怎么做呢?

    最直观也是最容易想到的方法,就是统计每个词汇在文章中出现的频率TF(term frequency),频率高的就是具有代表性的词汇。TF的计算方法如下:

                                                               

    另外一点,举个例子,我们有三类文章A,B,C,首先这3篇文章都有一个高频率词汇“中国”(而且是频率最高的词汇),其次,A文章第二高频词汇为“体育”,B“艺术”,C“音乐”;请问,你觉得“中国”可以作为ABC任意一片文章最具有代表性的词汇吗?明显不可以。所以,除了考虑词汇的频率之外,还需考虑词汇在其他文档当中出现的概率,我们通常认为:如果一个词汇在某篇文章中出现了,而在其他文章中没有出现,则该词汇更偏向于是该文章的关键词。我们用一下公式来衡量:

                                                    

    综合考虑以上两个关键词要素,我们可以得到TFIDF的计算公式:

                                                      

    参考文献:

    [1] tfidf - wiki

    [2] TF-IDF与余弦相似性的应用(一):自动提取关键词

    展开全文
  • NLP--关键词提取算法(收费)-学习视频教程-腾讯课堂​ke.qq.com简介中最为重要就是说了有监督算法和无监督算法的区别,为什么有监督算法不适合于关键词提取进行了特别说明。TF-IDF学习笔记:知乎视频​...

    146c68558ebe232e3084e6d5d33eb687.png
    NLP--关键词提取算法(收费)-学习视频教程-腾讯课堂ke.qq.com
    ef49325bd6e4c87bc4203b2ad75c94e0.png

    1f025df6a5111eb5e089fc4286c16b15.png

    简介中最为重要就是说了有监督算法和无监督算法的区别,为什么有监督算法不适合于关键词提取进行了特别说明。

    TF-IDF学习笔记:

    知乎视频www.zhihu.com

    f8b8c06c2cdbebf4d8fed0413c34b24d.png

    其实这张PPT核心就是底部这句话,过滤掉常见的词语,保留得要的词语。

    TextRank学习笔记:

    f3a81a53e17365a3629746636807234d.png

    这张PPT主要讲得就是底部这个公式,理解了这个公式就理解整个PPT了,说白了就是一个词I被其它词J引用合计得到一个分数除以其它词J引用除词I之外即词K的分数之和,再乘以词J本身的得分,这样就得到了词I的得分。

    3d99345eea1a8855b957f5b9e5119791.png

    这张PPT最核心就是要理解收敛,个人认为之所以能够收敛是因为现实世界中这些词的得分就是有的,多次迭代其实是个学习的过程而已,就如同HMM也是通过统计频率来得到三个概率矩阵一样。

    而窗口概念的引出使得计算成为可能。

    主题模型学习笔记:

    cb8465cbb2309be01de24f344e3497c4.png

    主题模型与TF-IDF,TextRank不同之处就是在于不是根据词语在文档中出现的次数来确定关键词。

    768cf58dd2ccdca7267b441fb8f99e2c.png

    基本思路核心在于理解P(词语|文档)是怎么来的,个人理解其实是两个矩阵相乘,把主题这一维约去了。

    主题模型核心代码讲解:

    个人认为这块的代码逻辑并不复杂,但是首先要对gensim中corpora, models这两个包的作用要明白,而这个在视频中没有多讲,需要自学相关知识,我在学习这块知识所花费了有一天时间。

    在此基础上跑通并看懂代码没有什么难度,最难的一句代码我认为就是这句了

    for k, v in sorted(sim_dic.items(), key=functools.cmp_to_key(cmp), reverse=True)[:self.keyword_num]:

    而最核心的就是 key=functools.cmp_to_key(cmp)的理解,cmp_to_key 将比较函数转换为关键字函数可以用于sorted

    TF-IDF代码学习笔记:

    学习了主题模型核心代码,再学习这块代码根本无压力,其编程思路就是TF-IDF的公式,先求TDF的值,再注TF值,然后在get_tfidf(self)中计算TF-IDF,求取关键词。

    TextRank算法代码学习笔记:

    这节课其实主要是讲解了jibea的analyse.textrank的源码,这个源码是相当复杂的,视频只讲解了7分钟,但是我根据视频进行调试跟踪却足足花了有一天的时间才学完,个人认为要搞懂TextRank算法对于看懂代码非常重要,结合前面讲的算法PPT,再来学习此代码会使学习效率大增,我开始就是走了弯路,否则也不会花一天时间来搞定这些代码。

    展开全文
  • 之前使用TFIDF做过行业关键词提取TFIDF仅从词的统计信息出发,而没有充分考虑词之间的语义信息。TextRank考虑到了相邻词的语义关系,是一种基于图排序的关键词提取算法。TextRank的提出 TextRank由Mihalcea与Tarau...

    f113aff845c77391e2c1dab5e65d8e18.png

    之前使用TFIDF做过行业关键词提取,TFIDF仅从词的统计信息出发,而没有充分考虑词之间的语义信息。TextRank考虑到了相邻词的语义关系,是一种基于图排序的关键词提取算法。

    TextRank的提出

    TextRank由Mihalcea与Tarau于EMNLP'04提出来,核心思想:通过词之间的相邻关系构建网络,然后用PageRank迭代计算每个节点的rank值,排序rank值即可得到关键词。PageRank本来是用于Google的网页排名的,网页之间的链接关系即为图的边,迭代计算公式如下:

    节点
    的Rank值;

    节点
    的前驱节点集合(入链);

    节点
    的后继结点集合(出链);

    d damping factor 阻尼系数,一般设置为0.85,便于快速收敛。

    PageRank通过互联网中的超链接关系来确定一个网页的排名,其公式是通过一种投票的思想来设计的:如果我们要计算网页A的PageRank值(以下简称PR值),那么我们需要知道有哪些网页链接到网页A,也就是要首先得到网页A的入链,然后通过入链给网页A的投票来计算网页A的PR值。这样设计可以保证达到这样一个效果:当某些高质量的网页指向网页A的时候,那么网页A的PR值会因为这些高质量的投票而变大,而网页A被较少网页指向或被一些PR值较低的网页指向的时候,A的PR值也不会很大,这样可以合理地反映一个网页的质量水平。

    网页之间的链接关系使用图来表示很容易理解,如何将一个句子构建成图?TextRank将某一个词与其前面的N个词、以及后面的N个词均具有图相邻关系(类似于N-gram语法模型)。具体实现:设置一个长度为N的滑动窗口,所有在这个窗口之内的词都视作词结点的相邻结点;则TextRank构建的词图为无向图。

    和PageRank相比,TextRank多了权重项,用来表示两个节点之间的边连接有不同的重要程度。TextRank用于关键词提取的算法如下:

    1)把给定的文本T按照完整句子进行分割,即

    559f1fad9fed9dd33080ea76d386baf8.png

    2)对于每个句子,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词,即

    c33eff91390ec39ff12e6e02d36f1b8e.png

    ,其中 ti,j 是保留后的候选关键词。

      3)构建候选关键词图G = (V,E),其中V为节点集,由(2)生成的候选关键词组成,然后采用共现关系(co-occurrence)构造任两点之间的边,两个节点之间存在边仅当它们对应的词汇在长度为K的窗口中共现,K表示窗口大小,即最多共现K个单词。

      4)根据上面公式,迭代传播各节点的权重,直至收敛。

      5)对节点权重进行倒序排序,从而得到最重要的T个单词,作为候选关键词。

      6)由5得到最重要的T个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。

    TextRank提取关键词短语

    关键词短语的提取基于关键词提取,在文本中提取若干相邻的关键词,既可构成关键短语。

    TextRank生成摘要

    摘要的抽取,是将文本中的每一个句子看作一个节点,计算句子之间的相似性,那么句子间对应的节点存在无向有权边。相似性使用同时出现在两个句子中的同一个词的个数作为分子,分母是对句子中词的个数求对数之和。使用相似度公式循环计算任意两个节点之间的相似度,根据阈值去掉两个节点之间相似度较低的边连接,构建出节点连接图,然后计算TextRank值,最后对所有TextRank值排序,选出TextRank值最高的几个节点对应的句子作为摘要。

    TextRank文本重要性排序

    基于textrank,将每一个文本作为一个节点,计算节点之间的相似性,根据阈值去掉两个节点之间相似度较低的边连接,构建出节点连接图,然后计算TextRank值,最后对所有TextRank值排序,作为文本重要性排序的依据。

    展开全文
  • # 四个参数分别是:训练好的idf字典,默认idf值,处理后的待提取文本,关键词数量 def __init__(self, idf_dic, default_idf, word_list, keyword_num): self.word_list = word_list self.idf_dic, self.default...
  • 基于改进的TFIDF关键词自动提取算法研究,基于改进的TFIDF关键词自动提取算法研究
  • tfidf进行关键词提取

    千次阅读 2019-03-29 11:03:17
    在信息提取的应用场景之中,我们往往需要一些文本中的重要的词而不是文本中的所有词语来进行分析,即使原文本已经进行了去停用词的处理。 那么什么样的词算是文本中的关键词呢?一方面,这个词应该在文本中出现的...
  • 基于TFIDF关键词提取算法

    千次阅读 2019-01-03 16:51:15
    3 调用jieba自带的方法 完成关键词提取。 输入一篇文章,根据每个词语的TFIDF值的大小排序,输出该文章的topk个关键词 # sentence 的格式为'word1 word2 ... wordn' 是一个字符串。 keywords = jieba.analyse....
  • 默认值为 False allowPOS : 仅包括指定词性的词,默认值为空,即不筛选运行结果如下: 总结 关键词提取在NLP文本挖掘领域有着非常广泛的应用,因为文本领域的不同,长文本和短文本的文本类型的不同,每种关键词提取...
  • “有一篇很长的文章,我要用计算机提取它的关键词,完全不加以人工干预,请问怎样才能正确做到?”来源:http://www.ruanyifeng.com/blog/2013/03/tf-idf.html这是大神阮一峰在一篇科普文章中写得开头,在这篇文章中...
  • “有一篇很长的文章,我要用计算机提取它的关键词,完全不加以人工干预,请问怎样才能正确做到?”来源:http://www.ruanyifeng.com/blog/2013/03/tf-idf.html这是大神阮一峰在一篇科普文章中写得开头,在这篇文章中...
  • 本文将使用sklearn进行关键词提取。 实战 结巴分词 使用pandas读取csv文件内容 遍历titile内容进行分词 加载停用词 遍历进行停词 使用sklearn的TfidfVectorizer对文本进行向量化 tfidf.toarray()转换成为...
  • NLP--jieba(关键词提取TFIDF/TextRand))

    千次阅读 2019-05-29 14:49:43
    关键词提取TFIDF 词频(Term Frequency,缩写为TF):出现次数最多的词 如果某个词比较少见,但是它在这篇文章中多次出现, 那么它很可能就反映了这篇文章的特性,正是我们所需要的关键词。 “逆文档频率”(IDF...
  • 用于提取关键词,那么如何从多个文档中提取关键词。文章的关键词可能有什么规律,表示文章主要意思,那这个词应该在该文章中出现多次,但是在其他文章中出现次数不多。 TF 词频 (Term Frequency)表示w在文档Di中...
  • get_idf() for k, v in c.items(): tf = v / _sum tfidf = tf * float(idf.get(k, idf['median_value'])) freq[k] = tfidf sorted_freq = sorted(freq.items(), key=operator.itemgetter(1), reverse=True) return ...
  • TFIDF分词过滤,提取关键词

    千次阅读 2019-02-20 15:28:15
    任务一:现在有一篇长文《中国的蜜蜂养殖》,用计算机提取它的关键词。 1、词频:如果某个词很重要,它应该在这篇文章中多次出现。我们进行"词频"(Term Frequency,缩写为TF)统计。 2、停用词:结果你...
  • 关键词提取算法学习

    2018-06-27 09:52:34
    下面链接是几种关键词提取算法textrank,TFIDF,LDA,PLSA,TRP关键词提取算法
  • 关键词提取TF-IDF算法综述,TFIDF词频逆文档频率是关键词提取常用算法,本文是对该方法全面的综述

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 121
精华内容 48
关键字:

tfidf关键词提取