NLTK 词法分析:单词和句子分词器示例
什么是分词?
分词是将大量文本划分为称为标记的小部分的过程。这些标记在查找模式方面非常有用,并且被认为是词干提取和词形还原的基础步骤。分词还有助于用非敏感数据元素替换敏感数据元素。
自然语言处理用于构建文本分类、智能聊天机器人、情感分析、语言翻译等应用程序。理解文本中的模式对于实现上述目的至关重要。
目前,不要担心词干提取和词形还原,而是将它们视为使用 NLP(自然语言处理)进行文本数据清理的步骤。我们将在教程后面讨论词干提取和词形还原。诸如文本分类或垃圾邮件过滤之类的任务需要 NLP 以及 Keras 和TensorFlow 等深度学习库。
自然语言工具包有一个非常重要的模块 NLTK,用于分词句子,该模块进一步包含子模块
- 词语分词
- 句子分词
词语分词
我们使用 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', '.']
代码解释
- word_tokenize 模块是从 NLTK 库导入的。
- 一个名为“text”的变量被初始化为两个句子。
- 将文本变量传递给 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 个单词和两个句子。
程序说明
- 与上一个程序一样,导入了 sent_tokenize 模块。
- 我们使用了相同的句子。此外,NLTK 模块中的句子分词器解析了这些句子并显示了输出。很明显,此函数将每个句子分开。
以上词语分词Python 示例是理解词语和句子分词机制的良好基础。
摘要
- NLP 中的分词是NLP 将大量文本划分为称为标记的小部分的过程。
- 自然语言处理用于构建文本分类、智能聊天机器人、情感分析、语言翻译等应用程序。
- 自然语言工具包有一个非常重要的模块 NLTK,用于分词句子,该模块进一步包含子模块
- 我们使用 word_tokenize() 方法将句子分解为单词。NLTK 中词语分词器的输出可以转换为数据框,以便在机器学习应用程序中更好地理解文本。
- 上述模块的子模块是 sent_tokenize。Python NLTK 中的句子分词器是机器学习训练的重要特征。