📜  在Python使用NLTK标记文本(1)

📅  最后修改于: 2023-12-03 15:23:27.370000             🧑  作者: Mango

在Python使用NLTK标记文本

Natural Language Toolkit(NLTK)是一款Python库,提供了许多用于自然语言处理的功能。其中之一是文本标记化,它是将一个句子或文本分割成单独的词或符号的过程。

在本文中,我们将介绍如何在Python中使用NLTK标记文本。

安装NLTK

安装NLTK非常简单,只需在命令行输入以下命令即可:

pip install nltk
下载必要的数据

NLTK需要下载一些数据来使用标记器。您可以使用以下代码下载必要的数据:

import nltk

nltk.download('punkt')
标记化文本

在我们开始标记一个实际的文本之前,让我们先看一个简单的例子:

from nltk.tokenize import word_tokenize

text = "This is a sample sentence."
tokens = word_tokenize(text)
print(tokens)

输出:

['This', 'is', 'a', 'sample', 'sentence', '.']

在这个例子中,我们首先从nltk.tokenize导入了word_tokenize函数。这个函数将文本转换成单词列表。我们传入一个简单的句子,然后打印输出word_tokenize函数返回的单词列表。

接下来,我们用一个实际的文本来标记化:

from nltk.tokenize import word_tokenize

text = "NLTK is a leading platform for building Python programs to work with human language data."
tokens = word_tokenize(text)
print(tokens)

输出:

['NLTK', 'is', 'a', 'leading', 'platform', 'for', 'building', 'Python', 'programs', 'to', 'work', 'with', 'human', 'language', 'data', '.']

文本被成功标记,并且被分割成了单独的单词或符号。

自定义标记化器

您可以根据您的需要自定义标记化器。让我们看一个例子:

import nltk
from nltk.tokenize import word_tokenize
from nltk.tokenize import RegexpTokenizer
from nltk.corpus import stopwords

text = "This is a sample sentence, showing off the stop words filtration."
 
# 创建一个自定义的分词器
tokenizer = RegexpTokenizer(r'\w+')
 
# 获取停止词
stop_words = set(stopwords.words('english'))
 
# 分词
tokens = tokenizer.tokenize(text)
 
# 去除停止词
filtered_tokens = [token for token in tokens if token.lower() not in stop_words]
 
print(filtered_tokens)

输出:

['sample', 'sentence', 'showing', 'stop', 'words', 'filtration']

在这个例子中,我们用RegexpTokenizer创建了一个自定义的标记化器。我们这个例子中用了一个简单的正则表达式来匹配单词。

然后我们用nltk.corpus的stopwords集合获取了英文停止词。这些停止词是语言中最常见的单词,并且在文本处理中通常被忽略。

接下来,我们对输入的文本使用我们的自定义标记化器进行标记化。最后,我们使用列表推导式来筛选掉所有停止词,并且输出处理过的单词列表。

结论

在本文中,我们介绍了如何使用NLTK在Python中标记化文本。我们了解了如何使用现有的标记化器,以及如何自定义标记化器满足我们的需求。

NLTK还提供了许多其他的自然语言处理功能,您可以通过阅读相关文档或者尝试自己使用来学习。