![f8f95fe0d9bfbc068a376e2652ec2a3f.png](https://i-blog.csdnimg.cn/blog_migrate/1e1ad13c3a356def5ae6d3ac8bd0179f.jpeg)
一、智能问答系统与推理
任务需求
人机对话的三个层次:闲聊、问答、对话
基于知识图谱的问答系统有两条路:
- 对用户的问题进行语义理解,一般用Semantic Parsing(语义分析),得到了一个句子的逻辑表示,根据逻辑表示再到知识库里去查
- 信息检索方法。假设这个知识库是完备的,从用户的问题中识别一个实体,然后以光实体为中心,进行广度搜索,把与他相关的词全部挖出来,然后计算相似度
eg:张三的小姨是谁?
![67bd556b4036928fe3d26d463b6ec325.png](https://i-blog.csdnimg.cn/blog_migrate/3741df19f2f048b4788143d98f4f46e0.png)
相似度计算:
- 提取关键词,词嵌入,计算距离
- 将知识库的一条知识用自然语言表征出来,然后与用户的问题计算相似性(微软小冰)
二、语义解析
为什么?
传统的信息检索:实体及属性提取→根据映射生成SQL查询语句
缺点:无推理功能,无法正确理解含有逻辑关联词的语句正
![f763aa274e6142869f6786a1b9d7b15f.png](https://i-blog.csdnimg.cn/blog_migrate/a03dce3950e60002e7d2b777e3b89a07.jpeg)
![373c58442bfbd98177af59d2f115796a.png](https://i-blog.csdnimg.cn/blog_migrate/9634b038a856502ac57d220221691cfc.jpeg)
第一步:实体提取,马铃薯它是一个实体,辣是属性
第二步:语义解析,马铃薯是MUST,就是它一定要也,这个辣就是MUST NOT就是一定没有这样的一层关系。
第三步:同义表达,马铃薯它也是土豆,所有土豆也是 MUST。
第四步:实体属性映射关系,生成SPARQL语句
Eg:土豆“和”西红柿“或者”豆角可以做什么不辣的菜?
实体及属性提取:土豆、西红柿、豆角、辣
生成逻辑表达式:土豆Λ(西红柿Ⅴ豆角)Λ(¬不辣)
生成查询语句:
SELECT ?dish
WHERE { ?dish hasNameIngredient:土豆, ?dish hasNameIngredient:西红柿} {?dish hasTaste ?taste.
FILTER (!regex(str(?taste),”辣”))}
UNION
SELECT ?dish
WHERE { ?dish hasNameIngredient:土豆, ?dish hasNameIngredient:豆角} {?dish hasTaste ?taste.
FILTER (!regex(str(?taste),”辣”))}
是什么?
![953be40fe29461c2a16ea7fc5ee7becf.png](https://i-blog.csdnimg.cn/blog_migrate/be566b256fc1da4991eac4b374e8a220.jpeg)
依存句法分析属于浅层句法分析。其实现过程相对简单。但是依存句法分析所能提供的信息也相对较少。深层文法句法分析可以提供丰富的句法和语义信息,但是采用的文法相对复杂,分析器的运行复 杂度也较高,这使得深层句法分析当前不适合处理大规模数据。短语结构句法分析介于依存 句法分析和深层文法句法分析之间。
句法结构:
词与词的组合构成句法结构。句法结构的基本类型有主谓、动宾、偏正、补充、联合五种。句法结构分析的任务:已知一个句子从左到右各词的词性,要反过来求出一棵满足要求的“句法结构树”
![e2384e91a5da90a9f9f25bf8d16ae373.png](https://i-blog.csdnimg.cn/blog_migrate/10a0c647bb151df8f94e34843c1f6de8.png)
文法:编译原理的中的一个概念。文法是用于描述语言的语法结构的形式规则。任何一种语言都有它自己的文法,不管它是机器语言还是自然语言。就像自然语言里有主谓宾这样的文法一样,机器语言也有描述它语言构成的特定文法
- N→ ND|D
- D→ 0|1
终结符:
终结符是一个形式语言的基本符号。就是说,它们能在一个形式语法的推导规则的输入或输出字符串存在,而且它们不能被分解成更小的单位。确切地说,一个语法的规则不能改变终结符。例如说,下面的语法有两个规则:
x -> xa
x -> ax
在这种语法之中,a是一个终结符,因为没有规则可以把a变成别的符号。不过,有两个规则可以把x变成别的符号,所以x是非终结符。一个形式语法所推导的形式语言必须完全由终结符构成。
非终结符: 不是终结符的都是非终结符。非终结符可理解为一个可拆分元素,而终结符是不可拆分的最小元素。
开始符号:为非终结符,又称为识别符号, 常用S表示。
产生式:定义符号串之间关系的一组规则, 形如A→ α,文法规则是产生式, 产生式不一定是文法规则。
推导:由文法开始符号开始推导, 用产生式的右部取代产生式的左部, 直到推到终结符号为止。
规约:规约是句子通过文法规则将产生式的左部取代右部, 直到规约到非中介符为止。
三、短语结构句法分析
- Chomsky将文法定义为四元组 G=(VN,VT,R,S) 其中VN表示非终结符的集合,VT表示终结符的集合,R表示产生式的有穷集合,S表示开始符号。 文法具体又可以分为0型文法,1型文法, 2型文法,3型文法。V=VN∪VT
2型文法:R中的产生式具有形式A⟶β ,其中A∈VN,β∈V*
2型文法称为上下文无关文法,记作CFG(Context-Free Grammar)
- 基于PCFG的句法分析
PCFG是上下文无关文法的扩展,是一种生成式的为方法,其文法定义为五元组 G=(VN,VT,R,S,P),P代表每个产生规则的统计概率
从同一个词性序列出发,可能会构建出不同的句法结构树。
例如:“动词+形容词+名词”,我们有两种构建句法结构树的方案:
![ce45f35297ea81caa6aaa7c0cd44c222.png](https://i-blog.csdnimg.cn/blog_migrate/14780262b45c1fc4a3306ba952439d54.png)
造一个句子“踢破皮球”,两种句法结构都是成立的,于是出现了歧义:把皮球踢破了(结构和“点亮蜡烛”一致),或者是,踢一个破的皮球(结构和“踢新皮球”一致)
在生成规则中添加限制条件,便得到了基于规则的句法分析器
![a27d632831480ca1bbcdb1e4864ecdd0.png](https://i-blog.csdnimg.cn/blog_migrate/44357897c379cc086c25b1309c0a092b.jpeg)
![cf7d714ba5efae6dddb1fce6df2314cc.png](https://i-blog.csdnimg.cn/blog_migrate/8bf5a34787ef1934af42c863c9d8b3f1.jpeg)
![e2c4b4c475fd3a5e6ce929e4a8a4e753.png](https://i-blog.csdnimg.cn/blog_migrate/7734313bdb792497fa48dcd6fe3cbb88.jpeg)
- 实践工具:Stanford Parser
- 缺点:虽然基于PCFG的句法分析器的实现比较简单,但是这类分析器的性能并不能让人满意。主要原因在于一条文法规则的选择只与该规则左侧的非终结符有关,而与任何其它上下文信息无关。文法中缺乏其它信息用于规则选择的消歧
四、组合范畴文法(CCG)
- 范畴文法:一种用数学方法构造的、描述自然语言的句法理论,它从生成的角度对句子的形式进行演算。带有语义类型的范畴能够将句法和语义紧密结合在一起,十分适合进行语义解析
- CCG属于短语结构文法。CCG 的基本操作包括:1)原子范畴,用于表达基本的词汇类别和句法功能; 2)组合范畴,由原子范畴构成,通常用 X/Y 或 XY 来表示可以向左或者向右寻找变元 Y 来获得组合 X
- 组合范畴是高度词例化的文法,大量的词项组成CCG的词典,如下所示
![9ccf151f993454e7c5ed71584abaa107.png](https://i-blog.csdnimg.cn/blog_migrate/dbc2c58a82a108b6fc8cffc85870dbea.png)
- 组合规则:组合范畴使用少量的组合规则对句子进行句法解析和语义解析
![285c8ffa66a69d0281e8ce96b86922f8.png](https://i-blog.csdnimg.cn/blog_migrate/9716b9e9d945c6e9bdc52c092eadab42.png)
- 利用CCG进行高效的句法分析是当前自然语言处理的重要领域之一。在国外已经取得了一定的研究成果。然而在国内还是一大难题。相较于一般的上下文无关文法,组合范畴文法的的句法分析要困难的多。主要原因在于
- 非终结符和句法规则要远大于CFG
- 起步较晚,主要是用规则和模板的方式来构建解析器,主要应用于数据库的自然语言接口和指令解释领域
- 利用CCG进行句法分析需要CCG词典,英文词典已经比较完善,而中文词典的构建难度较大,特别是在歧义的处理
五、基于深度学习的句法分析
传统方法的特征表示主要采用人工定义原子特征和特征组合,而深度学习则把原子特征进行向量化,在利用多层神经元网络提取特征。把词、词性、类别标签等原子特征表示为向量,然后利用多层网络进行特征提取。
深度学习在特征表示方面有如下优点:只需要原子特征。这些原子特征以前是通 过人工的自由组合形成最终的一元特征、二元特征、三元特征、四元特征甚至更多元的组合。但是事实上我们不知道怎么组合能形成最佳的特征集合。
![6cab77e106be2f2c2fccbb42d7c0ddc8.png](https://i-blog.csdnimg.cn/blog_migrate/9d3bb7ebbb0fcba45d6eec1a079c2a6c.jpeg)