同义词挖掘的一些常用方法
来源:互联网 发布:淘宝等级如何查询 编辑:程序博客网 时间:2024/06/06 13:03
综述
在用户使用搜索引擎的过程中,由于地区差异、文化水平等差异,用户所输入的query很多时候和资料中的描述不一致。这种情况下,为了能够召回更多的文档向用户展示,搜索引擎需要对用户的输入做同义词、纠错、归一化等操作。在进行这些操作的过程中,同义词的挖掘是一个基础工作。下面简单介绍一下几个简单实用的算法。
词典
从百度词典、金山词霸的词条中抓取数据,根据原词的描述和解释提取同义词。这种算法简单有效,但是挖掘出来的同义词通常比较书面语。
百科词条
从百度百科、搜搜百科等百科网站抓取词条,在词条中,有“又叫”“别名”等特征词,从这些特征词之后可以提取该词条的其他说法。百科挖掘出的词条通常质量比较高。
元搜索数据
元搜索数据中,原始Query和其召回的文档存在一定的关系,有些是元搜索引擎做了同义替换或者非必留召回的结果。在这些结果和原始query做term对齐,从中可以挖掘出来其中隐含的同义词,为了提高召回的同义词的准确率,可以做一些处理:
1. 带有相同字的term
2. 飘红的term
3. 简写到全称
4. 上下位位置信息
上下文相关性挖掘
在所有的文档中,如果两个term经常在相同的上下文下出现,那么这两个词是同义词的可能性较大。基于这个假设,
1. 对文档进行分词,统计每个term的上下文,根据一定的策略对上下文进行剪枝。
2. 把剪枝之后的上下文作为每个term的特征向量,求term之间两两的夹角余弦。
3. 提取余弦值比较高的作为候选同义词。
这种算法挖掘出的同义词会出现一些相关词但不是同义词的词对,因此这部分同义词通常需要一个人工审核的步骤。
语料对齐
在一个完备的检索系统中,会记录点击日志和用户的session日志。此外,还有不同的anchor指向同一个url。通过这些数据进行语料对齐,可以挖掘出来很多同义词:
1. Query<>Query对齐:点击了相同URL的Query
2. Query<>Title对齐:某个Query点击了某个URL
3. Query<>Query对齐:同一个session内的Query,可能是用户的自纠错或者自修改
4. Title<>Title对齐:被同一个Query点击的URL
5. Anchor<>Title对齐:指向了某个URL的Anchor
6. Anchor<>Anchor:指向了同一个URL的Anchor
- 同义词挖掘的一些常用方法
- 同义词挖掘
- 数据挖掘:同义词的那些事
- 一些常用的方法
- 一些常用的方法
- 一些常用的方法
- 数据挖掘常用方法
- ASP常用的一些方法
- MFC常用的一些方法
- 反射常用的一些方法
- 常用的一些js方法
- HttpRequest的一些常用方法
- JButton常用的一些方法
- Java常用的一些方法
- String的一些常用方法
- CString的一些常用方法
- UIScrollView 常用的一些方法
- extjs的一些常用方法
- iOS 多线程 锁 互斥 同步
- github使用教程-转载
- codevs1041
- 【BLE】CC2541之连接参数
- 给线程取名
- 同义词挖掘的一些常用方法
- [二分、贪心]Codeforces Round #307 (Div. 2) C.GukiZ hates Boxes
- 用linked list实现binary-search-tree及其inorderwalk(中序遍历)
- IOS .pch 文件详解
- 整理文件比较的Shell脚本
- POJ 2299 Ultra-QuickSort 树状数组,归并排序
- jsoup解析的常见用法
- Java常用排序算法/程序员必须掌握的8大排序算法
- 约瑟夫环问题的公式推导