Gensim学习

来源:互联网 发布:网络安全产品分类 编辑:程序博客网 时间:2024/06/07 04:57

本文属本人理解和感悟,详情请参见https://radimrehurek.com/gensim/intro.html

TF-IDF : term frequency-inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF指的是词频,IDF指的是逆向文件频率。通俗的说,它是一种统计方法,用来评估一字词对于一个文件集或者一个语料库中的一份文件的重要程度,字词的重要性会随着他在文件中出现的次数成正比增加,同时也会随着他在语料库中出现的频率成反比下降。TF-IDF的主要思想是如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

特征

内存独立

  • 不需要把整个训练语料库都放到RAM中(意味着他可以处理大型的,网络级全集)
  • 高效实现了几个特别流行的向量特征算法,包括TF-IDF,分布式增量型的Latent Semantic Analysis,Latent Dirichlet Allocation(LDA)或者Random Projection;而且想要添加新的算法真的很容易!(???)
  • 几种流行的数据格式的I/O封装器和转换器
  • 文档的相似性查询

核心概念

Corpus(语料库)

数字文件(纯文本)的集合,这个集合用来自动推断文章的结构或者标题等信息。所以他也被称作训练语料库。被推断出来的潜在的结构将会用在后来推断新的文档上面。这个过程中没有类似于标记文档等的人工干预。

vector(向量)

在VSM(Vector Space Model)中,每个文档都用一系列标记来代替。举个例子,我们的特征由问题对来决定:
1.“猪”这个单词在文章中出现了多少次?0次
2.文章中有多少段落?2段
3.文章用了多少种字体?5种
所以这篇文章就表示为(1,0.0)(2,2.0)(3,5.0),如果我们事先知道了所有的问题,我们可以把他简化为(0.0,2.0,5.0),这个答案的序列就可以称作vector。注意,只有答案是实数的问题才可以。
对于每个文档来说问题都是一样的,所以我们直接观察两个文档的vector,我们希望得到一个这样的结论:如果两个vector中的数据相似那么他们对应的源文档也是相似的。当然,实际情况中这取决于我们选择的问题是好是坏。

Sparse Vector(稀疏向量)

由于很多问题的答案都是0.0,所以为了节约空间,我们把其中的0都省略了,只写成(2,2.0),(3,5.0)。由于我们事先知道问题,所以空着的特征我们都默认为0。
Gensim并没有事先规定任何特定的语料库的格式。例如((((2,2.0),(3,5.0)),((0,1.0),(3,1.0))))是两个文件的语料库,每个都省略了两个0。

Model(模型)

我们这里的模型是一个抽象的概念,指的是一个文档到另一个文档的转化。在Gensim中文档是由向量代替的,所以模型就是两个向量之间的转换关系,具体的细节是从语料库中学习得到的。
例如,假设这个转换是从单词出现次数到有权重的单词计数之间的转换,也就是说频繁出现的单词会被discounted,罕见的单词会被promoted。每个具体的单词的权重是由他在语料库中的(相对出现频率)决定的。当我们运用这个模型时,就会将包含原始计数的向量转换成另一个包含权重计数的向量

全集和向量空间