NLTK 词法分析:单词和句子分词器示例

什么是分词?

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

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

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

自然语言工具包有一个非常重要的模块 NLTK,用于分词句子,该模块进一步包含子模块

  1. 词语分词
  2. 句子分词

词语分词

我们使用 word_tokenize() 方法将句子分解为单词。词分词的输出可以转换为数据框,以便在机器学习应用程序中更好地理解文本。它也可以作为输入用于进一步的文本清理步骤,例如标点符号移除、数字字符移除或词干提取。机器学习模型需要数字数据来进行训练和预测。词语分词成为文本(字符串)到数字数据转换的关键部分。请阅读有关词袋模型或 CountVectorizer 的信息。请参阅下面的词语分词 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', '.']

Tokenization of Words

代码解释

  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 个单词和两个句子

Tokenization of Sentences

程序说明

  1. 与上一个程序一样,导入了 sent_tokenize 模块。
  2. 我们使用了相同的句子。此外,NLTK 模块中的句子分词器解析了这些句子并显示了输出。很明显,此函数将每个句子分开。

以上词语分词Python 示例是理解词语和句子分词机制的良好基础。

摘要

  • NLP 中的分词是NLP 将大量文本划分为称为标记的小部分的过程。
  • 自然语言处理用于构建文本分类、智能聊天机器人、情感分析、语言翻译等应用程序。
  • 自然语言工具包有一个非常重要的模块 NLTK,用于分词句子,该模块进一步包含子模块
  • 我们使用 word_tokenize() 方法将句子分解为单词。NLTK 中词语分词器的输出可以转换为数据框,以便在机器学习应用程序中更好地理解文本。
  • 上述模块的子模块是 sent_tokenize。Python NLTK 中的句子分词器是机器学习训练的重要特征。