自然语言在语法、语义和语用三个平面上的结构统称为语言结构,通过计算得到语言结构是自然语言理解的核心任务。语言结构计算可以泛化为识别语言单元和建立语言单元之间的关系、为语言单元和关系赋予属性的过程。本书利用网格结构分析语言单元和关系,通过键值方式对其属性进行描述和计算,采用数据表解析不同类型的知识,借助有限状态自动机剖析语言的具体应用场景。这种基于网格的自然语言结构分析框架(Grid based Parsing Framework,GPF)具有良好的包容性,通过可编程的脚本和数据交换标准接口,融合了深度学习的参数计算和基于符号的知识计算。GPF为自然语言处理研究和应用提供了新的研究思路和计算框架。
本书适合专业为自然语言处理、计算语言学以及与语言学本体研究有关的学生当作教材,也可以作为高等院校人工智能、信息科学研究、大数据分析等相关专业的参考书。同时,本书也适合对语料库建设与应用感兴趣的人员阅读。
“自然语言结构计算”系列图书
语言| 技术| 算法| 融合 |创新
一、整体亮点
稀缺性:
本书的内容覆盖了基于知识的自然语言处理理论、技术和应用。
专业性:
作者为国内高等院校学者、北京语言大学信息科学学院院长、语言智能研究院院长。
实用性:
本书的GPF是一种灵活实用的可编程的语言分析框架,可用于自然语言处理方向的学习、研究和应用。
原创性:
本书是作者30多年工作、科研、学习中的新思考与新实践的智慧结晶。
二、内容特色
1.知识性
本书涉及自然语言如何处理的技能,涵盖了语义结构分析多项新技术。
2.丰富性
本书系统地介绍了语言分析、构建与使用的各个环节。
3.系统性
本书从如何语义分析入手,涉及了语义意合图的理论建设与使用方法。
荀恩东
教授,博士生导师,博士毕业于哈尔滨工业大学,先后在微软亚洲研究院、香港科技大学工作,现任北京语言大学信息科学学院院长、语言智能研究院院长。
研究领域为自然语言处理和语言教育技术。近年来,主持多项“国家高技术研究发展计划”(简称863计划)、国家社会科学基金项目和国家自然科学基金项目,承担多项公司合作的项目,发表文章70余篇。主要研究内容为汉语语义计算和语言教育技术。
主持开发了北京语言大学语料库中心( BCC)语料库和国际中文智慧教学平台。提出了汉语语义分析的意合图理论和构建方法,带领团队揭榜工信部人工智能重大攻关任务,在包括专利等多个领域开展汉语语义理解落地应用工作。
目录
第 1章 自然语言处理概述
1.1 自然语言处理 002
1.1.1 自然语言处理是认知智能的核心 002
1.1.2 自然语言理解的本质是语言结构分析 003
1.1.3 自然语言理解的挑战 005
1.2 语言结构 007
1.2.1 语言结构的基本单元 007
1.2.2 基本单元之间的关系 008
1.3 语言结构分析 011
1.3.1 语言结构的形式化 012
1.3.2 语言结构分析的内容 012
1.3.3 语言结构分析知识 014
1.3.4 语言结构分析策略 017
1.4 基于网格的自然语言结构分析框架——GPF 020
1.4.1 GPF的设计思想 020
1.4.2 GPF的主要应用 024
第 2章 GPF总体设计
2.1 GPF分析框架 028
2.1.1 GPF功能部件 029
2.1.2 GPF工作模式 034
2.1.3 GPF编程体系 035
2.2 GPF属性计算 037
2.2.1 语言结构的属性 037
2.2.2 属性的形式化及计算 038
2.2.3 属性的应用 043
第3章 GPF网格
3.1 概述 048
3.1.1 网格计算结构 048
3.1.2 主要功能 049
3.1.3 网格的形式结构 050
3.1.4 网格与属性 051
3.2 网格单元 051
3.2.1 网格单元的类型 051
3.2.2 网格单元的属性 052
3.3 网格单元之间的关系 060
3.3.1 网格单元之间关系的类型 061
3.3.2 网格单元之间关系的属性 062
第4章 GPF网格计算
4.1 输入输出 064
4.1.1 输入 064
4.1.2 输出 066
4.2 网格单元计算 078
4.2.1 添加网格单元 078
4.2.2 获取网格单元 089
4.3 网格单元属性计算 095
4.3.1 添加网格单元属性 095
4.3.2 获取网格单元属性 096
4.3.3 测试网格单元属性 099
4.4 网格单元关系计算 101
4.4.1 增加网格单元关系 101
4.4.2 增加关系属性 102
4.4.3 判断关系属性 103
第5章 GPF数据表
5.1 概述 109
5.1.1 格式定义 109
5.1.2 术语与定义 109
5.2 数据表类型 111
5.2.1 描述型数据表 111
5.2.2 关系型数据表 114
5.3 数据表相关的API函数 116
5.3.1 字符串操作(GetPrefix和GetSuffix) 116
5.3.2 创建单元(Segment) 119
5.3.3 构建关系(Relate) 122
5.3.4 提供属性(SetLexicon) 131
5.3.5 数据表测试函数(IsTable) 133
5.3.6 数据项获取函数(GetTableItems) 134
5.3.7 数据项属性获取函数(GetTableItemKVs) 135
5.4 数据表在属性计算中的应用 137
5.4.1 数据表用于“键值对”中 137
5.4.2 数据表用于键值表达式中 139
第6章 GPF有限状态自动机
6.1 概述 142
6.1.1 形式化定义 142
6.1.2 主要功能 144
6.2 FSA文法 144
6.2.1 FSA脚本 144
6.2.2 FSA文法规定 146
6.2.3 文法编译 149
6.3 FSA 运行机制 150
6.3.1 配置 150
6.3.2 匹配入口节点 158
6.3.3 前后双向匹配 160
6.3.4 执行操作 160
6.4 FSA应用 162
6.4.1 RunFSA算法过程 162
6.4.2 FSA应用示例 163
第7章 GPF数据接口
7.1 初始语言结构的数据源 168
7.1.1 离线形式的本地数据 168
7.1.2 在线形式的第三方服务 169
7.2 初始语言结构类型及数据接口 170
7.2.1 初始语言结构类型 170
7.2.2 初始语言结构数据接口 170
7.2.3 几种典型结构的数据接口 172
7.3 初始语言结构在网格中的表示 178
7.3.1 分词结构 178
7.3.2 组块结构 182
7.3.3 短语结构树 185
7.3.4 词依存结构 191
7.3.5 组块依存结构 196
7.3.6 带有分词的组块依存结构 200
第8章 GPF应用
8.1 GPF的配置 206
8.2 GPF的索引 207
8.2.1 索引数据表 207
8.2.2 索引有限状态自动机 208
8.3 GPF的运行 209
8.3.1 本地运行 211
8.3.2 网络服务 213
8.3.3 GPF输出 214
8.4 GPF的应用 214
8.4.1 短语识别 215
8.4.2 词义消歧 217
8.4.3 离合词识别 220
第9章 GPF的API函数
9.1 GPF功能操作类API函数 227
9.1.1 SetText 227
9.1.2 AddStructure (JSON) 227
9.1.3 CallService 229
9.1.4 Segment 229
9.1.5 SetLexicon 230
9.1.6 Relate 230
9.1.7 GetSuffix 230
9.1.8 GetPrefix 231
9.1.9 RunFSA 231
9.1.10 GetParam 231
9.1.11 GB2UTF8 232
9.1.12 UTF82GB 232
9.1.13 cjson.decode 232
9.1.14 cjson.encode 233
9.2 GPF获取类API函数 233
9.2.1 GetGrid 233
9.2.2 GetText 233
9.2.3 GetGridKVs 234
9.2.4 GetLog 235
9.2.5 GetUnit 235
9.2.6 GetUnits 235
9.2.7 GetUnitKVs 236
9.2.8 GetRelations 237
9.2.9 GetRelationKVs 238
9.2.10 GetTableItems 239
9.2.11 GetTableItemKVs 239
9.2.12 GetFSANode 240
9.3 GPF添加类API函数 241
9.3.1 AddUnit 241
9.3.2 Reduce 242
9.3.3 AddUnitKV 242
9.3.4 AddGridKV 242
9.3.5 AddRelation 243
9.3.6 AddRelationKV 243
9.4 GPF测试类API函数 244
9.4.1 IsUnit 244
9.4.2 IsRelation 244
9.4.3 IsTable 244
参考文献 247