3.3.2 同义词匹配
同义词是指意义相近或者相同的词。同义词主要特征是它们语义上相同或者相似,但是同义关系非常复杂,例如以下情况。
● 词语在不同语言中的翻译,例如 “深度学习”和 “Deep Learning”。
● 具有相同含义的词,例如“高请求量”和“高并发”。
● 简称或者别名,例如“信息技术”和“IT”、“人工智能”和“AI”
对于缩略的简称,一般是保留全称的字符。关于挖掘同义词有各种各样的方法,每种方法都有自己的优缺点,具体采用哪种方法或者哪些方法的组合主要依据如何更好地降低人力成本。本节将列出了一些常见的方法,读者可以在使用中根据实际需求进行选择和取舍。
1.词袋模型
词袋模型(Bag of Words, BoW)是一种用机器学习算法对文本进行建模时表示文本数据的方法。词袋模型假设不考虑文本中词与词之间的上下文关系,仅仅只考虑所有词的权重,而权重与词在文本中出现的频率有关。词袋模型首先会进行分词,在分词之后,通过统计每个词在文本中出现的次数,就可以得到该文本基于词的特征。如果将各文本样本的这些词与对应的词频放在一起,就是向量化。向量化完成后一般也会使用TF-IDF进行特征的权重修正,再修正后再对特征进行标准化,就可以通过计算特向量距离来表示词语间的相似程度了。
2.Jaccard系数
假设给定两个集合A、B,Jaccard系数定义为A与B交集的大小与A与B并集的大小的比值,公式如下。
当集合A、B都为空时,J(A,B)定义为1。与Jaccard系数相关的指标叫作Jaccard距离,用于描述集合之间的相似度。Jaccard距离越大,样本相似度越低。公式定义如下。
其中对称差(Symmetric Difference)A△B=|A∪B|-|A∩B|。一般Jaccard距离可以用来计算两段文本提取出词汇集合之间的相似性。
3.Glove模型
Glove(Global Vectors for Word Representation)模型是一个基于全局词频统计的词表征工具。它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(Similarity)、类比性(Analogy)等。通过对向量的运算,比如欧几里得距离或者余弦相似度,可以计算出两个单词之间的语义相似性。
4.语义相似度计算
通过使用Glove模型得到单词的词向量,然后使用不同的相似度计算方法得到问题对的相似度。余弦相似性通过测量两个向量夹角的余弦值来度量它们之间的相似性。两个向量间的余弦值可以通过使用欧几里得点积公式求出。
这里的Ai和Bi分别代表向量A和B的各分量。
曼哈顿距离(Manhattan Distance)也称城市街区距离(City Block Distance),是向量各坐标的绝对值做差后求和,公式如下。
欧氏距离(Euclidean Distance)源自欧氏空间中两点间的距离公式,计算方式如下。
闵可夫斯基距离(Minkowski Distance)代表一组距离的定义,公式如下。
当p=1时,就是曼哈顿距离;当p=2时,就是欧氏距离,在本项目中设置p=3。
Bray-Curtis距离:
Canberra距离:
5.潜在语义分析LSA/SVD
潜在语义分析(LSA)是一种用于知识获取和展示的计算理论和方法。它使用统计计算的方法对大量的文本集进行分析,从而提取和表示出词的语义。LSA/SVD是目前普遍使用的典型LSA空间的构造方法。通过对文本集的词条-文本矩阵的奇异值分解(Singular Value Decomposition, SVD)计算,并提取K个最大的奇异值及其对应的奇异矢量构成新矩阵来近似表示原文本集的词条-文本矩阵,同样也是计算两个矩阵间的不同距离表示相似性。