相似词的挖掘

来源:互联网 发布:unity3d c 脚本编程 编辑:程序博客网 时间:2024/04/28 14:51

背景
最近在公司实习,工作需求,需要挖掘一批类似“文化“、“土特产“这种词,这种词的特点之一是直接放在地域词后面,如北京朝阳区文化等,我们已有的语料包含很多query,每个query都是以地域词开头,后面跟着几个term,例如“北京教育怎么样“。
思路
首先我们先用分词工具把这些query分词,然后找到地域词+文化/土特产+X中的X,然后将X去重后排序,得到一系列的文化或者土特产的后缀词,然后根据这些后缀词再去原来分词后的query里面找到地域词+Y+X中的Y,将Y去重后排序,查看里面文化和土特产出现的频次,观察文化或者土特产频次周围的词,发现这些词恰好是我们要找的类似文化或者土特产这种类型的词。频繁重复这种方法,可以得到很多的类似词。
总结
上面挖掘相似词的方法其实是利用了相似词有相同的后缀,并且作为这些后缀的前缀,它们出现的次数也是差不多的这种假设,通过找到种子词的后缀,再根据这些后缀去挖掘更多的词,再根据频次的删选,可以把一些噪声去掉(所谓的噪声可能是因为它作为前缀出现在这些后缀词的频次比较低或者太高),最好的相似词应该是作为这些后缀的前缀出现的频次和文化或者土特产差不多的词,实验也证明确实是这样的。如果想得到更多这种类似词,可以重复这种方法多次,将每次挖掘到的新词作为种子词即可。

0 0