NLTK Tokenize:带有示例的单词和句子标记器

⚡ 智能摘要

NLTK Tokenize 将大段文本分割成称为词元 (token) 的小单元,这是自然语言处理的基础步骤。该工具包提供了 word_tokenize 用于将句子拆分成单词,以及 sent_tokenize 用于将文本拆分成单个句子。

  • ✂️ 令牌化: 将大段文本分割成称为标记的小单元进行分析。
  • 🧠 NLP Foundation: 作为词干提取、词形还原和文本到数字转换的基础步骤。
  • 🔤 word_tokenize(): 将句子拆分成单个单词,并分隔标点符号。
  • 📝 sent_tokenize(): 将一段文字拆分成多个句子。
  • 📊 使用案例: 结合这两种方法,可以计算机器学习所需的特征,例如每句平均词数。

NLTK Tokenize

什么是令牌化?

符号化 是将大量文本划分为称为标记的较小部分的过程。这些标记对于查找模式非常有用,并且被视为词干提取和词形还原的基础步骤。标记化还有助于用非敏感数据元素替换敏感数据元素。

自然语言处理用于构建文本分类等应用程序, 智能聊天机器人、情感分析、语言翻译等。理解文本中的模式对于实现上述目的至关重要。

暂时不要担心词干提取和词形还原,而是将它们视为使用 NLP(自然语言处理)进行文本数据清理的步骤。我们将在本教程的后面讨论词干提取和词形还原。诸如 文本分类或垃圾邮件过滤 利用 NLP 和 Keras 等深度学习库 Tensorflow.

自然语言工具包中有非常重要的模块NLTK 令牌化 句子还包括子模块

  1. 单词标记
  2. 句子标记化

单词标记

我们使用的方法 word_tokenize() 将句子拆分成单词。单词标记化的输出可以转换为数据框,以便在机器学习应用中更好地理解文本。它还可以作为进一步的文本清理步骤的输入,例如标点符号删除、数字字符删除或词干提取。机器学习模型需要数字数据进行训练并做出预测。单词标记化成为文本(字符串)到数字数据转换的关键部分。请阅读 词袋或 CountVectorizer。请参考下面的单词 tokenize NLTK 示例以更好地理解该理论。

from nltk.tokenize import word_tokenize
text = "God is Great! I won a lottery."
print(word_tokenize(text))

Output: ['God', 'is', 'Great', '!', 'I', 'won', 'a', 'lottery', '.']

单词标记

Code 说明

  1. word_tokenize 模块从 NLTK 库导入。
  2. 变量“text”用两个句子初始化。
  3. 文本变量传入 word_tokenize 模块并打印结果。该模块用标点符号拆分每个单词,您可以在输出中看到这些标点符号。

句子标记化

上述可用的子模块是 sent_tokenize。你脑海中一个显而易见的问题是 为什么当我们可以选择单词标记时,还需要句子标记。假设您需要计算每个句子的平均单词数,您将如何计算?为了完成这样的任务,您需要 NLTK 句子标记器和 NLTK 单词标记器来计算比率。这种输出是机器训练的重要特征,因为答案将是数字。

查看下面的 NLTK 标记器示例,了解句子标记化与单词标记化的区别。

from nltk.tokenize import sent_tokenize
text = "God is Great! I won a lottery."
print(sent_tokenize(text))

Output: ['God is Great!', 'I won a lottery ']

我们有 12 的话和 两句话 对于相同的输入。

句子标记化

程序说明

  1. 与上一个程序类似,在一行中导入了 sent_tokenize 模块。
  2. 我们取了同一句话。NLTK 模块中的进一步句子标记器解析了该句子并显示输出。很明显,这个函数分解了每个句子。

上述单词标记器 Python 例子是理解单词和句子标记机制的良好基础。

常见问题

词项分词使用 `word_tokenize()` 函数将文本分割成单个单词和标点符号,而句子分词使用 `sent_tokenize()` 函数将文本分割成单独的句子。两者通常结合使用,以提取诸如每句词数之类的特征。

分词是将原始文本转换为可管理单元的第一步,从而实现模式检测、词干提取、词形还原以及转换为机器学习模型执行分类和翻译等任务所需的数值特征。

是的。NLTK 通过加载相应的 Punkt 模型来支持多种语言,例如 `sent_tokenize(text, language='french')`。不同语言的支持情况有所不同,某些脚本可能需要专门的分词器。

大型语言模型在处理文本之前会将其转换为词元(通常是子词片段)。模型会根据之前的词元预测下一个词元,因此词元化直接影响上下文长度、成本和输出质量。

是的。现代人工智能分词器使用诸如字节对编码或词段编码之类的子词方法,将不常用的词拆分成更小的片段。这既能保持词汇表的精简,又能表示不常用的词或复合词。

总结一下这篇文章: