《NLTK基础教程——用NLTK和Python库构建机器学习应用》——2.4 标识化处理

简介:

本节书摘来异步社区《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书中的第2章,第2.4节,作者:Nitin Hardeniya,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 标识化处理

机器所要理解的最小处理单位是单词(即分词)。所以除了标识化处理之外,我们不宜再对这些文本字符串做更进一步的处理。这里所谓的标识化,实际上就是一个将原生字符串分割成一系列有意义的分词。标识化处理的复杂性因具体的NLP应用而异,当然目标语言本身的复杂性也会带来相关的变化。例如在英语中,我们可以通过正则表达式这样简单的方式来选取纯单词内容和数字。但在中文和日文中,这会成为一个非常复杂的任务。

>>>s = "Hi Everyone !    hola gr8" # simplest tokenizer
>>>print s.split()
['Hi', 'Everyone', '!', 'hola', 'gr8']
>>>from nltk.tokenize import word_tokenize
>>>word_tokenize(s)
['Hi', 'Everyone', '!', 'hola', 'gr8']
>>>from nltk.tokenize import regexp_tokenize, wordpunct_tokenize, blankline_ tokenize 
>>>regexp_tokenize(s, pattern='\w+')
['Hi', 'Everyone', 'hola', 'gr8']
>>>regexp_tokenize(s, pattern='\d+')
['8']
>>>wordpunct_tokenize(s)
['Hi', ',', 'Everyone', '!!', 'hola', 'gr8']
>>>blankline_tokenize(s)
['Hi, Everyone !!  hola gr8']

在上述代码中,我们用到了各种标识器(tokenizer)。我们从最简单的——Python字符串类型的split()方法开始。这是一个最基本的标识器,使用空白符来执行单词分割。当然,split()方法本身也可以被配置成一些较为复杂的标识化处理过程。因此在上面的例子中,我们其实很难找出s.split()与word_tokenize()这两个方法之间的差异。

word_tokenize()方法则是一个通用的、更为强大的、可面向所有类型语料库的标识化处理方法。当然,word_tokenize()是NLTK库的内置方法。如果你不能访问它,那就说明在安装NLTK数据时出了些差错。请参照第1章“自然语言处理简介”中的内容来安装它。

通常情况下,我们有两个最常用的标识器。第一种是word_tokenize(),这是我们的默认选择,基本上能应付绝大多数的情况。另一选择是regex_tokenize(),这是一个为用户特定需求设计的、自定义程度更高的标识器。其他的大部分标识器都可以通过继承正则表达式的标识器来实现。我们也可以利用某种不同的模式来构建一个非常具体的标识器。如在上述代码的第8行,我们也可以基于正则表达式的标识器分割出相同的字符串。你可以用w+这个正则表达式,它会从目标字符串中分隔出所有我们所需要的单词和数字,其他语义符号也可以通过类似的分割器来进行分离,如对于上述代码的第 10 行,我们可以使用d+这个正则表达式。这样我们就能从目标字符串中提取出纯数字内容。

现在,你能为提取大小写单词、数字和金钱符号构建专用的正则表达式标识器吗?

提示:只需参考之前正则表达式的查询模式来使用regex_tokenize()即可。

相关文章
|
2天前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
39 20
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
2月前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
90 3
|
21天前
|
机器学习/深度学习 监控 算法
机器学习在图像识别中的应用:解锁视觉世界的钥匙
机器学习在图像识别中的应用:解锁视觉世界的钥匙
267 95
|
6天前
|
机器学习/深度学习 数据采集 算法
机器学习在生物信息学中的创新应用:解锁生物数据的奥秘
机器学习在生物信息学中的创新应用:解锁生物数据的奥秘
78 36
|
17天前
|
算法 数据处理 Python
高精度保形滤波器Savitzky-Golay的数学原理、Python实现与工程应用
Savitzky-Golay滤波器是一种基于局部多项式回归的数字滤波器,广泛应用于信号处理领域。它通过线性最小二乘法拟合低阶多项式到滑动窗口中的数据点,在降噪的同时保持信号的关键特征,如峰值和谷值。本文介绍了该滤波器的原理、实现及应用,展示了其在Python中的具体实现,并分析了不同参数对滤波效果的影响。适合需要保持信号特征的应用场景。
77 11
高精度保形滤波器Savitzky-Golay的数学原理、Python实现与工程应用
|
5天前
|
存储 分布式计算 MaxCompute
使用PAI-FeatureStore管理风控应用中的特征
PAI-FeatureStore 是阿里云提供的特征管理平台,适用于风控应用中的离线和实时特征管理。通过MaxCompute定义和设计特征表,利用PAI-FeatureStore SDK进行数据摄取与预处理,并通过定时任务批量计算离线特征,同步至在线存储系统如FeatureDB或Hologres。对于实时特征,借助Flink等流处理引擎即时分析并写入在线存储,确保特征时效性。模型推理方面,支持EasyRec Processor和PAI-EAS推理服务,实现高效且灵活的风险控制特征管理,促进系统迭代优化。
25 6
|
4天前
|
Shell 程序员 开发者
轻松搞定在Python中构建虚拟环境
本教程教你如何使用业界公认的最佳实践,创建一个完全工作的Python开发环境。虚拟环境通过隔离依赖项,避免项目间的冲突,并允许你轻松管理包版本。我们将使用Python 3的内置`venv`模块来创建和激活虚拟环境,确保不同项目能独立运行,不会相互干扰。此外,还将介绍如何检查Python版本、激活和停用虚拟环境,以及使用`requirements.txt`文件共享依赖项。 通过本教程,你将学会: - 创建和管理虚拟环境 - 避免依赖性冲突 - 部署Python应用到服务器 适合新手和希望提升开发环境管理能力的开发者。
|
29天前
|
机器学习/深度学习 数据采集 运维
机器学习在运维中的实时分析应用:新时代的智能运维
机器学习在运维中的实时分析应用:新时代的智能运维
80 12
|
1月前
|
机器学习/深度学习 人工智能 算法
人工智能浪潮下的编程实践:构建你的第一个机器学习模型
在人工智能的巨浪中,每个人都有机会成为弄潮儿。本文将带你一探究竟,从零基础开始,用最易懂的语言和步骤,教你如何构建属于自己的第一个机器学习模型。不需要复杂的数学公式,也不必担心编程难题,只需跟随我们的步伐,一起探索这个充满魔力的AI世界。
52 12