度量语句之间的相似性

语句(sentences)的相似性度量在融合问题中有着重要的应用。在活动图中活动节点的行为描述以及决策边的条件及事件描述,都可以作为语句。在融合的过程中要度量这些语句的相似性。

度量的方法主要有三类:

  • 基于单词重叠的度量: 根据两个句子共享的词数量度量计算相似度得分。 (例如,Jaccard相似系数)
  • 基于语料库的度量:将两个句子的基于语料库的向量表示之间的余弦相似度计算为相似度,将句子对中的一组词语用作特征集(例如,TF-IDF测量:需要一个大的文本语料库进行统计计算)
  • 基于语言学的度量:利用单词与句法成分之间的语义关系,确定句子的相似性 (例如,wordNet)。

wordNet根据事先创建好的数据结构(词分类型,关系)来查找并计算相似度。但该方法的速度较慢,计算两个词的相似度大约在2572 msec(triangle , circle) 优点是不需要训练,已经建好的数据库质量较高。是一种词语语义相似计算的一种方法。

Jaccard相似度:计算两个集合之间的相似程度,对于集合A和B,Jaccard相似度计算如下:

Jaccard(A,B)=|A intersect B|/|A union B|, 相似度数值在[0,1]之前,当A=B时,为1.

向量相似度:

使用TF-IDF计算出文本中词的词频集合,把该集合作一个向量,比较不同集合向量在线性空间中的相似度。如:余弦距离、欧氏距离、概率分布距离(K-L距离)等

在活动图融合问题中,我们主要使用基于语言学的度量方法。

使用wordNet计算相似度

wordNet是一个英语词条数据库。主要分为四类类型:名词(noun)、动词(verb)、形容词(adjective)和副词(adverb)。最小的单元是同义词集合(synset),表示一个词的特殊含义。包含词,它的解释以及它的同义词列表。例如:night, nighttime and dark组成一个同义词集。同义词是由于特写的语义关系联系在一起,语义关系也包括:is-a-kind-of (holonymy)和is-a-part-of (meronymy for nouns).例如: tree is a kind of plant, trunk is a part of a tree. wordNet组织这些频繁使用的关系。

Malcolm Crowe和Troy Simpson发布了wordNet开源网络框架。

WordNet::Similarity软件开发包,目前支持Python和Java版本。

度量两个词的相似性

Wu&Palmer考虑词的最近共同词源(least common sub-summer)长度和深度

$$sim(s,t)=2*depth(LCS)/[depth(s)+depth(t)]$$

  • 其中s和t: 表示参与比较的两个词
  • Depth(s):是s的同义词所在的分类标准中从根节点到S节点的最短距离
  • LCS: 表示s和t的最小共同子类

两个语句的语义相似度

相似度的含义是量化两个语句的相似性,两个语句越相似,说明它们的相似度越高。为了计算方便,相似度一般量化0-1之间。

计算两个语句相似度的步骤:

  1. 将每个句子拆分为一个词语的集合并移除停用词
  2. 词性消歧 (或加标签)
  3. 词干
  4. 为一个句子中的每一个单词找出最合适的含义(单词义词消歧)。
  5. 最后,根据单词对的相似度计算句子的相似度。

通常用如下两种形式计算两个语句的相似度:

  1. $$sim(X,Y)=2*Match(X,Y)/(|X|+|Y|)$$
  2. $$sim(X,Y)=2* (X \cap Y)/(|X|+|Y|)$$

TF-IDF(term frequency-inverse document frequency)

TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降(常用词)。

主要思想:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

$$tf{i,j}=\frac{n{i,j}}{\sumk n{k,j}}$$ (分子是在第j个文件中第i个词的个数,分母是第j个文件中所有单词的个数)

逆向文件频率(inverse document frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语的文件的数目,再将得到的商取对数得到:

$$idf_i=log \frac {|D|}{1+|{d \in D: t \in d}|}$$

idf值越大,则在该词在文件中出现的频率越小,该词在文件中出现的频率越高,idf值越小

$$tf{i,j}-idf_i=tf{i,j}\times idf_i$$

某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语.

当某个词在一个文件中出现频率很大,且这个词在整个语料库中出现的频率很小,tf-idf值较大,说明这个词对这段文件描述来说,有一定的区分度。

tf-idf模型的主要思想是:如果词在该文档中出现的频率高,而在其他文档中很少出现,则该词具有很好的区分能力,适合用于把这篇文档从文档集合中区分出来。

向量空间模型

权重计算方法经常会和余弦相似度(cosine similarity)一同使用于向量空间模型中,用以判断两份文件之间的相似性。

TFIDF算法是建立在这样一个假设之上的:对区别文档最有意义的词语应该是那些在文档中出现频率高,而在整个文档集合的其他文档中出现频率少的词语,所以如果特征空间坐标系取TF词频作为测度,就可以体现同类文本的特点。另外考虑到单词区别不同类别的能力,TFIDF法认为一个单词出现的文本频数越小,它区别不同类别文本的能力就越大。因此引入了逆文本频度IDF的概念,以TF和IDF的乘积作为特征空间坐标系的取值测度,并用它完成对权值TF的调整,调整权值的目的在于突出重要单词,抑制次要单词。但是在本质上IDF是一种试图抑制噪音的加权 ,并且单纯地认为文本频数小的单词就越重要,文本频数大的单词就越无用,显然这并不是完全正确的。IDF的简单结构并不能有效地反映单词的重要程度和特征词的分布情况,使其无法很好地完成对权值调整的功能,所以TFIDF法的精度并不是很高。

在TFIDF算法中并没有体现出单词的位置信息

results matching ""

    No results matching ""