coursera课程 text retrieval and search engine 第一周 推荐。
NLP定义
帮组理解语言句子的含义
例子:a dog is chasing a boy on the playground.
语义理解的一些分析方面
- Lexical analysis:词汇分析,找到动词,形容词,名词等
- Syntactic analysis : 句法分析;找到词组,比如A DOG,即找到既定的结构
- Semantic analysis:语义分析,比如Dog代表什么
- Inference: 根据语义做推断,上述例子可以推断出一个可能,chasing可以知道这个男孩可能会害怕狗
- Pragmatic analysis:根据句法本身去推断为什么这样做,理解为什么有人这样描述,比如可能是想让某人把狗唤回来,以免男孩被狗伤着
Bag of words:保留所有的单词,重复的也会保留,但是不关心单词在生个句子中出现的顺序
文本获取的分类
- 类似搜索引擎的Pull模型:用户拥有主动权,它具有Ad hoc属性,就是说暂时性的需要,后续不再使用,比如搜索到某个关键字的文档后,这个关键字就不再被使用
查询和浏览的区别:查询是用户知道搜索什么,浏览是将内容放置供人查看,而不是查询
- 类似推荐系统的Push模型:系统拥有主动权,一个良好的推荐系统能够给用户推送它真正需要的信息
文本获取的方式
用户给定查询关键字在既有的数据集里头搜索出想要的结果以供浏览。也可以称作”Information Retrieve(IR)”,主要策略集中在 如何通过给定的关键字查到结果。 文本获取的方式一般有两种:
- 第一是 document selection,即根据某种函数f给查询q和文件d作用后的结果来分类,[f(q,d)=1 / 0],明确把文档分隔开,要么完全相关,要么完全不相关;
- 第二是 Ranking,它是计算相关性,并依次排列顺序,关键在于如何说明某个文件的相关性比另一个的相关性更大,当相关性大于某个阈值的时候就返回匹配的文件[ f(q,d)>THETA]
文本获取(Text Retrive TR)和DBA对比:TR的数据结构是非结构化的,语义存在歧异,也没有明确表明什么需要返回,因而返回的是相关文件;而DB是结构化的,语义明确,有完整的说明要返回什么,因而返回的是完全匹配的记录;TR更需要有经验的演变[用户来判别那个结果更好]而来查找结果
排序函数的分类
- Similarity-based models ,相似性 f(q,d) = similarity(q,d)
- Probabilistic models ,概率模型 f(d,q) = p(R=1| d,q) r between{0,1},假设查询关键字和文档都是随机变量R的观察结果,对于特定的文档,查询的文档定义分数为R等于1的概率
- probabilistic inference model 概率推断 f(d,q)=p(d->q) ;
- axiomatic model 查找一个rank函数能够满足给定的条件,即为结果
这几种类型有着共同的策略,一般来说有这么几种方式:
- terms frequency(TF) 出现的次数
- document length ,一般了说某个查询关键字在很长的文档里面出现很多的次数比在短文件里面出现次数多显得更无意义,从某种角度来讲,长文件出现的关键字本来就趋向于更多
- document frequency(DF) 即关键字在文档出现的次数占总共内容的比例,意在出现频率
向量空间模型简介[Vector space Model(VSM)]
它是一个框架,通过词(Term)向量的方式来代表一个 doc/query,每一个Term都可以是不同的概念,每一个又代表不同的维度,N term代表N维,对于一个Query vector来说,它可以表示为q=(x1,x2,x3…)每一个xi表示term的加权,Doc vector类似,因此查询和文档之间的关系可以相识于q,和d的相似性 relevance(q,d) 相似于 similarity(q,d) = f(q,d)