《Python和NLTK自然语言处理》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(印)尼天·哈登尼亚(Nitin Hardeniya),雅各布·帕金斯
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2019
  • ISBN:9787115503343
  • 页数:622 页
图书介绍:本书是一本运用NLTK和其他Python库构建专业NLP和机器学习项目的学习指南。本书共分为三部分。第一部分是NLTK基本模块,重点是如何创建文本分割器和解析器。第二部分介绍一些简单的文本处理方法和语言处理的基本技术。第三部分将会带领读者去实现自己的NLP项目。

模块1 NLTK基础知识 3

第1章 自然语言处理简介 3

1.1为什么要学习NLP 4

1.2从Python的基本知识开始 7

1.2.1列表 7

1.2.2自助 8

1.2.3正则表达式 9

1.2.4词典 11

1.2.5编写函数 11

1.3 NLTK 13

1.4试一试 18

1.5本章小结 18

第2章 文本的整理和清洗 19

2.1文本整理 19

2.2文本清洗 21

2.3句子拆分器 22

2.4标记解析 22

2.5词干提取 24

2.6词形还原 25

2.7停用词删除 26

2.8生僻字删除 27

2.9拼写校正 27

2.10试一试 28

2.11本章小结 28

第3章 词性标注 30

3.1什么是词性标注 30

3.1.1斯坦福标注器 33

3.1.2深入了解标注器 34

3.1.3序列标注器 35

3.1.4布里尔标注器 37

3.1.5基于标注器的机器学习 37

3.2命名实体识别 38

3.3试一试 40

3.4本章小结 41

第4章 对文本的结构进行语法分析 42

4.1浅层语法分析与深层语法分析 42

4.2语法分析的两种方法 43

4.3为什么需要语法分析 43

4.4不同类型的语法分析器 45

4.4.1递归下降的语法分析器 45

4.4.2移位归约语法分析器 45

4.4.3图表语法分析器 45

4.4.4正则表达式语法分析器 46

4.5依存分析 47

4.6组块化 49

4.7信息抽取 51

4.7.1命名实体识别 52

4.7.2关系抽取 52

4.8本章小结 53

第5章 NLP应用 54

5.1构建第一个NLP应用 54

5.2其他的NLP应用 58

5.2.1机器翻译 58

5.2.2统计机器翻译 59

5.2.3信息检索 59

5.2.4语音识别 61

5.2.5文本分类 62

5.2.6信息提取 63

5.2.7问答系统 64

5.2.8对话系统 64

5.2.9词义消歧 64

5.2.10主题建模 64

5.2.11语言检测 65

5.2.12光学字符识别 65

5.3本章小结 65

第6章 文本分类 66

6.1机器学习 67

6.2文本分类 68

6.3采样 70

6.3.1朴素贝叶斯 73

6.3.2决策树 75

6.3.3随机梯度下降 76

6.3.4逻辑回归 77

6.3.5支持向量机 78

6.4随机森林算法 79

6.5文本聚类 79

6.6文本的主题建模 81

6.7参考资料 83

6.8本章小结 83

第7章 网络爬取 85

7.1网络爬虫 85

7.2编写第一个爬虫程序 86

7.3 Scrapy中的数据流 89

7.3.1 Scrapy命令行界面 89

7.3.2项 94

7.4站点地图蜘蛛 96

7.5项管道 97

7.6外部参考 98

7.7本章小结 99

第8章 与其他Python库一同使用NLTK 100

8.1 NumPy 100

8.1.1 ndarray 101

8.1.2基本操作 102

8.1.3从数组中提取数据 103

8.1.4复杂的矩阵运算 103

8.2 SciPy 107

8.2.1线性代数 108

8.2.2特征值和特征向量 108

8.2.3稀疏矩阵 109

8.2.4优化 110

8.3 Pandas 111

8.3.1读取数据 112

8.3.2时序数据 114

8.3.3列转换 115

8.3.4噪声数据 116

8.4 Matplotlib 117

8.4.1 subplot 118

8.4.2添加轴 119

8.4.3散点图 120

8.4.4柱状图 120

8.4.5 3D图 121

8.5外部参考 121

8.6本章小结 121

第9章 使用Python进行社交媒体挖掘 122

9.1数据收集 122

9.2数据提取 126

9.3地理可视化 128

9.3.1影响者检测 129

9.3.2 Facebook 130

9.3.3影响者的朋友 134

9.4本章小结 135

第10章 大规模的文本挖掘 136

10.1在Hadoop上使用Python的不同方法 136

10.1.1 Python的流 137

10.1.2 Hive/Pig UDF 137

10.1.3流包装器 137

10.2在Hadoop上运行NLTK 138

10.2.1 UDF 138

10.2.2 Python流 140

10.3在Hadoop上运行scikit-learn 141

10.4 PySpark 144

10.5本章小结 146

模块2使用Python 3的NLTK 3进行文本处理 146

第1章 标记文本和WordNet的基础 149

1.1引言 149

1.2将文本标记成句子 150

1.2.1准备工作 150

1.2.2工作方式 151

1.2.3工作原理 151

1.2.4更多信息 151

1.2.5请参阅 152

1.3将句子标记成单词 152

1.3.1工作方式 152

1.3.2工作原理 153

1.3.3更多信息 153

1.3.4请参阅 154

1.4使用正则表达式标记语句 154

1.4.1准备工作 155

1.4.2工作方式 155

1.4.3工作原理 155

1.4.4更多信息 155

1.4.5请参阅 156

1.5训练语句标记生成器 156

1.5.1准备工作 156

1.5.2工作方式 156

1.5.3工作原理 157

1.5.4更多信息 158

1.5.5请参阅 158

1.6在已标记的语句中过滤停用词 158

1.6.1准备工作 158

1.6.2工作方式 159

1.6.3工作原理 159

1.6.4更多信息 159

1.6.5请参阅 160

1.7查找WordNet中单词的Synset 160

1.7.1准备工作 160

1.7.2工作方式 160

1.7.3工作原理 161

1.7.4更多信息 161

1.7.5请参阅 163

1.8在WordNet中查找词元和同义词 163

1.8.1工作方式 163

1.8.2工作原理 163

1.8.3更多信息 163

1.8.4请参阅 165

1.9计算WordNet和Synset的相似度 165

1.9.1工作方式 165

1.9.2工作原理 165

1.9.3更多信息 166

1.9.4请参阅 167

1.10发现单词搭配 167

1.10.1准备工作 167

1.10.2工作方式 167

1.10.3工作原理 168

1.10.4更多信息 168

1.10.5请参阅 169

第2章 替换和校正单词 170

2.1引言 170

2.2词干提取 170

2.2.1工作方式 171

2.2.2工作原理 171

2.2.3更多信息 171

2.2.4请参阅 173

2.3使用WordNet进行词形还原 173

2.3.1准备工作 173

2.3.2工作方式 173

2.3.3工作原理 174

2.3.4更多信息 174

2.3.5请参阅 175

2.4基于匹配的正则表达式替换单词 175

2.4.1准备工作 175

2.4.2工作方式 175

2.4.3工作原理 176

2.4.4更多信息 177

2.4.5请参阅 177

2.5移除重复字符 177

2.5.1准备工作 177

2.5.2工作方式 178

2.5.3工作原理 178

2.5.4更多信息 179

2.5.5请参阅 179

2.6使用Enchant进行拼写校正 180

2.6.1准备工作 180

2.6.2工作方式 180

2.6.3工作原理 181

2.6.4更多信息 181

2.6.5请参阅 183

2.7替换同义词 183

2.7.1准备工作 183

2.7.2工作方式 183

2.7.3工作原理 184

2.7.4更多信息 184

2.7.5请参阅 185

2.8使用反义词替换否定形式 186

2.8.1工作方式 186

2.8.2工作原理 187

2.8.3更多信息 187

2.8.4请参阅 188

第3章 创建语料库 189

3.1引言 189

3.2建立自定义语料库 190

3.2.1准备工作 190

3.2.2工作方式 190

3.2.3工作原理 191

3.2.4更多信息 192

3.2.5请参阅 192

3.3创建词汇表语料库 192

3.3.1准备工作 192

3.3.2工作方式 193

3.3.3工作原理 193

3.3.4更多信息 194

3.3.5请参阅 194

3.4创建已标记词性单词的语料库 195

3.4.1准备工作 195

3.4.2工作方式 195

3.4.3工作原理 196

3.4.4更多信息 196

3.4.5请参阅 199

3.5创建已组块短语的语料库 199

3.5.1准备工作 199

3.5.2工作方式 199

3.5.3工作原理 201

3.5.4更多信息 201

3.5.5请参阅 203

3.6创建已分类文本的语料库 203

3.6.1准备工作 204

3.6.2工作方式 204

3.6.3工作原理 204

3.6.4更多信息 205

3.6.5请参阅 206

3.7创建已分类组块语料库读取器 206

3.7.1准备工作 206

3.7.2工作方式 207

3.7.3工作原理 208

3.7.4更多信息 209

3.7.5请参阅 213

3.8懒惰语料库加载 213

3.8.1工作方式 213

3.8.2工作原理 214

3.8.3更多信息 214

3.9创建自定义语料库视图 215

3.9.1工作方式 215

3.9.2工作原理 216

3.9.3更多信息 217

3.9.4请参阅 218

3.10创建基于MongoDB的语料库读取器 218

3.10.1准备工作 219

3.10.2工作方式 219

3.10.3工作原理 220

3.10.4更多信息 221

3.10.5请参阅 221

3.11在加锁文件的情况下编辑语料库 221

3.11.1准备工作 221

3.11.2工作方式 221

3.11.3工作原理 222

第4章 词性标注 224

4.1引言 224

4.2默认标注 225

4.2.1准备工作 225

4.2.2工作方式 225

4.2.3工作原理 226

4.2.4更多信息 227

4.2.5请参阅 228

4.3训练一元组词性标注器 228

4.3.1工作方式 228

4.3.2工作原理 229

4.3.3更多信息 230

4.3.4请参阅 231

4.4回退标注的组合标注器 231

4.4.1工作方式 231

4.4.2工作原理 232

4.4.3更多信息 232

4.4.4请参阅 233

4.5训练和组合N元标注器 233

4.5.1准备工作 233

4.5.2工作方式 233

4.5.3工作原理 234

4.5.4更多信息 235

4.5.5请参阅 236

4.6创建似然单词标签的模型 236

4.6.1工作方式 236

4.6.2工作原理 237

4.6.3更多信息 237

4.6.4请参阅 238

4.7使用正则表达式标注 238

4.7.1准备工作 238

4.7.2工作方式 238

4.7.3工作原理 239

4.7.4更多信息 239

4.7.5请参阅 239

4.8词缀标签 239

4.8.1工作方式 239

4.8.2工作原理 240

4.8.3更多信息 240

4.8.4请参阅 241

4.9训练布里尔标注器 241

4.9.1工作方式 241

4.9.2工作原理 242

4.9.3更多信息 243

4.9.4请参阅 244

4.10训练TnT标注器 244

4.10.1工作方式 244

4.10.2工作原理 244

4.10.3更多信息 245

4.10.4请参阅 246

4.11使用WordNet进行标注 246

4.11.1准备工作 246

4.11.2工作方式 247

4.11.3工作原理 248

4.11.4请参阅 248

4.12标注专有名词 248

4.12.1工作方式 248

4.12.2工作原理 249

4.12.3请参阅 249

4.13基于分类器的标注 249

4.13.1工作方式 250

4.13.2工作原理 250

4.13.3更多信息 251

4.13.4请参阅 252

4.14使用NLTK训练器训练标注器 253

4.14.1工作方式 253

4.14.2工作原理 254

4.14.3更多信息 258

4.14.4请参阅 260

第5章 提取组块 261

5.1引言 261

5.2使用正则表达式组块和隔断 262

5.2.1准备工作 262

5.2.2工作方式 262

5.2.3工作原理 263

5.2.4更多信息 265

5.2.5请参阅 267

5.3使用正则表达式合并和拆分组块 267

5.3.1工作方式 267

5.3.2工作原理 269

5.3.3更多信息 270

5.3.4请参阅 271

5.4使用正则表达式扩展和删除组块 271

5.4.1工作方式 271

5.4.2工作原理 272

5.4.3更多信息 273

5.4.4请参阅 273

5.5使用正则表达式进行部分解析 273

5.5.1工作方式 273

5.5.2工作原理 274

5.5.3更多信息 275

5.5.4请参阅 276

5.6训练基于标注器的组块器 276

5.6.1工作方式 276

5.6.2工作原理 277

5.6.3更多信息 278

5.6.4请参阅 279

5.7基于分类的分块 279

5.7.1工作方式 279

5.7.2工作原理 282

5.7.3更多信息 282

5.7.4请参阅 283

5.8提取命名实体 283

5.8.1工作方式 283

5.8.2工作原理 284

5.8.3更多信息 284

5.8.4请参阅 285

5.9提取专有名词组块 285

5.9.1工作方式 286

5.9.2工作原理 286

5.9.3更多信息 286

5.10提取部位组块 287

5.10.1工作方式 288

5.10.2工作原理 290

5.10.3更多信息 290

5.10.4请参阅 290

5.11训练命名实体组块器 290

5.11.1工作方式 290

5.11.2工作原理 292

5.11.3更多信息 292

5.11.4请参阅 293

5.12使用NLTK训练器训练组块器 293

5.12.1工作方式 293

5.12.2工作原理 294

5.12.3更多信息 295

5.12.4请参阅 299

第6章 转换组块与树 300

6.1引言 300

6.2过滤句子中无意义的单词 301

6.2.1准备工作 301

6.2.2工作方式 301

6.2.3工作原理 302

6.2.4更多信息 302

6.2.5请参阅 303

6.3纠正动词形式 303

6.3.1准备工作 303

6.3.2工作方式 303

6.3.3工作原理 305

6.3.4请参阅 306

6.4交换动词短语 306

6.4.1工作方式 306

6.4.2工作原理 307

6.4.3更多信息 307

6.4.4请参阅 307

6.5交换名词基数 308

6.5.1工作方式 308

6.5.2工作原理 309

6.5.3请参阅 309

6.6交换不定式短语 309

6.6.1工作方式 309

6.6.2工作原理 310

6.6.3更多信息 310

6.6.4请参阅 310

6.7单数化复数名词 310

6.7.1工作方式 310

6.7.2工作原理 311

6.7.3请参阅 311

6.8链接组块变换 311

6.8.1工作方式 311

6.8.2工作原理 312

6.8.3更多信息 312

6.8.4请参阅 313

6.9将组块树转换为文本 313

6.9.1工作方式 313

6.9.2工作原理 314

6.9.3更多信息 314

6.9.4请参阅 314

6.10平展深度树 314

6.10.1准备工作 315

6.10.2工作方式 315

6.10.3工作原理 316

6.10.4更多信息 317

6.10.5请参阅 318

6.11创建浅树 318

6.11.1工作方式 318

6.11.2工作原理 320

6.11.3请参阅 320

6.12转换树标签 320

6.12.1准备工作 320

6.12.2工作方式 321

6.12.3工作原理 322

6.12.4请参阅 322

第7章 文本分类 323

7.1引言 323

7.2词袋特征提取 324

7.2.1工作方式 324

7.2.2工作原理 325

7.2.3更多信息 325

7.2.4请参阅 327

7.3训练朴素贝叶斯分类器 327

7.3.1准备工作 327

7.3.2工作方式 328

7.3.3工作原理 329

7.3.4更多信息 330

7.3.5请参阅 333

7.4训练决策树分类器 334

7.4.1工作方式 334

7.4.2工作原理 335

7.4.3更多信息 335

7.4.4请参阅 337

7.5训练最大熵分类器 337

7.5.1准备工作 337

7.5.2工作方式 337

7.5.3工作原理 338

7.5.4更多信息 339

7.5.5请参阅 340

7.6训练scikit-learn分类器 340

7.6.1准备工作 341

7.6.2工作方式 341

7.6.3工作原理 342

7.6.4更多信息 343

7.6.5请参阅 345

7.7衡量分类器的精准率和召回率 346

7.7.1工作方式 346

7.7.2工作原理 347

7.7.3更多信息 348

7.7.4请参阅 349

7.8计算高信息量单词 349

7.8.1工作方式 350

7.8.2工作原理 351

7.8.3更多信息 352

7.8.4请参阅 354

7.9使用投票组合分类器 354

7.9.1准备工作 355

7.9.2工作方式 355

7.9.3工作原理 356

7.9.4请参阅 356

7.10使用多个二元分类器分类 357

7.10.1准备工作 357

7.10.2工作方式 357

7.10.3工作原理 361

7.10.4更多信息 362

7.10.5请参阅 363

7.11使用NLTK训练器训练分类器 363

7.11.1工作方式 363

7.11.2工作原理 364

7.11.3更多信息 365

7.11.4请参阅 371

第8章 分布式进程和大型数据集的处理 372

8.1引言 372

8.2使用execnet进行分布式标注 372

8.2.1准备工作 373

8.2.2工作方式 373

8.2.3工作原理 374

8.2.4更多内容 375

8.2.5请参阅 377

8.3使用execnet进行分布式组块 377

8.3.1准备工作 377

8.3.2工作方式 377

8.3.3工作原理 378

8.3.4更多内容 379

8.3.5请参阅 379

8.4使用execnet并行处理列表 379

8.4.1工作方式 379

8.4.2工作原理 380

8.4.3更多内容 381

8.4.4请参阅 381

8.5在Redis中存储频率分布 382

8.5.1准备工作 382

8.5.2工作方式 382

8.5.3工作原理 384

8.5.4更多内容 385

8.5.5请参阅 386

8.6在Redis中存储条件频率分布 386

8.6.1准备工作 386

8.6.2工作方式 386

8.6.3工作原理 387

8.6.4更多内容 388

8.6.5请参阅 388

8.7在Redis中存储有序字典 388

8.7.1准备工作 388

8.7.2工作方式 388

8.7.3工作原理 390

8.7.4更多内容 391

8.7.5请参阅 392

8.8使用Redis和execnet进行分布式单词评分 392

8.8.1准备工作 392

8.8.2工作方式 392

8.8.3工作原理 393

8.8.4更多内容 395

8.8.5请参阅 396

第9章 解析特定的数据类型 397

9.1引言 397

9.2使用dateutil解析日期和时间 398

9.2.1准备工作 398

9.2.2工作方式 398

9.2.3工作原理 399

9.2.4更多信息 399

9.2.5请参阅 399

9.3时区的查找和转换 400

9.3.1准备工作 400

9.3.2工作方式 400

9.3.3工作原理 402

9.3.4更多信息 402

9.3.5请参阅 403

9.4使用lxml从HTML中提取URL 403

9.4.1准备工作 403

9.4.2工作方式 403

9.4.3工作原理 404

9.4.4更多信息 404

9.4.5请参阅 405

9.5清理和剥离HTML 405

9.5.1准备工作 405

9.5.2工作方式 405

9.5.3工作原理 405

9.5.4更多信息 406

9.5.5请参阅 406

9.6使用Beautiful Soup转换HTML实体 406

9.6.1准备工作 406

9.6.2工作方式 406

9.6.3工作原理 407

9.6.4更多信息 407

9.6.5请参阅 407

9.7检测和转换字符编码 407

9.7.1准备工作 408

9.7.2工作方式 408

9.7.3工作原理 409

9.7.4更多信息 409

9.7.5请参阅 410

附录A 宾州treebank词性标签 411

模块3 使用Python掌握自然语言处理 417

第1章 使用字符串 417

1.1标记化 417

1.1.1将文本标记为句子 418

1.1.2其他语言文字的标记化 418

1.1.3将句子标记为单词 419

1.1.4使用TreebankWordTokenizer进行标记化 420

1.1.5使用正则表达式进行标记化 421

1.2规范化 424

1.2.1消除标点符号 424

1.2.2转化为小写和大写 425

1.2.3处理停用词 425

1.2.4计算英语中的停用词 426

1.3替代和纠正标记 427

1.3.1使用正则表达式替换单词 427

1.3.2使用一个文本替换另一个文本的示例 428

1.3.3在标记化之前进行替代 428

1.3.4处理重复的字符 428

1.3.5删除重复字符的示例 429

1.3.6使用单词的同义词替换单词 430

1.4在文本上应用齐夫定律 431

1.5相似性量度 431

1.5.1使用编辑距离算法应用相似性量度 432

1.5.2使用杰卡德系数应用相似性量度 434

1.5.3使用史密斯-沃特曼算法应用相似性量度 434

1.5.4其他字符串相似性指标 435

1.6本章小结 436

第2章 统计语言模型 437

2.1单词频率 437

2.1.1对给定文本进行最大似然估计 441

2.1.2隐马尔可夫模型估计 448

2.2在MLE模型上应用平滑 450

2.2.1加一平滑法 450

2.2.2古德-图灵算法 451

2.2.3聂氏估计 456

2.2.4威滕·贝尔估计 457

2.3为MLE指定回退机制 457

2.4应用数据插值获得混合和匹配 458

2.5应用困惑度评估语言模型 458

2.6在建模语言中应用梅特罗波利斯-黑斯廷斯算法 459

2.7在语言处理中应用吉布斯采样 459

2.8本章小结 461

第3章 词语形态学——试一试 462

3.1词语形态学 462

3.2词根还原器 463

3.3词形还原 466

3.4开发用于非英语语言的词根还原器 467

3.5词语形态分析器 469

3.6词语形态生成器 471

3.7搜索引擎 471

3.8本章小结 475

第4章 词性标注——识别单词 476

4.1词性标注 476

4.2创建POS标注的语料库 482

4.3选择某个机器学习算法 484

4.4涉及n元组方法的统计建模 486

4.5使用POS标注的语料库开发组块器 491

4.6本章小结 494

第5章 解析————分析训练数据 495

5.1解析 495

5.2构建树库 496

5.3从树库中提取上下文无关文法的规则 501

5.4从CFG中创建概率上下文无关的文法 507

5.5 CYK图解析算法 509

5.6厄雷图解析算法 510

5.7本章小结 516

第6章 语义分析——意义重大 517

6.1语义分析 517

6.1.1 NER简介 521

6.1.2使用隐马尔可夫模型的NER系统 525

6.1.3使用机器学习工具包训练NER 530

6.1.4使用POS标注的NER 531

6.2从Wordnet中生成同义词集ID 534

6.3使用Wordnet消除歧义 537

6.4本章小结 541

第7章 情感分析——我很高兴 542

7.1情感分析 542

7.2使用机器学习的情感分析 548

7.3本章小结 572

第8章 信息检索——访问信息 573

8.1信息检索 573

8.1.1停用词删除 574

8.1.2利用向量空间模型进行信息检索 576

8.2向量空间评分以及与查询操作器交互 583

8.3利用隐含语义索引开发IR系统 586

8.4文本摘要 587

8.5问答系统 588

8.6本章小结 589

第9章 话语分析——知识就是信仰 590

9.1话语分析 590

9.1.1使用定中心理论进行话语分析 595

9.1.2回指解析 596

9.2本章小结 601

第10章 NLP系统的评估——性能分析 602

10.1对NLP系统进行评估的需求 602

10.1.1 NLP工具(POS标注器、词干还原器和形态分析器)的评估 603

10.1.2使用黄金数据评估解析器 613

10.2 IR系统的评估 614

10.3错误识别的指标 614

10.4基于词汇匹配的指标 615

10.5基于语法匹配的指标 619

10.6使用浅层语义匹配的指标 620

10.7本章小结 621

参考书目 622