第1篇 基础篇 3
第1章 什么是Perl 3
1.1 Perl是什么 3
1.2 为什么要学习Perl 3
1.3 搭建Perl语言的运行环境 4
1.4 书写Perl代码的编辑器 8
1.5 “Hello World!”——我的第一个Perl程序 8
第2章 Perl语言基础 11
2.1 变量 11
2.1.1 什么是变量 11
2.1.2 Perl的变量类型 12
2.1.3 简单变量 12
2.1.4 字符串中的转义字符 13
2.1.5 简单变量的操作符 14
2.1.6 简单变量是数值还是字符串 18
2.2 Perl语言文法 19
2.2.1 条件语句 20
2.2.2 循环语句 22
2.2.3 在循环体中使用last和next 24
第3章 数组、哈希、文件与函数 27
3.1 数组 27
3.1.1 什么是数组 27
3.1.2 数组赋值 28
3.1.3 数组常用操作 30
3.1.4 数组常用函数 34
3.1.5 数组操作实例 36
3.2 哈希 37
3.2.1 什么是哈希 37
3.2.2 哈希赋值 39
3.2.3 哈希常用操作 40
3.2.4 哈希常用函数 43
3.2.5 哈希操作实例 44
3.3 文件 45
3.3.1 文件操作一般步骤 45
3.3.2 打开文件 46
3.3.3 关闭文件 46
3.3.4 读取文件 47
3.3.5 写入文件 49
3.3.6 获取文件状态 50
3.3.7 文件和目录的相关操作 51
3.4 函数 52
3.4.1 什么是函数 52
3.4.2 函数的定义 54
3.4.3 函数的调用 54
3.4.4 变量的作用范围 55
3.4.5 参数的使用 58
3.4.6 函数的返回值 59
第4章 用Perl语言实现几个简单任务 61
4.1 统计文件词频 61
4.2 合并两个词表 63
4.3 求两个词表的交集 64
4.4 查词表 65
4.5 汉语分词 66
第2篇 提高篇 73
第5章 正则表达式 73
5.1 什么是正则表达式 73
5.2 正则表达式语法符号 74
5.2.1 指定字符的集合符号 75
5.2.2 字符范围转义符号 79
5.2.3 字符出现次数符号 80
5.2.4 锚点符号 82
5.2.5 其他符号 83
5.2.6 几个开关项 84
5.2.7 字符串的替换操作 86
5.2.8 常用的正则表达式语法符号及正则表达式 88
5.3 用正则表达式解决问题 90
5.3.1 判断子串是否存在 90
5.3.2 提取子串 91
5.3.3 字符串加工 93
5.4 典型文件格式处理 93
5.4.1 查词表 93
5.4.2 HTML与XML格式 95
5.4.3 标注语料库 97
第6章 引用 100
6.1 数据结构与编程 100
6.2 什么是引用 101
6.2.1 引用的概念 101
6.2.2 取得引用 101
6.2.3 通过引用访问数据 103
6.3 使用引用构造复杂数据结构 105
6.3.1 值为数组的数组 105
6.3.2 值为哈希的哈希 108
6.3.3 值为数组的哈希 108
6.3.4 混合数据结构 110
6.4 使用复杂数据结构封装数据 111
6.4.1 使用复杂数据结构查词表 111
6.4.2 使用复杂数据结构统计词性 113
第7章 几个典型NLP任务的实现 115
7.1 合并两个词表 115
7.2 从英汉词表生成汉英词表 119
7.3 统计词性语料库 121
7.4 拼音标注语料库统计 123
第3篇 应用篇 129
第8章 语料处理 129
8.1 语料批处理 129
8.1.1 利用@ARGV接收程序运行参数 129
8.1.2 标准输入输出及其重新设置 130
8.1.3 制作批处理的Perl代码 131
8.2 Unicode编程 135
8.2.1 Perl内部字符串的两种形式 136
8.2.2 UTF8字符流处理 138
8.2.3 编码转换 139
8.2.4 Perl Unicode编程常见问题处理 140
8.3 Unicode编程实例 142
8.3.1 GB2312、UTF8相互转化 142
8.3.2 中文语料断字处理及字频统计 142
8.3.3 实现语料断句处理 143
8.3.4 提取复合语言模式的语料 144
8.3.5 汉语分词 145
第9章 语料采集与数据库管理 147
9.1 Perl语言扩展模块 147
9.2 安装扩展模块 148
9.3 使用网络扩展模块自动下载文件和页面 149
9.4 抽取页面内信息 150
9.5 数据库管理 152
9.5.1 ODBC接口 153
9.5.2 DBI接口 154
第10章 综合应用——音字转换 157
10.1 音字转换方法 157
10.1.1 问题表示 157
10.1.2 计算候选路径的分值 158
10.1.3 寻找最优路径 160
10.2 训练模型参数 162
10.2.1 思路 162
10.2.2 在大规模语料中统计BiCount 163
10.2.3 建立索引数据 167
10.3 动态规划算法 170