数据挖掘:同义词的那些事

什么是同义词,呵呵,园里有个笑话:老婆的40个同义词
1、配偶 2、妻子 3、老婆 4、夫人 5、太太 6、爱人 7、内人 8、媳妇 9、那口子 10、拙荆
11、贤内助 12、老伴 13、孩子他妈 14、孩子他娘 15、内子 16、婆娘 17、糟糠 18、宝贝 19、小甜甜 20、蜜糖 21贱内 22、达令
23、女人 24、马子 25、主妇 26、女主人 27、财政部长 28、浑人 29、娘子 30、大姐 31、家属 32、屋里的 33、另一半 34、女当家的
35、发妻 36、浑家 37、堂客 38、山妻 39、婆姨 40、中馈

假设电脑里都有这些词,那么程序如何才能判断两个词是同义词或者近义词。

单单从字面上 配偶与妻子 没有一个字是相同,显然仅仅这些信息程序是无法准确判断的。

文献[2]给出了很多词语相似性的度量,这里简要说两种。

1.1.利用词典进行计算

词典是人类智慧的一个记录,把人脑的知识用某种数据结构表示,比如树。把所有词汇按照类似面向对象的继承关系排列。

这样以来词的相似度就可以通过它们在树内的距离计算出来。同义词的话可以放在同一个树结点里,也可以选一个词当代表做它们的唯一父亲结点。

本文的重点还是同义词,如果仅仅考虑同义词,在具体实践中为了提高检索效率,我们可以事先对汉字进行编码或做hash。

这样可以加快比较速度。在文献[1]中给出了一种组织方式,例如同义词 妻子,女人,女主人。那么利用冗余记录如下

关键词:同义词

妻子:女人,女主人

女人:妻子,女主人

女主人:妻子,女人

按照关键词的首个汉字分类存放在不同的文件中,每个文件中按照关键词的长度由大到小排序。

查找同义词时,先利用编码或hash找到文件,然后从上到下,选择第一个匹配的结果。读出同义词。

速度和准确率都挺客观的,但是冗余多,不过跟下面的相比是小屋见大屋。

总之,这种方法与其说是计算相似度。不如说是查询相似度。下面的方法就显得更加智能

1.2.使用大规模的语料统计

要计算两个词的相似度,首先选出一批特征词来。这些特征词就像是一个个观众,来决定他们是否有基情。

观众必须选好,要经常在他们附近徘徊。然后我们计算每个关键词在他们附近出现的频率。然后依托这些

频率就可以计算出相似度。这种方法看起来更多一些智能的味道。但是感觉精度没有前者高。而且存在较大

的不确定性,特征词的选取,场景的选取都很重要。这里就不扯了。

参考:

[1]:http://www.docin.com/p-173845533.html

[2]:http://www.docin.com/p-82696783.html

原文地址:https://www.cnblogs.com/2010Freeze/p/2580632.html