Python和NLTK实现自然语言处理

Book description

使用Python实现NLP项目的大量实践经验

Key Features

  • NLTK是自然语言处理领域中非常受欢迎和广泛使用的Python库。

Book Description

NLTK是自然语言处理领域中非常受欢迎和广泛使用的Python库。NLTK的优点在于其简单性,其中大多数复杂的自然语言处理任务使用几行代码即可完成。本书旨在讲述如何用Python和NLTK解决各种自然语言处理任务并开发机器学习方面的应用。本书介绍了NLTK的基本模块,讲述了采用NLTK实现自然语言处理的大量技巧,讨论了一些文本处理方法和语言处理技术,展示了使用Python实现NLP项目的大量实践经验。本书主要内容包括文本挖掘/NLP任务中所需的所有预处理步骤,如何使用Python 3的NLTK 3进行文本处理,如何通过Python开展NLP项目。

本书适合NLP和机器学习领域的爱好者、Python程序员以及机器学习领域的研究人员阅读。

本书包括以下主要内容

• 使用词性标注和分块的方法对文本进行整理与清洗。

• 把文本标记为句子,把句子标记为单词。

• 文本分类和情感分析。

• 字符串匹配算法和归一化方法。

• 信息检索和文本摘要的概念。

• 使用Python解决各种NLP任务的方式。

What you will learn

  • 使用词性标注和分块的方法对文本进行整理与清洗。
  • 把文本标记为句子,把句子标记为单词。
  • 文本分类和情感分析。
  • 字符串匹配算法和归一化方法。
  • 信息检索和文本摘要的概念。
  • 使用Python解决各种NLP任务的方式。

Who this book is for

本书适合NLP和机器学习领域的爱好者、对文本处理感兴趣的读者、想要快速学习NLTK的资深Python程序员以及机器学习领域的研究人员阅读。

Table of contents

  1. 版权信息
  2. 版权
  3. 版权声明
  4. 内容提要
  5. 译者序
  6. 前言
  7. 资源与支持
  8. 模块1 NLTK基础知识
  9. 第1章 自然语言处理简介
    1. 1.1 为什么要学习NLP
    2. 1.2 从Python的基本知识开始
      1. 1.2.1 列表
      2. 1.2.2 自助
      3. 1.2.3 正则表达式
      4. 1.2.4 词典
      5. 1.2.5 编写函数
    3. 1.3 NLTK
    4. 1.4 试一试
    5. 1.5 本章小结
  10. 第2章 文本的整理和清洗
    1. 2.1 文本整理
    2. 2.2 文本清洗
    3. 2.3 句子拆分器
    4. 2.4 标记解析
    5. 2.5 词干提取
    6. 2.6 词形还原
    7. 2.7 停用词删除
    8. 2.8 生僻字删除
    9. 2.9 拼写校正
    10. 2.10 试一试
    11. 2.11 本章小结
  11. 第3章 词性标注
    1. 3.1 什么是词性标注
      1. 3.1.1 斯坦福标注器
      2. 3.1.2 深入了解标注器
      3. 3.1.3 序列标注器
      4. 3.1.4 布里尔标注器
      5. 3.1.5 基于标注器的机器学习
    2. 3.2 命名实体识别
      1. NER标注器
    3. 3.3 试一试
    4. 3.4 本章小结
  12. 第4章 对文本的结构进行语法分析
    1. 4.1 浅层语法分析与深层语法分析
    2. 4.2 语法分析的两种方法
    3. 4.3 为什么需要语法分析
    4. 4.4 不同类型的语法分析器
      1. 4.4.1 递归下降的语法分析器
      2. 4.4.2 移位归约语法分析器
      3. 4.4.3 图表语法分析器
      4. 4.4.4 正则表达式语法分析器
    5. 4.5 依存分析
    6. 4.6 组块化
    7. 4.7 信息抽取
      1. 4.7.1 命名实体识别
      2. 4.7.2 关系抽取
    8. 4.8 本章小结
  13. 第5章 NLP应用
    1. 5.1 构建第一个NLP应用
    2. 5.2 其他的NLP应用
      1. 5.2.1 机器翻译
      2. 5.2.2 统计机器翻译
      3. 5.2.3 信息检索
      4. 5.2.4 语音识别
      5. 5.2.5 文本分类
      6. 5.2.6 信息提取
      7. 5.2.7 问答系统
      8. 5.2.8 对话系统
      9. 5.2.9 词义消歧
      10. 5.2.10 主题建模
      11. 5.2.11 语言检测
      12. 5.2.12 光学字符识别
    3. 5.3 本章小结
  14. 第6章 文本分类
    1. 6.1 机器学习
    2. 6.2 文本分类
    3. 6.3 采样
      1. 6.3.1 朴素贝叶斯
      2. 6.3.2 决策树
      3. 6.3.3 随机梯度下降
      4. 6.3.4 逻辑回归
      5. 6.3.5 支持向量机
    4. 6.4 随机森林算法
    5. 6.5 文本聚类
      1. K均值算法
    6. 6.6 文本的主题建模
      1. 安装gensim
    7. 6.7 参考资料
    8. 6.8 本章小结
  15. 第7章 网络爬取
    1. 7.1 网络爬虫
    2. 7.2 编写第一个爬虫程序
    3. 7.3 Scra py中的数据流
      1. 7.3.1 Scrapy命令行界面
      2. 7.3.2 项
    4. 7.4 站点地图蜘蛛
    5. 7.5 项管道
    6. 7.6 外部参考
    7. 7.7 本章小结
  16. 第8章 与其他Python库一同使用NLTK
    1. 8.1 NumPy
      1. 8.1.1 ndarray
      2. 8.1.2 基本操作
      3. 8.1.3 从数组中提取数据
      4. 8.1.4 复杂的矩阵运算
    2. 8.2 SciP y
      1. 8.2.1 线性代数
      2. 8.2.2 特征值和特征向量
      3. 8.2.3 稀疏矩阵
      4. 8.2.4 优化
    3. 8.3 Pandas
      1. 8.3.1 读取数据
      2. 8.3.2 时序数据
      3. 8.3.3 列转换
      4. 8.3.4 噪声数据
    4. 8.4 Matplotlib
      1. 8.4.1 subplot
      2. 8.4.2 添加轴
      3. 8.4.3 散点图
      4. 8.4.4 柱状图
      5. 8.4.5 3D图
    5. 8.5 外部参考
    6. 8.6 本章小结
  17. 第9章 使用Python进行社交媒体挖掘
    1. 9.1 数据收集
      1. 推特
    2. 9.2 数据提取
      1. 热门话题
    3. 9.3 地理可视化
      1. 9.3.1 影响者检测
      2. 9.3.2 Facebook
      3. 9.3.3 影响者的朋友
    4. 9.4 本章小结
  18. 第10章 大规模的文本挖掘
    1. 10.1 在Hadoop上使用Python的不同方法
      1. 10.1.1 Python的流
      2. 10.1.2 Hive/Pig UDF
      3. 10.1.3 流包装器
    2. 10.2 在Hadoop上运行NLTK
      1. 10.2.1 UDF
      2. 10.2.2 Python流
    3. 10.3 在Hadoop上运行scikit-learn
    4. 10.4 PySpark
    5. 10.5 本章小结
  19. 模块2 使用Python 3的NLTK 3进行文本处理
  20. 第1章 标记文本和WordNet的基础
    1. 1.1 引言
    2. 1.2 将文本标记成句子
      1. 1.2.1 准备工作
      2. 1.2.2 工作方式
      3. 1.2.3 工作原理
      4. 1.2.4 更多信息
      5. 1.2.5 请参阅
    3. 1.3 将句子标记成单词
      1. 1.3.1 工作方式
      2. 1.3.2 工作原理
      3. 1.3.3 更多信息
      4. 1.3.4 请参阅
    4. 1.4 使用正则表达式标记语句
      1. 1.4.1 准备工作
      2. 1.4.2 工作方式
      3. 1.4.3 工作原理
      4. 1.4.4 更多信息
      5. 1.4.5 请参阅
    5. 1.5 训练语句标记生成器
      1. 1.5.1 准备工作
      2. 1.5.2 工作方式
      3. 1.5.3 工作原理
      4. 1.5.4 更多信息
      5. 1.5.5 请参阅
    6. 1.6 在已标记的语句中过滤停用词
      1. 1.6.1 准备工作
      2. 1.6.2 工作方式
      3. 1.6.3 工作原理
      4. 1.6.4 更多信息
      5. 1.6.5 请参阅
    7. 1.7 查找WordNet中单词的Synset
      1. 1.7.1 准备工作
      2. 1.7.2 工作方式
      3. 1.7.3 工作原理
      4. 1.7.4 更多信息
      5. 1.7.5 请参阅
    8. 1.8 在WordNet中查找词元和同义词
      1. 1.8.1 工作方式
      2. 1.8.2 工作原理
      3. 1.8.3 更多信息
      4. 1.8.4 请参阅
    9. 1.9 计算WordNet和Synset的相似度
      1. 1.9.1 工作方式
      2. 1.9.2 工作原理
      3. 1.9.3 更多信息
      4. 1.9.4 请参阅
    10. 1.10 发现单词搭配
      1. 1.10.1 准备工作
      2. 1.10.2 工作方式
      3. 1.10.3 工作原理
      4. 1.10.4 更多信息
      5. 1.10.5 请参阅
  21. 第2章 替换和校正单词
    1. 2.1 引言
    2. 2.2 词干提取
      1. 2.2.1 工作方式
      2. 2.2.2 工作原理
      3. 2.2.3 更多信息
      4. 2.2.4 请参阅
    3. 2.3 使用WordNet进行词形还原
      1. 2.3.1 准备工作
      2. 2.3.2 工作方式
      3. 2.3.3 工作原理
      4. 2.3.4 更多信息
      5. 2.3.5 请参阅
    4. 2.4 基于匹配的正则表达式替换单词
      1. 2.4.1 准备工作
      2. 2.4.2 工作方式
      3. 2.4.3 工作原理
      4. 2.4.4 更多信息
      5. 2.4.5 请参阅
    5. 2.5 移除重复字符
      1. 2.5.1 准备工作
      2. 2.5.2 工作方式
      3. 2.5.3 工作原理
      4. 2.5.4 更多信息
      5. 2.5.5 请参阅
    6. 2.6 使用Enchant进行拼写校正
      1. 2.6.1 准备工作
      2. 2.6.2 工作方式
      3. 2.6.3 工作原理
      4. 2.6.4 更多信息
      5. 2.6.5 请参阅
    7. 2.7 替换同义词
      1. 2.7.1 准备工作
      2. 2.7.2 工作方式
      3. 2.7.3 工作原理
      4. 2.7.4 更多信息
      5. 2.7.5 请参阅
    8. 2.8 使用反义词替换否定形式
      1. 2.8.1 工作方式
      2. 2.8.2 工作原理
      3. 2.8.3 更多信息
      4. 2.8.4 请参阅
  22. 第3章 创建语料库
    1. 3.1 引言
    2. 3.2 建立自定义语料库
      1. 3.2.1 准备工作
      2. 3.2.2 工作方式
      3. 3.2.3 工作原理
      4. 3.2.4 更多信息
      5. 3.2.5 请参阅
    3. 3.3 创建词汇表语料库
      1. 3.3.1 准备工作
      2. 3.3.2 工作方式
      3. 3.3.3 工作原理
      4. 3.3.4 更多信息
      5. 3.3.5 请参阅
    4. 3.4 创建已标记词性单词的语料库
      1. 3.4.1 准备工作
      2. 3.4.2 工作方式
      3. 3.4.3 工作原理
      4. 3.4.4 更多信息
      5. 3.4.5 请参阅
    5. 3.5 创建已组块短语的语料库
      1. 3.5.1 准备工作
      2. 3.5.2 工作方式
      3. 3.5.3 工作原理
      4. 3.5.4 更多信息
      5. 3.5.5 请参阅
    6. 3.6 创建已分类文本的语料库
      1. 3.6.1 准备工作
      2. 3.6.2 工作方式
      3. 3.6.3 工作原理
      4. 3.6.4 更多信息
      5. 3.6.5 请参阅
    7. 3.7 创建已分类组块语料库读取器
      1. 3.7.1 准备工作
      2. 3.7.2 工作方式
      3. 3.7.3 工作原理
      4. 3.7.4 更多信息
      5. 3.7.5 请参阅
    8. 3.8 懒惰语料库加载
      1. 3.8.1 工作方式
      2. 3.8.2 工作原理
      3. 3.8.3 更多信息
    9. 3.9 创建自定义语料库视图
      1. 3.9.1 工作方式
      2. 3.9.2 工作原理
      3. 3.9.3 更多信息
      4. 3.9.4 请参阅
    10. 3.10 创建基于MongoDB的语料库读取器
      1. 3.10.1 准备工作
      2. 3.10.2 工作方式
      3. 3.10.3 工作原理
      4. 3.10.4 更多信息
      5. 3.10.5 请参阅
    11. 3.11 在加锁文件的情况下编辑语料库
      1. 3.11.1 准备工作
      2. 3.11.2 工作方式
      3. 3.11.3 工作原理
  23. 第4章 词性标注
    1. 4.1 引言
    2. 4.2 默认标注
      1. 4.2.1 准备工作
      2. 4.2.2 工作方式
      3. 4.2.3 工作原理
      4. 4.2.4 更多信息
      5. 4.2.5 请参阅
    3. 4.3 训练一元组词性标注器
      1. 4.3.1 工作方式
      2. 4.3.2 工作原理
      3. 4.3.3 更多信息
      4. 4.3.4 请参阅
    4. 4.4 回退标注的组合标注器
      1. 4.4.1 工作方式
      2. 4.4.2 工作原理
      3. 4.4.3 更多信息
      4. 4.4.4 请参阅
    5. 4.5 训练和组合N元标注器
      1. 4.5.1 准备工作
      2. 4.5.2 工作方式
      3. 4.5.3 工作原理
      4. 4.5.4 更多信息
      5. 4.5.5 请参阅
    6. 4.6 创建似然单词标签的模型
      1. 4.6.1 工作方式
      2. 4.6.2 工作原理
      3. 4.6.3 更多信息
      4. 4.6.4 请参阅
    7. 4.7 使用正则表达式标注
      1. 4.7.1 准备工作
      2. 4.7.2 工作方式
      3. 4.7.3 工作原理
      4. 4.7.4 更多信息
      5. 4.7.5 请参阅
    8. 4.8 词缀标签
      1. 4.8.1 工作方式
      2. 4.8.2 工作原理
      3. 4.8.3 更多信息
      4. 4.8.4 请参阅
    9. 4.9 训练布里尔标注器
      1. 4.9.1 工作方式
      2. 4.9.2 工作原理
      3. 4.9.3 更多信息
      4. 4.9.4 请参阅
    10. 4.10 训练TnT标注器
      1. 4.10.1 工作方式
      2. 4.10.2 工作原理
      3. 4.10.3 更多信息
      4. 4.10.4 请参阅
    11. 4.11 使用WordNet进行标注
      1. 4.11.1 准备工作
      2. 4.11.2 工作方式
      3. 4.11.3 工作原理
      4. 4.11.4 请参阅
    12. 4.12 标注专有名词
      1. 4.12.1 工作方式
      2. 4.12.2 工作原理
      3. 4.12.3 请参阅
    13. 4.13 基于分类器的标注
      1. 4.13.1 工作方式
      2. 4.13.2 工作原理
      3. 4.13.3 更多信息
      4. 4.13.4 请参阅
    14. 4.14 使用NLTK训练器训练标注器
      1. 4.14.1 工作方式
      2. 4.14.2 工作原理
      3. 4.14.3 更多信息
      4. 4.14.4 请参阅
  24. 第5章 提取组块
    1. 5.1 引言
    2. 5.2 使用正则表达式组块和隔断
      1. 5.2.1 准备工作
      2. 5.2.2 工作方式
      3. 5.2.3 工作原理
      4. 5.2.4 更多信息
      5. 5.2.5 请参阅
    3. 5.3 使用正则表达式合并和拆分组块
      1. 5.3.1 工作方式
      2. 5.3.2 工作原理
      3. 5.3.3 更多信息
      4. 5.3.4 请参阅
    4. 5.4 使用正则表达式扩展和删除组块
      1. 5.4.1 工作方式
      2. 5.4.2 工作原理
      3. 5.4.3 更多信息
      4. 5.4.4 请参阅
    5. 5.5 使用正则表达式进行部分解析
      1. 5.5.1 工作方式
      2. 5.5.2 工作原理
      3. 5.5.3 更多信息
      4. 5.5.4 请参阅
    6. 5.6 训练基于标注器的组块器
      1. 5.6.1 工作方式
      2. 5.6.2 工作原理
      3. 5.6.3 更多信息
      4. 5.6.4 请参阅
    7. 5.7 基于分类的分块
      1. 5.7.1 工作方式
      2. 5.7.2 工作原理
      3. 5.7.3 更多信息
      4. 5.7.4 请参阅
    8. 5.8 提取命名实体
      1. 5.8.1 工作方式
      2. 5.8.2 工作原理
      3. 5.8.3 更多信息
      4. 5.8.4 请参阅
    9. 5.9 提取专有名词组块
      1. 5.9.1 工作方式
      2. 5.9.2 工作原理
      3. 5.9.3 更多信息
    10. 5.10 提取部位组块
      1. 5.10.1 工作方式
      2. 5.10.2 工作原理
      3. 5.10.3 更多信息
      4. 5.10.4 请参阅
    11. 5.11 训练命名实体组块器
      1. 5.11.1 工作方式
      2. 5.11.2 工作原理
      3. 5.11.3 更多信息
      4. 5.11.4 请参阅
    12. 5.12 使用NLTK训练器训练组块器
      1. 5.12.1 工作方式
      2. 5.12.2 工作原理
      3. 5.12.3 更多信息
      4. 5.12.4 请参阅
  25. 第6章 转换组块与树
    1. 6.1 引言
    2. 6.2 过滤句子中无意义的单词
      1. 6.2.1 准备工作
      2. 6.2.2 工作方式
      3. 6.2.3 工作原理
      4. 6.2.4 更多信息
      5. 6.2.5 请参阅
    3. 6.3 纠正动词形式
      1. 6.3.1 准备工作
      2. 6.3.2 工作方式
      3. 6.3.3 工作原理
      4. 6.3.4 请参阅
    4. 6.4 交换动词短语
      1. 6.4.1 工作方式
      2. 6.4.2 工作原理
      3. 6.4.3 更多信息
      4. 6.4.4 请参阅
    5. 6.5 交换名词基数
      1. 6.5.1 工作方式
      2. 6.5.2 工作原理
      3. 6.5.3 请参阅
    6. 6.6 交换不定式短语
      1. 6.6.1 工作方式
      2. 6.6.2 工作原理
      3. 6.6.3 更多信息
      4. 6.6.4 请参阅
    7. 6.7 单数化复数名词
      1. 6.7.1 工作方式
      2. 6.7.2 工作原理
      3. 6.7.3 请参阅
    8. 6.8 链接组块变换
      1. 6.8.1 工作方式
      2. 6.8.2 工作原理
      3. 6.8.3 更多信息
      4. 6.8.4 请参阅
    9. 6.9 将组块树转换为文本
      1. 6.9.1 工作方式
      2. 6.9.2 工作原理
      3. 6.9.3 更多信息
      4. 6.9.4 请参阅
    10. 6.10 平展深度树
      1. 6.10.1 准备工作
      2. 6.10.2 工作方式
      3. 6.10.3 工作原理
      4. 6.10.4 更多信息
      5. 6.10.5 请参阅
    11. 6.11 创建浅树
      1. 6.11.1 工作方式
      2. 6.11.2 工作原理
      3. 6.11.3 请参阅
    12. 6.12 转换树标签
      1. 6.12.1 准备工作
      2. 6.12.2 工作方式
      3. 6.12.3 工作原理
      4. 6.12.4 请参阅
  26. 第7章 文本分类
    1. 7.1 引言
    2. 7.2 词袋特征提取
      1. 7.2.1 工作方式
      2. 7.2.2 工作原理
      3. 7.2.3 更多信息
      4. 7.2.4 请参阅
    3. 7.3 训练朴素贝叶斯分类器
      1. 7.3.1 准备工作
      2. 7.3.2 工作方式
      3. 7.3.3 工作原理
      4. 7.3.4 更多信息
      5. 7.3.5 请参阅
    4. 7.4 训练决策树分类器
      1. 7.4.1 工作方式
      2. 7.4.2 工作原理
      3. 7.4.3 更多信息
      4. 7.4.4 请参阅
    5. 7.5 训练最大熵分类器
      1. 7.5.1 准备工作
      2. 7.5.2 工作方式
      3. 7.5.3 工作原理
      4. 7.5.4 更多信息
      5. 7.5.5 请参阅
    6. 7.6 训练scikit-learn分类器
      1. 7.6.1 准备工作
      2. 7.6.2 工作方式
      3. 7.6.3 工作原理
      4. 7.6.4 更多信息
      5. 7.6.5 请参阅
    7. 7.7 衡量分类器的精准率和召回率
      1. 7.7.1 工作方式
      2. 7.7.2 工作原理
      3. 7.7.3 更多信息
      4. 7.7.4 请参阅
    8. 7.8 计算高信息量单词
      1. 7.8.1 工作方式
      2. 7.8.2 工作原理
      3. 7.8.3 更多信息
      4. 7.8.4 请参阅
    9. 7.9 使用投票组合分类器
      1. 7.9.1 准备工作
      2. 7.9.2 工作方式
      3. 7.9.3 工作原理
      4. 7.9.4 请参阅
    10. 7.10 使用多个二元分类器分类
      1. 7.10.1 准备工作
      2. 7.10.2 工作方式
      3. 7.10.3 工作原理
      4. 7.10.4 更多信息
      5. 7.10.5 请参阅
    11. 7.11 使用NLTK训练器训练分类器
      1. 7.11.1 工作方式
      2. 7.11.2 工作原理
      3. 7.11.3 更多信息
      4. 7.11.4 请参阅
  27. 第8章 分布式进程和大型数据集的处理
    1. 8.1 引言
    2. 8.2 使用execnet进行分布式标注
      1. 8.2.1 准备工作
      2. 8.2.2 工作方式
      3. 8.2.3 工作原理
      4. 8.2.4 更多内容
      5. 8.2.5 请参阅
    3. 8.3 使用execnet进行分布式组块
      1. 8.3.1 准备工作
      2. 8.3.2 工作方式
      3. 8.3.3 工作原理
      4. 8.3.4 更多内容
      5. 8.3.5 请参阅
    4. 8.4 使用execnet并行处理列表
      1. 8.4.1 工作方式
      2. 8.4.2 工作原理
      3. 8.4.3 更多内容
      4. 8.4.4 请参阅
    5. 8.5 在Redis中存储频率分布
      1. 8.5.1 准备工作
      2. 8.5.2 工作方式
      3. 8.5.3 工作原理
      4. 8.5.4 更多内容
      5. 8.5.5 请参阅
    6. 8.6 在Redis中存储条件频率分布
      1. 8.6.1 准备工作
      2. 8.6.2 工作方式
      3. 8.6.3 工作原理
      4. 8.6.4 更多内容
      5. 8.6.5 请参阅
    7. 8.7 在Redis中存储有序字典
      1. 8.7.1 准备工作
      2. 8.7.2 工作方式
      3. 8.7.3 工作原理
      4. 8.7.4 更多内容
      5. 8.7.5 请参阅
    8. 8.8 使用Redis和execnet进行分布式单词评分
      1. 8.8.1 准备工作
      2. 8.8.2 工作方式
      3. 8.8.3 工作原理
      4. 8.8.4 更多内容
      5. 8.8.5 请参阅
  28. 第9章 解析特定的数据类型
    1. 9.1 引言
    2. 9.2 使用dateutil解析日期和时间
      1. 9.2.1 准备工作
      2. 9.2.2 工作方式
      3. 9.2.3 工作原理
      4. 9.2.4 更多信息
      5. 9.2.5 请参阅
    3. 9.3 时区的查找和转换
      1. 9.3.1 准备工作
      2. 9.3.2 工作方式
      3. 9.3.3 工作原理
      4. 9.3.4 更多信息
      5. 9.3.5 请参阅
    4. 9.4 使用lxml从HTML中提取URL
      1. 9.4.1 准备工作
      2. 9.4.2 工作方式
      3. 9.4.3 工作原理
      4. 9.4.4 更多信息
      5. 9.4.5 请参阅
    5. 9.5 清理和剥离HTML
      1. 9.5.1 准备工作
      2. 9.5.2 工作方式
      3. 9.5.3 工作原理
      4. 9.5.4 更多信息
      5. 9.5.5 请参阅
    6. 9.6 使用Beautiful Soup转换HTML实体
      1. 9.6.1 准备工作
      2. 9.6.2 工作方式
      3. 9.6.3 工作原理
      4. 9.6.4 更多信息
      5. 9.6.5 请参阅
    7. 9.7 检测和转换字符编码
      1. 9.7.1 准备工作
      2. 9.7.2 工作方式
      3. 9.7.3 工作原理
      4. 9.7.4 更多信息
      5. 9.7.5 请参阅
  29. 附录A 宾州treebank词性标签
  30. 模块3 使用Python掌握自然语言处理
  31. 第1章 使用字符串
    1. 1.1 标记化
      1. 1.1.1 将文本标记为句子
      2. 1.1.2 其他语言文字的标记化
      3. 1.1.3 将句子标记为单词
      4. 1.1.4 使用TreebankWordTokenizer进行标记化
      5. 1.1.5 使用正则表达式进行标记化
    2. 1.2 规范化
      1. 1.2.1 消除标点符号
      2. 1.2.2 转化为小写和大写
      3. 1.2.3 处理停用词
      4. 1.2.4 计算英语中的停用词
    3. 1.3 替代和纠正标记
      1. 1.3.1 使用正则表达式替换单词
      2. 1.3.2 使用一个文本替换另一个文本的示例
      3. 1.3.3 在标记化之前进行替代
      4. 1.3.4 处理重复的字符
      5. 1.3.5 删除重复字符的示例
      6. 1.3.6 使用单词的同义词替换单词
    4. 1.4 在文本上应用齐夫定律
    5. 1.5 相似性量度
      1. 1.5.1 使用编辑距离算法应用相似性量度
      2. 1.5.2 使用杰卡德系数应用相似性量度
      3. 1.5.3 使用史密斯-沃特曼算法应用相似性量度
      4. 1.5.4 其他字符串相似性指标
    6. 1.6 本章小结
  32. 第2章 统计语言模型
    1. 2.1 单词频率
      1. 2.1.1 对给定文本进行最大似然估计
      2. 2.1.2 隐马尔可夫模型估计
    2. 2.2 在MLE模型上应用平滑
      1. 2.2.1 加一平滑法
      2. 2.2.2 古德-图灵算法
      3. 2.2.3 聂氏估计
      4. 2.2.4 威滕·贝尔估计
    3. 2.3 为MLE指定回退机制
    4. 2.4 应用数据插值获得混合和匹配
    5. 2.5 应用困惑度评估语言模型
    6. 2.6 在建模语言中应用梅特罗波利斯-黑斯廷斯算法
    7. 2.7 在语言处理中应用吉布斯采样
    8. 2.8 本章小结
  33. 第3章 词语形态学——试一试
    1. 3.1 词语形态学
    2. 3.2 词根还原器
    3. 3.3 词形还原
    4. 3.4 开发用于非英语语言的词根还原器
    5. 3.5 词语形态分析器
    6. 3.6 词语形态生成器
    7. 3.7 搜索引擎
    8. 3.8 本章小结
  34. 第4章 词性标注——识别单词
    1. 4.1 词性标注
      1. 默认标注
    2. 4.2 创建POS标注的语料库
    3. 4.3 选择某个机器学习算法
    4. 4.4 涉及n元组方法的统计建模
    5. 4.5 使用POS标注的语料库开发组块器
    6. 4.6 本章小结
  35. 第5章 解析——分析训练数据
    1. 5.1 解析
    2. 5.2 构建树库
    3. 5.3 从树库中提取上下文无关文法的规则
    4. 5.4 从CFG中创建概率上下文无关的文法
    5. 5.5 CYK图解析算法
    6. 5.6 厄雷图解析算法
    7. 5.7 本章小结
  36. 第6章 语义分析——意义重大
    1. 6.1 语义分析
      1. 6.1.1 NER简介
      2. 6.1.2 使用隐马尔可夫模型的NER系统
      3. 6.1.3 使用机器学习工具包训练NER
      4. 6.1.4 使用POS标注的NER
    2. 6.2 从Wordnet中生成同义词集ID
    3. 6.3 使用Wordnet消除歧义
    4. 6.4 本章小结
  37. 第7章 情感分析——我很高兴
    1. 7.1 情感分析
      1. 使用NER的情感分析
    2. 7.2 使用机器学习的情感分析
      1. NER系统的评价
    3. 7.3 本章小结
  38. 第8章 信息检索——访问信息
    1. 8.1 信息检索
      1. 8.1.1 停用词删除
      2. 8.1.2 利用向量空间模型进行信息检索
    2. 8.2 向量空间评分以及与查询操作器交互
    3. 8.3 利用隐含语义索引开发IR系统
    4. 8.4 文本摘要
    5. 8.5 问答系统
    6. 8.6 本章小结
  39. 第9章 话语分析——知识就是信仰
    1. 9.1 话语分析
      1. 9.1.1 使用定中心理论进行话语分析
      2. 9.1.2 回指解析
    2. 9.2 本章小结
  40. 第10章 NLP系统的评估——性能分析
    1. 10.1 对NLP系统进行评估的需求
      1. 10.1.1 NLP工具(POS标注器、词干还原器和形态分析器)的评估
      2. 10.1.2 使用黄金数据评估解析器
    2. 10.2 IR系统的评估
    3. 10.3 错误识别的指标
    4. 10.4 基于词汇匹配的指标
    5. 10.5 基于语法匹配的指标
    6. 10.6 使用浅层语义匹配的指标
    7. 10.7 本章小结
  41. 参考书目

Product information

  • Title: Python和NLTK实现自然语言处理
  • Author(s): Posts & Telecom Press, Nitin Hardeniya
  • Release date: February 2024
  • Publisher(s): Packt Publishing
  • ISBN: 9781835083451

You might also like

book

人工智能技术与大数据

by Posts & Telecom Press, Anand Deshpande, Manish Kumar

大数据领域的人工智能技术 Key Features 先讲大数据的本体论、机器学习的基本理论,为具体场景、算法的实践奠定基础 在对机器学习的介绍中,对其数学原理、训练过程做基本的讲解,并辅以代码帮助读者了解真实场景中技术工具的使用 本书作者在数据生态系统技术和数据管理方面拥有丰富的经验 Book Description 本书分为两个部分,共12章。第1章到第5章介绍了大数据的本体论、机器学习的基本理论等内容,为具体场景、算法的实践奠定了基础。读者可以了解到,在工程实践中,对大数据的处理、转化方式与人类学习知识并将其转化为实践的过程是多么相似。在对机器学习的介绍中,会对其数学原理、训练过程做基本的讲解,并辅以代码帮助读者了解真实场景中技术工具的使用。第6章到第12章提供了多个不同的用例,章节之间彼此独立,介绍了如何用人工智能技术(自然语言处理、模糊系统、遗传编程、群体智能、强化学习、网络安全、认知计算)实现大数据自动化解决方案。 如果读者对 Java 编程语言、分布式计算框架、各种机器学习算法有一定的了解,那么本书可以帮助你建立一个全局观,从更广阔的视角来看待人工智能技术在大数据中的应用。如果读者对上述知识一无所知,但是对大数据人工智能的技术、业务非常感兴趣,那么可以通过本书获得从零到一的认知提升。 What you will learn …

book

编写整洁的Python代码(第2版)

by Posts & Telecom Press, Mariano Anaya

Python代码整洁之道 Key Features 介绍实现Python代码整洁应遵循的基本原则 涵盖避免由不良代码导致的效率低下以及存在诸多隐患的代码的方法 作者专业背景深厚,项目经验丰富 基于Python 3.9 Book Description 这是一本介绍如何实现Python代码整洁的书,主要介绍如何使用Python 3.9引入的新特性提升编码技能。此外,本书还介绍了以下内容:通过利用自动化工具建立高效的开发环境,利用Python中的魔法方法来编写更好的代码,抽象代码复杂性并封装细节,使用Python特有的特性创建高级的面向对象设计,通过使用面向对象设计的软件工程原则创建强大的抽象来消除代码重复,使用装饰器和描述符创建特定于Python的解决方案,运用单元测试方法有效重构代码,以及通过实现整洁的代码库为构建坚实的架构打下基础等。 本书对新手程序员和有经验的程序员同样适用,也适合想通过编写Python代码来节省成本和提高效率的团队领导、软件架构师和高级软件工程师参考。当然在阅读本书前,读者应掌握一些Python基础知识。 What you will …

book

Spark机器学习实战

by Posts & Telecom Press, Siamak Amirghodsi, Meenakshi Rajendran, Broderick Hall, Shuen Mei

学习实用的机器学习算法,并用Spark快速动手实践 Key Features 步骤清晰,讲解细致,适合读者边学边做 提供Apache Spark机器学习API的全面解决方案 Book Description 机器学习是一门多领域交叉学科,可以通过模拟来让计算机获取新的知识或技能。Apache Spark是一种通用大数据框架,也是一种近实时弹性分布式计算和数据虚拟化技术,Spark使人们可以大规模使用机器学习技术,而无须在专用数据中心或硬件上进行大量投资。 本书提供了Apache Spark机器学习API的全面解决方案,不仅介绍了用Spark完成机器学习任务所需的基础知识,也涉及一些Spark机器学习的高级技能。全书共有13章,从环境配置讲起,陆续介绍了线性代数库、数据处理机制、构建机器学习系统的常见攻略、回归和分类、用Spark实现推荐引擎、无监督学习、梯度下降算法、决策树和集成模型、数据降维、文本分析和Spark Steaming的使用。 本书是为那些掌握了机器学习技术的Scala开发人员准备的,尤其适合缺乏Spark实践经验的读者。本书假定读者已经掌握机器学习算法的基础知识,并且具有使用Scala实现机器学习算法的一些实践经验。但不要求读者提前了解Spark ML库及其生态系统。 What …

book

Python3.0科学计算指南

by Posts & Telecom Press, Claus Führer, Jan Erik Solem, Olivier Verdier

Python 3.0科学计算教程 Python中的主要语法元素、基本数据类型、容器类型 符号计算 SciPy和NumPy的参考资料 Key Features 本书给出了一些综合实例,以帮助读者进一步掌握前述章节所涵盖的内容 本书特色鲜明,示例生动有趣,内容易读易学 Book Description 本书旨在通过实际的Python 3.0代码示例展示Python与数学应用程序的紧密联系,介绍将Python中的各种概念用于科学计算的方法。 本书共有15章。第1~3章介绍Python中的主要语法元素、基本数据类型、容器类型等概念;第4~9章介绍线性代数、高级数组、函数、类、迭代等与数学数据类型紧密相关的内容;第10~14章就有关科学计算程序运行过程中错误处理、输入输出、测试等问题进行探索,并具体给出了一些综合实例,以帮助读者进一步掌握前述章节所涵盖的内容;第15章介绍符号计算的相关内容,旨在让读者了解这一常用于推导和验证理论上的数学模型和数值结果的技术。 本书特色鲜明,示例生动有趣,内容易读易学,既适合Python初学者和程序员阅读,也适合高校计算机专业的教师和学生参考。具有编程经验以及科学计算的爱好者也可以将本书作为研究SciPy和NumPy的参考资料。 What …