概述
在query意图分析中,lexparser一种基于规则的词法分析工具,用于检查输入是否符合指定的模式。在需求前期,只需要一些运营数据和规则,就能够快速满足头部query的需求。
组成
模式(pattern)
pattern用来描述指定的模式,例如可以认为 [D:novel][D:author]出版时间
是一类匹配小说出版时间的模式,[D:novel]原文
是一类匹配小说内容的模式。pattern由以下几种语法组成:
- D语法,表示完全匹配。
- W语法, 表示通配符, 例如 [D:novel][W:1-12] 表示在精准匹配到novel后允许有1-12个字节可以不用理会。
- 固定词,例如上述pattern中的’出版时间’。
- 停用词, 例如query=天空八部在哪下载, ‘在哪’这个词对意图无影响,视为可以忽略的词,也成为停用词。
数据
从上述几种语法,可以推断通常来说包含以下三类数据配置:
- 记录有哪些pattern的pattern文件
# 每一行格式: pattern \t 属性
[D:novel][D:author]下载 1001
[D:entity] 1002
- 记录具体pattern词的dict文件
[D:novel]
天龙八部 1008
天龙人
仙剑奇缘
[D:entity]
天蚕土豆大主宰
天蚕土豆武动乾坤
[D:author]
天蚕土豆
唐家三少
- 记录停用词的ignore文件
怎么样
在哪
基本原理
两棵树:
- 所有pattern组成的pattern树
- 所有pattern词、可忽略词、固定词组成的词典树