Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20318
  • 博文数量: 10
  • 博客积分: 1480
  • 博客等级: 上尉
  • 技术积分: 120
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-08 12:13
文章分类
文章存档

2011年(2)

2010年(8)

我的朋友
最近访客

分类: Java

2010-08-16 10:40:25

对搜索引擎同义词支持的实验, 分析模拟


今天偶尔看到一个同义词库, 想到这个有什么用途哪? 肯定是用来判断2句话, 2篇文章的相似性的.

它对搜索引擎,对论文抄袭鉴定系统肯定有用, 于是去搜索引擎试了试, 结果大失所望失望, 貌似google,bing,baidu对同义词没有做处理, 感觉是很简单的东西, 竟然没有做相关处理.

而且不仅仅是没有做同义词处理, 相关度方面也很差, 真是很奇怪的事情.( 首发)


我们随便找一句话: (从google的桌面工具文档里)

A: "我们十分关注您的安全并为此推出了一项功能",

对应样本为:

B: "我们非常关注您的安全并为此推出了一项功能"


我们搜索一下, 可以发现 A 可以匹配的很好, 如果改成B, 发现和A匹配的第一项不见了, 按照正常猜想即使改了一个词 相关度应该还是很高, 不知道为什么会这样.




替换其中一个同义词: (发现原来的网页不在前面了, 翻了几页也没有找到)





我们暂且不考虑 "大胜美国队" 和 "大败美国队"的语义分析, 但是上面的结果肯定不尽人意, 因为你可能需要考虑所有同义词, 否则可能就错过你想要的结果.



下面我们做一个简单的分析和模拟来实现同义词的相关逻辑, 假设的流程如下:
  •     首先我们要有同义词对应表(多对多,可以有权重)
  •     收录网页时把相应同义词映射到同一个词, 当然可以映射多个
  •     在搜索时先预处理用户输入的内容
  •     根据匹配算法计算



1. 同义词表结构如下

一百分 -->满分, 0.8
十分 --> 满分, 0.8

十分 --> 非常, 0.95
特别 --> 非常, 0.9
格外 --> 非常, 0.9

关心 --> 关注, 0.95
注意 --> 关注, 0.85

......

所有同义词映射到同一个词语, 并赋予一个权重. 当然还有多义词的问题, 会出现多个映射.

当然同义词的整理也是个巨大的工作量, 网上也有一些词库.


2. 根据同义词库的映射

    原内容: 我们十分关注您的安全并为此推出了一项功能
    映射后: 我们 满分*0.8|非常*0.95|(十分) 关注您的安全并为此推出了一项功能

    "|"表示有多个选择, "()"表示为原内容.

3. 对输入内容的分析映射

    用户输入: 我们非常关心您的安全并为此推出了一项功能    
    分析映射: 我们非常 关注*0.95|(关心) 您的安全并为此推出了一项功能

4. 匹配查找
   
   匹配查找就是搜索引擎核心的逻辑了, 当然在遇到 "满分*0.8|非常*0.95|(十分)" 需要增加同义词判断逻辑, 根据2个权重可以得出一个同义词的匹配度, 然后继续分析即可.

以上只是一个非常简单的分析模拟, 和实际的搜索引擎逻辑差别非常大, 仅供参考.

                   
阅读(755) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~