CMU 11642 的课程笔记。这一篇概括了用户信息需求的分类、查询语句的结构以及查询的前期处理过程(非结构化的查询语句->结构化的查询语句)。
Query type
- Informational(39%)
像 iphones 之类,用户想了解一个 topic。 - Transactional(36%)
像购物、买机票之类,用户想找个网站进行交易,但是并没有特定的 destination. - Navigational(25%)
像 CMU 网站之类的,用户有一个特定的想要浏览的 location/destination
Query language
一条标准的 query 分为 3 部分。
- Source of information: fields, XML elements, metadata
- Query operators: AND, OR, NEAR/n, …
- Rules: 怎样使用这些 operators (顺序、权重等)
每一条 query 都会被转化成一个结构化的查询语句。
Query operators
|
|
Query Processing
查询处理,这里最常用的是 #NEAR 和 #SYNONYM,对于一些词组(phrases),搜索引擎会用 #NEAR 进行规范化,如
对于一些缩写,或者拼写错误,一般会用 #SYNONYM 进行调整,如
Query Reformulation
Sequential-Dependency Models(SDM) 会将非结构化的查询转化成结构化的查询语句,一个 SDM query 分为三部分:
- Bag of words matches
作用是保证能找到东西。eg. #AND(q1,q2…qn) - N-gram matches (ordered,phrase-like)
给匹配的 n-gram 提供了额外的权重。eg. #NEAR/1(q1,q2) #NEAR/1(q2,q3)…#NEAR/1(qn-1,qn) - Short window matches (unordered, sentence-like)
给匹配的窗口提供了额外的权重。eg. #WINDOW/8(q1,q2)…#WINDOW/8(qn-1,qn)
Eg.
Perl 代码:
另外常用的模型还有 query expansion