农民 - Javen- 19:50:30 感谢大家支持! 1、自由发言:大家悠着点,不要太着急啊。刚开始请尽量由主讲发言吧; 2、一点限制:主讲人与管理员的字体颜色为红色,请大家使用黑色或者蓝色,并且请大家 字体不要超过5号; crane- 19:50:39 偶鼓掌先 老渔翁- 19:50:46 crane- 19:51:01 ╃(Chris-- 19:51:05 hi,各位,现在开始吧. charbee- 19:51:06 广州好像已经20:00啦 朱世杰℡- 19:51:27 GG 农民 - Javen- 19:51:33 好了。 大家欢迎 chris , 也感谢大家的支持! 真神- 19:52:28 欢迎 ╃(Chris-- 19:52:31 恩,多谢大家支持,我先自我介绍一下.我是chris,matrix打算在这个高手群里经常展开一些专题性,技术含量比较高的专题讨论,从来让大家都能获益。所以我今晚就抛砖引玉,希望以后大家也能踊跃报名. ╃(Chris-- 19:52:58 术业有专攻,谁也不会是十全十美的高手,但是能够把自己专长的东西拿出来和大家分享,是一件很令人开心的事情 阿古- 19:53:04 鼓掌 nemo- 19:53:10 老渔翁- 19:53:19 冰云- 19:53:25 别刷屏! ╃(Chris-- 19:53:29 搜索引擎技术不是我的专业,但是我的兴趣,3年前我研究lucene源代码从而对搜索引擎感 兴趣,从而进入了这个领域。 ╃(Chris-- 19:53:53 我的专业是金融领域的一些算法研究和应用,在香港,这方面比国内还是要先进一些,希 望下次能有机会给大家讲讲这方面的技术。 ╃(Chris-- 19:54:02 言归正传,下面我们开始今天的专题讨论。 ╃(Chris-- 19:54:26 我会从结构上和方向上做一些介绍,至于详细的算法, 今晚因为时间原因我就不讲那么详 细,具体有疑问大家在论坛发贴或者email和我联系。 ~~>.<~~- 19:55:12 good !! ╃(Chris-- 19:55:19 先大概介绍一些搜索引擎吧,这里指的搜索引擎是指类似于www.google.com,www.baidu.com 这样的搜索引擎.yahoo严格意义上,不具有一个完整的搜索引擎的全部东西.google是搜索 引擎的典范. ~~>.<~~- 19:55:20 有兴趣。 ╃(Chris-- 19:55:38 我今晚会大概介绍一下一个完整的搜索引擎的架构以及用到的关键技术. ╃(Chris-- 19:55:53 对一个搜索引擎来讲, 比较传统的架构会是这样的: crawler - index engine - search engine ~~>.<~~- 19:55:53 怎么你打字超快啊。 crane- 19:55:58 up一下 Server- 19:56:17 不要说话,尊重一下 ~~>.<~~- 19:56:22 ~~>.<~~- 19:56:32 比掌声!! KIKI- 19:56:55 晕,不要说话,听Chris大哥讲 ╃(Chris-- 19:56:58 crawler就是一个不断从网上将网页抓下来的一个引擎. index engine是一个索引引擎. search engine就是检索引擎. ╃(Chris-- 19:57:07 下面,我们先从crawler开始讲. wuyu- 19:57:59 呵,百度的spider,trs的雷达,应该都算crawler吧? ╃(Chris-- 19:58:18 Crawler是一项比较复杂的技术,Standford有一些博士毕业论文的主题就是Crawler的算法. ╃(Chris-- 19:58:45 对,但是就crawler来说,google无疑是做的最好的,具体也有很多数据,包括覆盖率,精确性等. ╃(Chris-- 19:59:18 stanford有一下颚关于crawler的paper,大家可以访问 http://dbpubs.:8090/aux/index-en.html 里面有不少关于crawler的算法, 以及google的crawler的一些原型算法,当然现在的google的crawler远远要复杂的多. wuyu- 19:59:55 Crawler主要完成哪些工作?包不包括对html、script这类“无用”信息的处理? ╃(Chris-- 19:59:56 就一个crawler来说,比较复杂的技术在于: charbee- 20:00:01 lucene跟google有什么关系吗? 问题我先mark一下,等下chris讲完了,再问 ╃(Chris-- 20:00:21 有,lucene会在下面提到,lucene应该属于index engine部分的东西. ╃(Chris-- 20:00:27 就是中间的这部分. wuyu- 20:00:36 lucene只是chris讲的搜索引擎的一部分,负责全文检索,而且lucene的切分词是采用自动 切分词技术的 wuyu- 20:00:57 还是从crawler开始吧,不打岔了 ╃(Chris-- 20:01:13 好,wuyu的问题很好,一会我们再讨论一下分词这个东西. ╃(Chris-- 20:02:27 继续crawler的关键技术: 1.分布式,多线程抓取.任务的调度问题. 因为对于成千上万的网页, 如何不重复抓取, 又 不漏掉重要站点, 是一个很关键的问题. 这里需要一个好的分布式算法,一个很好的任务 调度机制。 ╃(Chris-- 20:03:17 具体的算法,这里就不聊了,每个算法都可以开一个专题来讨论的,呵呵. crane- 20:03:23 支持打岔 朱世杰℡- 20:03:39 能不能提一下那些算法 朱世杰℡- 20:04:34 INTRO即可 charbee- 20:05:49 lucene的最新版支持中文了吗? wuyu- 20:06:01 先整体介绍吧,对各部分的着重点提一下,最后大家再对具体的某些点做提问,毕竟搜索 引擎每一部分都可以开一大个专题来讨论,在一个细节上陷进去就难出来了 ╃(Chris-- 20:06:02 算法,没有固定的名字,因为这是一个特殊的领域,但是对于调度算法的研究,会基于传统的 分布式调度算法来进行. KIKI- 20:06:18 不支持吧,weblucene支持,也是开源项目 charbee- 20:06:42 车东的开源,我知道。环境架不起来。 wuyu- 20:06:44 看吧,一扯就扯远了吧。让chris继续吧 ╃(Chris-- 20:07:19 继续crawler的关键技术: 2.网页重要性的评估, 这个很重要,因为crawler不会把所有网页都抓下来,只会抓20%的网 页下来,所以必须评估网页的重要性,如何评估就显得很重要. ╃(Chris-- 20:07:48 一般,评估技术会用到page rank算法.这是google发明的算法. ╃(Chris-- 20:08:11 Pagerank这里就不介绍的太详细了,大家google一下有很多介绍的。大概说一下,就是通 过指向页面A的链接数量和权重来判断页面A的rank 值。Matrix的page rank是5.0,是一个 中等的得分 ╃(Chris-- 20:09:29 继续crawler的关键技术: refresh policy-. 因为网页抓下来之后,每经过一段时间,crawler都必须更 新网页,从而保证索引的网页是最新的网页。最简单的更新策略就是把所有网页重新下载 一次,但是这个耗费的时间起码是一个月,是heavy cost,不能被接受。所以,一个优秀的 更新算法是一个crawler的根本。 ╃(Chris-- 20:10:41 继续crawler的关键技术: 4.压缩算法,Crawler抓下来的东西,会分布式的存储在本地。一般来讲,因为数据量的庞 大,所以这里的存储会有一个压缩机制,从来减少总的存储容量。包括将来在各个数据服 务器之间传输数据,都是需要一个优秀的压缩算法,从来减少通讯带来的带宽负担。 ╃(Chris-- 20:11:10 关于crawler的介绍就完了,大家自由提问吧.提问完我们进入index engine base- 20:11:26 1. 分布式的运算方式 2. 效率问题 3. 切词 4. 相似性分析 5. 如何缓存等等 请简述一下先,谢谢 偶列的可能没有重点,请指教,偶关心相似性分析部分 base- 20:11:32 哦,这是刚才打的 真神- 20:12:13 google的pr值是针对性每个网页还是一个网站? base- 20:12:24 1. 你说的是算法 2. 应该就是相似性分析部分 3和4应该属于缓存和更新部分的吧 crane- 20:12:27 关心多线程的检索方式 ╃(Chris-- 20:12:28 一个一个来,我先回答base的问题,ok? base- 20:12:37 ╃(Chris-- 20:14:03 base的问题: 1.分布式的运算方式? 这个主要就是任务调度的算法问题,就是如何分配任务. 比如,一个 很简单的分布式,就是一个线程下载一个网站,一台服务器处理一个ip段. ╃(Chris-- 20:14:55 2.效率问题? crawler目前来讲,google跑完一次需要3个月,所以每隔一段时间google会 dance一次,就是重新整理索引. base- 20:15:41 1. 这里面,如果某些服务器出现问题的时候怎么办? 2. GOOGLE是如何存放数据的,DBMS? base- 20:15:59 哦,我应该了解下crawler先 ╃(Chris-- 20:16:25 1. 有备份机制,如何备份不得而知. 2.自己定义的格式存储,比如txt,非dbms,肯定不是. ~~>.<~~- 20:17:03 为什么不用dbms? base- 20:17:05 是DBMS是不行的,文本方式?大约可以知道是怎么存放的了 ╃(Chris-- 20:17:40 3.切词, 这个是中国搜索引擎的特色. 一般来讲,切词输入nlp的领域,引入了nlp的话,会提 高检索效率,但是nlp是一个世纪难题,baidu解决得效果我看大家也能看得到. ╃(Chris-- 20:17:47 google没有切词这个概念 ╃(Chris-- 20:18:04 4,5 属于检索引擎得东西,我们下面在谈. ╃(Chris-- 20:18:17 next,真神得问题? 真神- 20:18:35 google的pr值是针对每个网页还是一个网站? base- 20:18:36 切词是刚才听到的,呵呵 ╃(Chris-- 20:18:50 pr值是对每个网页. base- 20:19:04 在语义分析的时候会有 ╃(Chris-- 20:19:05 page rank,顾名思义,是page ╃(Chris-- 20:19:35 对,绕开语义是必须得,google完全绕开了语义. 冰云- 20:19:36 就是说,我和pr高的page做链接我的pr也会提高 ╃(Chris-- 20:20:08 冰云说得对,这个非常明显 ╃(Chris-- 20:20:30 但是也要和对方给出来得连接数量有关 陆地孤帆- 20:21:06 我想问一下跨语言跨字符集的搜索怎么实现的? 比如我们输入中文,却能查到行相似关键字的繁体中文,甚至日问韩问资料? base- 20:21:15 对,绕开语义是必须得,google完全绕开了语义. 但是这样一来,只是关键字分析的话,那么相似性分析就会有很大偏差了 ╃(Chris-- 20:22:05 但是效果来看,google并不差,实际上全文检索引擎+page rank可以做得很好. 语义并不是 想象中那么容易处理. 往往1%得误差,会造成10%的错误放大. base- 20:22:40 当然,语义分析到现在也解决的不好,很难 ╃(Chris-- 20:23:21 跨语言,跨字符集. 这个有一个翻译的对应词典. 会在索引阶段就处理这个问题. 比如简体 和繁体的对应. 但是google没有做简体对英文的对应,因为这是属于机器翻译的问题,而不 是简单的对应问题. 冰云- 20:23:55 不是通过unicode么? base- 20:24:13 page rank+全文检索,这个问题需要讨论一下,有点不清楚 ╃(Chris-- 20:24:27 对,简体,繁体,可以通过unicode ╃(Chris-- 20:25:00 但是which unicode对应which unicode 还是应该有个对应. 农民 - Javen- 20:25:41 还有没有回答的: crane- 20:12:27 关心多线程的检索方式 ╃(Chris-- 20:25:48 google的本质是全文索引+page rank. 没有语义,没有分词. 但是效果很不错. ╃(Chris-- 20:26:10 crane,能把问题说清楚些么? 多线程的检索方式? ╃(Chris-- 20:26:34 你是问多用户并发检索的情况如何处理? crane- 20:26:49 就是多线程 如何 处理不重复 crane- 20:27:05 如何保证 不重复检索网页 crane- 20:27:36 我曾经做过爬网站的程序,这个是我遇到的最复杂的问题 ╃(Chris-- 20:27:59 应该是crawler如何不重复下载网页吧?最简单的方法,就是我前面提到的: 比如,一个很简单的分布式,就是一个线程下载一个网站,一台服务器处理一个ip段. ╃(Chris-- 20:28:42 具体,如果是在一个网站也采用多线程处理,那么实现方式上来讲,会有一个队列,来存储已 经处理过的页面. 然后新处理的页面要比较一下队列里的页面. 农民 - Javen- 20:28:52 但 matrix 会同时有 上千个 google 线程来 dance ╃(Chris-- 20:29:07 对,上面讲到了解决方法. ╃(Chris-- 20:29:14 会有一个队列. crane- 20:29:25 一个线程下载一个网站,我倒,因为我这个程序是就一个机器,我的PC crane- 20:29:36 有没有其他的办法 crane- 20:29:59 算法推荐也好 base- 20:30:03 就是一个网段一个网段的排吧 base- 20:30:10 不会重复网站了 ╃(Chris-- 20:30:16 如果是n个线程处理一个网站,那么就是我上面提到的方法啊. ╃(Chris-- 20:30:27 会有一个队列,来存储已经处理过的页面. 然后新处理的页面要比较一下队列里的页面. ╃(Chris-- 20:30:36 所有线程共享这个队列. ╃(Chris-- 20:30:43 这是最简单的方法. crane- 20:31:03 哦,明白了,谢谢 ╃(Chris-- 20:31:05 在n个线程处理一个网站,当然也可以有一些更聪明的调度方法, ╃(Chris-- 20:31:24 具体以后再聊聊. ╃(Chris-- 20:31:29 还有其他问题么? crane- 20:31:33 更聪明 的是什么,刚才你说的一个队列和我的想法是一样的价值不大 冰云- 20:31:42 pr这东西对个人网站到底有没有意义呢? base- 20:32:03 以前偶查东西的时候是IP段来,一个IP一个IP的来过 crane- 20:32:08 更聪明算法 的我以后找你可以么 ╃(Chris-- 20:32:19 价值不大?但是你必须实现啊. 其他算法以后我们可以探讨一下. ╃(Chris-- 20:32:38 pr值我觉得还是挺重要,起码再google排名上气的是关键性的作用. 冰云- 20:32:56 左边的排名是排的PR? base- 20:32:58 我还是不明白,page rank + 全文检索,如何处理的相似性问题,就是重要性问题,举个 例子如何? ╃(Chris-- 20:33:07 google带来的访问量,目前来讲是在60%以上. 农民 - Javen- 20:33:56 我们在同一个数据库里检索数据都要考虑速度问题,google 是怎么样保证他的检索速度的? 同一个关键词的搜索,他需要从 N 个服务器上去拿数据,而且上面说到的,可能是打开文 本文件来获得数据。 方片- 20:34:14 为什么在GOOGLE中搜索,当你翻了很多页时会经常出现重复的页面链接? ╃(Chris-- 20:34:25 base,可以看看page rank算法. base- 20:35:03 哦,谢谢,偶去望一下 charbee- 20:35:18 weblucene怎么用呀? 郁也风- 20:36:00 base- 20:36:12 you can use English,haha.... ╃(Chris-- 20:36:12 javen,这个就是分布式全文索引的效率问题,效率上来讲,这个会很迅速,特别是海量数据的 处理上,会比传统的数据库快n倍.对google来讲,检索一次,也就是读几个文件,本地传输2次 数据.速度完全可以保证 郁也风- 20:36:33 English is my weakest link ╃(Chris-- 20:36:44 charbee,weblucene我没有用过,希望下次我们可以把车东请过来给大家讲讲这个东西,呵呵. javen可以联系一下 base- 20:37:01 try Wan neng Wubi :) crane- 20:37:16 哗~~~~ 鼓掌~~ 郁也风- 20:37:23 welcome:) charbee- 20:37:29 好, 阿古- 20:37:36 鼓掌! 拓拔涛- 20:37:36 冰云- 20:37:43 车东现在在美国培训 KIKI- 20:37:45 Server- 20:37:46 em14 base- 20:37:52 农民 - Javen- 20:38:01 检索一次,也就是读几个文件,本地传输2次数据. 这个可以细化一下??? Server- 20:38:03 em13 charbee- 20:38:14 lucene呢,讲讲原码核心部分也好。 ╃(Chris-- 20:38:17 javen,这个和google的具体索引实现有关. 农民 - Javen- 20:38:27 警告: base Server 不要发这种东西。 否则立马清除! base- 20:38:36 真神- 20:38:40 这个是否是index engine部分的内容了? ╃(Chris-- 20:38:46 lucene源码核心我也想讲讲,但是时间不是很允许. ╃(Chris-- 20:38:56 对,下面我们讲讲index engine charbee- 20:39:04 呵呵,好。 crane- 20:39:06 lucene源码核心 放到最后讲如何 charbee- 20:39:11 好。 crane- 20:39:17 好 ╃(Chris-- 20:39:30 现在已经快一个小时了,我得手要断了,哈哈 charbee- 20:39:44 page rank 还没有讲完,我的一个普通网页的网站,怎么提高page rank 农民 - Javen- 20:39:51 要不休息一会儿吧。 大家自由聊聊。 crane- 20:39:52 挑战体能极限,我们都支持你 crane- 20:40:05 好哈,休息 郁也风- 20:40:07 ╃(Chris-- 20:40:14 charbee: 1. 找尽量多的网页为你做链接指向你. KIKI- 20:40:17 吃块瓜, 农民 - Javen- 20:40:22 charbee : 这个倒是个实在的问题啊。 我的 blog 今天看到了 3 了 。 哈哈 charbee- 20:40:42 呵呵。 冰云- 20:40:45 我之前是5,现在下降到4,估计和我有情链接增多有关 郁也风- 20:40:45 my pr value is zero crane- 20:41:05 怎么看5 3呀 冰云- 20:41:10 google bar charbee- 20:41:10 我的也是0 crane- 20:41:14 pr指数在哪里看? ╃(Chris-- 20:41:20 增多是不会减少pr的. pr只和指向你的链接有关. 郁也风- 20:41:20 my link‘s type is ?abc=*** ╃(Chris-- 20:41:31 下载一个google的bar就可以看到 ╃(Chris-- 20:42:52 下面我们继续index engine crane- 20:43:10 好,谢谢 charbee- 20:43:25 农民我的blog玩不了了: http://www./blog/char/ charbee- 20:43:46 继续 index engine 好像lucene就是用 index engine ╃(Chris-- 20:44:09 东西抓下来之后,除了存储起来,就是要进行索引了,这就是Index engine要做的事情。 这里我们的索引都是指完全的全文索引,而不是只对字的索引,或者只对词的索引。有些 国内的检索引擎是对字的索引或者对词的索引,或者两者的结合。 KIKI- 20:44:11 好像也有search engine吧? ╃(Chris-- 20:44:48 其实,我们平时用的lucene就是一个索引引擎,但是不支持分布式。而且,索引压缩算法 还有其他方面还存在一些问题不适合大型搜索引擎使用,但是对于一般通常的应用来讲应 该是没有什么问题。 ╃(Chris-- 20:45:39 关于index engine,有几个问题比较关键: ╃(Chris-- 20:46:30 1.一般来讲,因为数据量是很大,所以索引的容量也会很大,一般来讲,数据量和索引量 的比例会是1:1。所以,索引的存储也会是分布式的。比如google,用来存储索引的服务 器大概有1000多台。google用的是什么算法是没有公布,起码我是没有找到。最简单的索 引就是倒排索引,lucene就是用的这个. ╃(Chris-- 20:48:51 2.Index engine 必须支持增量索引,而且增量索引速度应该很快。这个问题,通常的解 决方法,是为新增的数据新建一个新的索引块,然后在一定时间,将这个新的索引块并入 旧的索引块。比如lucene里就是这么做的。 ╃(Chris-- 20:50:55 3.索引有一个压缩的问题,因为通常数据量和索引量的比例会是1:1,如果压缩算法做的 比较好的话,应该可以得到更好的一个比例。lucene这方面做的比较一般. ╃(Chris-- 20:51:29 4.还有就是多语言的问题,索引必须支持多语言.现在unicode可以很好的解决这个问题 ╃(Chris-- 20:52:55 5.索引的结构还必须为检索,相似性分析,等等提供良好的计算接口.比如google和baidu的 类似网页,为了很快找到类似网页,这些数据也必须放到索引里面去. ╃(Chris-- 20:53:57 6.当然,支持doc,excel,ps 等多种文件格式,这个是基本的东西了 Join- 20:54:19 怎么把数据放入索引哦? Join- 20:54:27 添加索引?? ╃(Chris-- 20:54:29 就是通过索引引擎. Join- 20:54:44 没听过 ╃(Chris-- 20:54:56 数据下载下来,出发索引引擎,索引引擎分析数据,添加到索引库. ╃(Chris-- 20:55:48 index engine 介绍完了.大家自己提问 ╃(Chris-- 20:55:52 自由提问 方片- 20:57:51 时间太短,讲的东西太深,听不大懂,Chris能不能花点时间将今天的讲座整理成一篇文档, 以便慢慢学习啊 农民 - Javen- 20:58:11 坦率地说,我没有太明白“全文”索引的意思。 对象不是字、词,是全文? 一般意义上的索引对象都是关键字。 ╃(Chris-- 20:58:15 呵呵.好啊.完了会整理放到网上. 阿古- 20:58:23 就是阿 感觉很复杂 很多算法没有接触到 农民 - Javen- 20:58:34 我会整理好记录的。 我已经在整理了。 会完后马上可以放到网络上。 charbee- 20:58:54 最好有实际点的东西比较好,有这样有什么好,没有这样有什么好。 crane- 20:58:55 是哈,这个东西太深了,而且涉及的方面可真多 KIKI- 20:59:01 主要是没学过九阳神功,要不小KS ╃(Chris-- 20:59:07 对,全文检索不是对关键字,是对全文. 比如"我是中国人",检索"是中",也可以检索到就是全文检索 郁也风- 20:59:25 base- 20:59:34 这里应该是page rank的内容了吧? 阿古- 20:59:45 你可以写拼音嘛1 base- 20:59:49 you can download the 万能五笔 wuyu- 20:59:52 能不能再介绍一下索引中的分词处理,比如中文同义词处理? 郁也风- 21:00:24 I‘m downloading MS ime,76MB wuyu- 21:00:25 如果搜“毛主席”,带着“毛泽东”、“毛润芝”之类的信息也能检索出来? crane- 21:00:28 Chris 随便找个你认为最有价值 的方面,详细讲讲吧 ╃(Chris-- 21:00:41 google对索引,不会做分词处理的.所以不会对同义词进行处理. baidu会做处理. base- 21:00:52 万能五笔 is little, just less than 5M 堕入凡间的雨- 21:01:13 这样的处理岂不是很复杂 crane- 21:01:24 google现在能处理拼音了 wuyu- 21:01:31 是啊,baidu、trs、慧聪之类的国内厂商所吹的,也就是基于汉语言的切分词技术 wuyu- 21:01:58 中文切分词过程大致的原理? crane- 21:02:00 trs 不是国内的吧 wuyu- 21:02:11 国内的,易宝嘛 ╃(Chris-- 21:02:13 trs是港资的,但是主力是国内的 ╃(Chris-- 21:02:24 北京信息工程学院的 charbee- 21:02:34 Chris,你在trs做吗? ╃(Chris-- 21:02:40 慧聪吗,呵呵..我呆过一段时间. wuyu- 21:02:49 呵,主要是trs比较便宜,好象trs server才8万。 ╃(Chris-- 21:02:57 不在trs啊? 这个不是我的专业,只是我的爱好. crane- 21:04:36 基于汉语言的切分词技术, 维护同义词字典? wuyu- 21:04:47 慧聪吹的有一个东西是内嵌在关系数据库内的全文,trs、百毒、lucene都是另起专门的全 文库,这两种方式有什么优缺点? 农民 - Javen- 21:05:20 因为 google 根本不去管什么分词、语义,而 baidu 、慧聪什么的在玩一点,所以说他们 技术比 google 高,说什么第三代、第四代搜索技术? bill-过儿- 21:06:05 感谢!我来晚了! base- 21:06:22 唉,语义分析, KIKI- 21:06:27 晕,现在才来? 农民 - Javen- 21:06:36 感谢大家支持! 1、自由发言:大家悠着点,不要太着急啊。刚开始请尽量由主讲发言吧; 2、一点限制:主讲人与管理员的字体颜色为红色,请大家使用黑色或者蓝色,并且请大家 字体不要超过5号; crane- 21:06:46 自然语言语义分析可有的玩了 wuyu- 21:06:49 我是觉得中文切分词很关键啊,如果用lucene的自动切分词,能够满足“查全”的要求, 但是实际应用中,更加需要“查准”啊,你出一万条垃圾信息还不如出一条用得着的信息好 bill-过儿- 21:07:25 是啊,聚了一下会! ╃(Chris-- 21:07:29 information retrieval-的技术会越来越多的应用到搜索引擎里面.比如,排重, 相似性分析,用户爱好分析,问题回答性质.等等. 但是,这都要以一定的准确性为基础,如果 技术不成熟,就只能是放在实验室的产品. charbee- 21:07:29 有没有实用点的技巧? crane- 21:07:33 切分词技术 方便解释一下么 郁也风- 21:08:00 切分词? I‘m late, what is 切分词?wuyu? bill-过儿- 21:08:22 继续 charbee- 21:08:28 车东有篇文章讲切分词。 wuyu- 21:08:32 郁也风,拆分为“郁也”“也风”,lucene就是用这种自动切分词手段的,两字两字一切分。 crane- 21:08:45 哦,明白了,谢谢 郁也风- 21:08:57 i see:) wuyu- 21:09:31 英文好切分,见空白符就切成word了,中文就没边界。"this is",明显的两个词,但是 “郁也风”,你让计算机去判断判断用了几个词? crane- 21:09:40 我想,应该切分有意义的词吧 ╃(Chris-- 21:09:46 切分词,对英文是不存在这个分词的问题,因为空格就是英文单词的分隔符.. 但是中文就有,比如 "我马上从马上下来",计算机存在识别困难. 现在,通过一定的技术,基 于语料库,可以达到比较好的效果. crane- 21:10:07 哈哈,这个例子好玩 堕入凡间的雨- 21:10:29 语料库是什么? crane- 21:10:33 语料库 是什么,不只是词典吧,还有什么 base- 21:10:37 又到了语义分析上了,唉,谁能三言两语说明白,老朽会佩服死去活来的 bill-过儿- 21:11:02 对不起噢! charbee- 21:11:09 http://www./tech/lucene.html#segment Word Segment- bill-过儿- 21:11:13 可以了 ╃(Chris-- 21:11:16 语料库是一些,已经处理好的标注文章, 比如把人民日报2年的文章分词标注好. 然后基于 这个语料库来处理分词. bill-过儿- 21:11:25 调整好了 crane- 21:11:29 这么智能呀 ╃(Chris-- 21:11:41 语料库是手动做的. base- 21:11:49 这个查询数据量,大了去了,有什么相关算法? crane- 21:11:59 想当于 先给机器人学知识,然后他去做 举一反三的工作? ╃(Chris-- 21:11:59 这个建索引,速度还不错. ╃(Chris-- 21:12:06 crane说对了 crane- 21:12:41 哇,太夸张了,现在的技术可真厉害,估计性能是个不小的问题 base- 21:12:45 呵呵 堕入凡间的雨- 21:13:18 也就是将常用词语做库!然后在语法切分时根据库做比较? 真神- 21:13:32 这个深入下去估计是AI方面的内容了 base- 21:13:42 不用深入,已经是了 ╃(Chris-- 21:13:46 不仅仅这么简单,是对一些文章进行分词并进行词性标注. ╃(Chris-- 21:14:10 先手动做,然后让机器在这个基础上对其他文章自动分词 堕入凡间的雨- 21:14:41 也就是叫机器去读文章! ╃(Chris-- 21:14:46 对. ╃(Chris-- 21:14:58 这些都是ir,nlp范畴的东西,呵呵 真神- 21:15:29 说到这里我想起电影《AI》里小机器人去游乐场问问题那一幕 ╃(Chris-- 21:15:32 所以说,搜索引擎是一项非常丰富的技术.会牵涉很多领域 ╃(Chris-- 21:15:45 下面我们继续 search engine 堕入凡间的雨- 21:16:05 如果库的文件不是很大,倒是为未来的电脑语音系统提供了很好的内容 农民 - Javen- 21:16:48 第三个部分内容: base- 21:16:52 如果语义分析解决了,不是领域问题,是对人类的一大贡献哦 ╃(Chris-- 21:17:13 索引建好之后,就是为了search 服务了. 通常流程是这样的,用户发出请求 <-> search engine<-> index server ╃(Chris-- 21:18:06 对于检索引擎,search engine,有以下关键问题: 1. 检索结果的排序问题,这个其实前面的page rank做了很多铺垫的 ╃(Chris-- 21:18:58 一些新的尝试,比如对用户偏好的分析之类的,都可以运用在这里,对不同偏好的用户采用不 同的排序策略 ╃(Chris-- 21:19:37 2.检索结果的排重问题,就是排除重复的结果.这个算法很重要,因为不仅是准确性的问题, 还有就是速度问题. ╃(Chris-- 21:20:06 3.检索结果的相似性分析问题,这个和上面的为那提比较类似. 主要用在 类似网页 里面 ╃(Chris-- 21:21:04 4.检索的速度问题.这个主要是靠前面的索引结构决定.当然,很多技术可以用来提升速度, 比如分布式cache ╃(Chris-- 21:21:23 大概就这么几个问题.. ╃(Chris-- 21:21:26 大家自由发言. wuyu- 21:21:52 能不能讲讲二次检索? crane- 21:22:06 感觉 问题 好象应该在入仓的时候就 该解决 crane- 21:22:15 感觉 排重问题 好象应该在入仓的时候就 该解决 ╃(Chris-- 21:22:27 二次检索很简单,其实就是和第一次检索的东西作一次and bill-过儿- 21:22:38 检索结果的排重问题,就是排除重复的结果.这个算法很重要, 这个要自己 开发 吗? ╃(Chris-- 21:22:48 对,排重的问题,很多会在入库的时候解决. wuyu- 21:22:50 但是二次检索对性能的影响?一般搜索引擎是怎么处理的? ╃(Chris-- 21:23:29 性能影响不大...对于优秀的搜索引擎来讲,一般的布尔表达式都不会是大问题 ╃(Chris-- 21:23:54 二次检索也只是为布尔表达式加了一个and ╃(Chris-- 21:24:09 排重当然要自己开发拉? wuyu- 21:24:44 "上一次的" AND 关键词),然后进行“全新”的检索? ╃(Chris-- 21:25:16 这只是一种实现方式, 就是这种方式,解决起来也是完全可行的.当然,有更好的方式,比如放到cache里,然后检索cache等. wuyu- 21:25:21 我晕死,呵呵,我还一直以为采用了某些手段,比如做了cache ╃(Chris-- 21:25:57 呵呵. 郁也风- 21:26:45 "上一次的" AND 关键词-it‘s like my method:) ╃(Chris-- 21:26:59 呵呵 wuyu- 21:27:07 我是关键数据库的检索时被人逮着问二次检索的,那家伙硬是把我用的trsserver提供全文和我业务后台管理时从关系数据库做检索混起来,非让我明白的告诉他支持不支持二次检索,是怎么支持的,晕啊 农民 - Javen- 21:27:11 大家还有问题吗? 要不今天暂时到这里? SS- 21:27:24 问个问题 SS- 21:27:35 比如刚才因为很多没有看到 ╃(Chris-- 21:27:42 wuyu,你这个问题必须放到cache里. 农民 - Javen- 21:27:43 chris 应该是比较累了。 呵呵 。 狂敲键盘一个半小时了。 KIKI- 21:27:44 急什么?? 都这么有热情劲儿 ╃(Chris-- 21:27:52 哈哈 JAVA神化- 21:27:58 SS- 21:27:59 比如我检索一个条件是 xx=123 and test=234 bill-过儿- 21:28:04 唉!我还没听够那! SS- 21:28:07 一般做法是不是分2次检索 JAVA神化- 21:28:09 charbee- 21:28:11 呵呵。我们要考虑怎么把技术变成实用。 crane- 21:28:19 一般的大型企业应用系统中,哪些地方可以用到Lucene呢 SS- 21:28:29 先检索出xx=123然后在结果集中test=234 ╃(Chris-- 21:28:39 ss,这个要看索引结构,如果索引结构好,不用两次检索,可以一次扫描就解决 wuyu- 21:28:40 我是含糊过的,反正我关系数据库的检索是根据我定义的Filter做了cache,而他们大量用 检索的时候是跑我trs server来检索的,懒得理他,呵呵 crane- 21:29:35 学了这么多,手痒痒,想用用,在哪里能用这些技术 charbee- 21:29:55 好呀。最好能有些效果可以看看 堕入凡间的雨- 21:30:04 资源系统里面较为常用 ╃(Chris-- 21:30:28 开发搜索引擎的时候,或者处理海量数据的时候. 堕入凡间的雨- 21:30:38 而且资源系统中的数据量一般也是比较大的 ╃(Chris-- 21:31:09 搜索引擎也会是将来的一个方向,专业化,个性化的搜索引擎 crane- 21:31:14 感觉 搜索引擎 是非常有钱途的东东 KIKI- 21:31:31 呵呵,没钱途誰学呀 wuyu- 21:31:49 我这边更多的应用是从关系数据库的数据导入全文库,然后再提供出来做检索。 不过有一个问题很烦,就是关系数据库(或是google的某个网页)做了变更、删除以后全 文库的同步问题? 1、是更新后立即刷新全文完成同步,还是通过定时任务进行同步? 2、如果是定时任务,是增量更新方式来完成同步,还是完全复制的同步? bill-过儿- 21:31:49 ╃(Chris-- 21:31:51 对,前段时间万网老总就做了一次秀,关于搜索引擎 crane- 21:32:01 以前是信息就是金钱,现在是信息太多,摘得出来才是金钱 阿古- 21:32:21 嗯 堕入凡间的雨- 21:32:27 还有个问题,如果使用存储过程,在查询速度上会有很大的提升,但是如果考虑跨平台的 使用,使用SQL语法有什么好的建议 SS- 21:32:50 要看是什么系统了 wuyu- 21:33:12 对于google来说,原始网站和全文库的不同步是可以允许的,但是对于小型应用来说,原 始关系数据库和全文库的不同步或是同步不及时,就是很难容忍的了,呜呜 SS- 21:33:16 我觉得这种核心思想应该是够用则可 ╃(Chris-- 21:33:28 小型应用,我觉得立即同步刷新就行了. SS- 21:33:28 就是说如果现有的速度够用,就不要用存储过程 堕入凡间的雨- 21:33:42 资源!应该是小学到高中的全部资源或者更多 SS- 21:33:52 如果不够,在需要的地方加,此时不用顾虑移植问题 wuyu- 21:34:26 基于事件触发的机制,在关系数据库完成更新操作后立即通知全文库做内容更新同步操作? ╃(Chris-- 21:34:39 对,小型应用应该这样 堕入凡间的雨- 21:35:24 这一步的更新是通过触发器来实现??? ╃(Chris-- 21:35:44 是触发机制,不是触发器 ╃(Chris-- 21:36:07 trigger比较局限 crane- 21:37:01 关于搜索引擎的未来,关于全球海量信息,会不会有这样的问题,就是计算机的性能发展比信息量增加的快,因为历史资料是有限的 ,新的文字资料要人工写的 对于文字的检索也许将来的性能不是问题?!?有没有这种可能 wuyu- 21:37:05 事件触发,我不一定是触发器的,可是是对一个数据实体做一个动作以后触发,或是完成一系列的动作,也就是完成一个业务处理以后做触发 SS- 21:37:14 不可能的 SS- 21:37:25 信息的发展是爆炸性的 SS- 21:37:49 这是指数级别的增长 crane- 21:37:51 爆炸 的信息文字谁来写,要人来写的 SS- 21:38:07 而计算机性能是倍数级的 SS- 21:38:13 很多信息不需要人工输入的 堕入凡间的雨- 21:38:14 解决问题的方式也是! bill-过儿- 21:38:23 可以发明说话转换成字阿 crane- 21:38:30 什么信息不需要人工输入呀 ╃(Chris-- 21:38:34 呵呵,这个也没有办法,你必须作出一个牺牲,it is a tradeoff. SS- 21:38:37 很多,比如统计数据 crane- 21:38:54 bill-过儿- 21:38:23 可以发明说话转换成字阿 哦,对 ,这样信息量就大了去了 SS- 21:39:16 还有比如探测器取得的信息 crane- 21:39:24 不过,同样面临着一个问题,一年内一个人说话是有限的 SS- 21:39:30 不一定是说话 ╃(Chris-- 21:39:31 今天的专题讲座到这结束吧. 我们下次再见.多谢各位的支持.希望matrix能有更多的高手加入进来.欢迎你们. crane- 21:39:33 那不是文字信息了,图形的 wuyu- 21:39:34 "内容"-;输出的,或者是他的“链接”是由js、flash等手段来控制的,这种时候,spider常见的处理机制?有没有简单入门的算法? SS- 21:39:46 图形 文字等等 crane- 21:39:52 晕,谈谈搜索引擎的未来吧 ╃(Chris-- 21:40:14 这个是html的分析问题,spider肯定有一个完整的html分析器.分析所有js,flash等,这个属于program层面的东西了.呵呵. crane- 21:40:18 技术,基础,历史,都讲了,最后要谈未来 然后收功的 堕入凡间的雨- 21:40:21 图形可以建立索引目录呀! ╃(Chris-- 21:40:28 哈哈,未来无限美好! ╃(Chris-- 21:40:31 收工! 冰云- 21:40:41 SS- 21:40:42 讲了2个小时了 crane- 21:40:45 谢谢 Chris SS- 21:40:45 不错 JAVA神化- 21:40:45 拓拔涛- 21:40:46 KIKI- 21:40:55 wuyu- 21:40:57 按sun的说法,网络就是计算机,搜索就是信息。 SS- 21:40:59 pppppppppppppppppp SS- 21:41:05 大家鼓掌 wuyu- 21:41:07 wuyu- 21:41:10 献花 ╃(Chris-- 21:41:11 太累,要不今晚接着把lucene的源码讲一遍,呵呵,下次吧. 堕入凡间的雨- 21:41:12 JAVA神化- 21:41:13 明天去报到 听说还要军训 5 农民 - Javen- 21:41:15 感谢 chris 的学识与努力,也感谢大家的支持! 今天晚上到此为止。 |
|