基本文本分析详解

基本文本分析

NLTK 提供了一系列功能,但所有功能都需要摄入文本来执行任何类型的分析。让我们先来看看文本摄入和一些简单分析。

清单 3 提供了一个摄入样本语料库并采用句子和单词两种形式将其标记化的简单示例。我使用 Python 请求库从来自 Project Gutenberg 的查尔斯·达尔文的物种起源 (On the Origin of Species) 中读取文本。然后对文本回复应用两个分词器(分词器基于边界将字符串分解为子字符串)。在第一个示例中,我使用 sent_tokenize 将文本分解为各个句子(使用句点或句号 [.] 作为边界)。在第二个示例中,我使用 word_tokenize 将文本分解为各个单词(基于空格和标点)。句子和单词列表的长度与一个随机句子和单词一起呈现出来(作为总大小的函数)。

清单 3. 对一个样本语料库执行标记化 (tokens.py)

基本文本分析详解_第1张图片

上面的 Python 脚本的输出如下所示。可以看到,样本文本由 4,901 个句子和 179,661 个单词组成。

清单 4. 来自清单 3 的标记化脚本的输出

基本文本分析详解_第2张图片

标记化通常是处理文本集合的第一步。在下一个示例中,我将介绍 NLTK 中识别语料库中最常见单词和符号的内置功能。NLTK 包含一个名为 FreqDist 的频率分布类,可以识别在文本中找到的每个标记(单词或标点)的频率。这些标记被存储为元组,其中包含单词及其在文本中出现的次数。在这个示例中,我使用了 NTLK 内的文本(text7 指的是 The Wall Street Journal 语料库)。我调用 most_common 函数来将输出的元组限制为前 8 个,然后输出这个集合。清单 5 给出了相关代码。

清单 5. 找到最常见的单词和符号 (most_common.py)

基本文本分析详解_第3张图片

清单 5 的输出如清单 6 所示。从这里,可以看到样本文本被导入到了 Python 中;最后两行表示最常见标记的输出。毫不奇怪,像逗号 (,) 和句点这样的标点在列表中位于靠前的位置,定冠词 the 也是如此。

清单 6. 来自清单 5 的 most_common.py 脚本的输出

基本文本分析详解_第4张图片

在最后一个基本分析示例中,让我们来看看标签。NLTK 包含词性标签器,使您能够将句子划分到它的词类中(名词、动词等)。此特性通过将语言分解为各个构成部分,形成了自然语言处理的基础。 可以使用此功能来开发问答应用程序,并执行情感分析。

清单 7 提供了一个使用 NLTK 的 POS 标签器的简单脚本。我从 Project Gutenberg 读取物种起源并随机挑选一个句子。该句子被标记化为不同单词,然后通过调用 pos_tag 来添加标签。该脚本输出了以下结果,该结果表示一组元组(单词、标签)。

清单 7. POS 标签示例

基本文本分析详解_第5张图片

清单 8 提供了 POS 标签示例的输出。首先呈现的是未添加标签的句子,然后是单词/标签元组集合。请注意,标签可能是多种多样的,但在此示例中,它们是人称代词 (PRP)、过去时态动词 (VBD)、介词或连词 (IN)、限定词 (DT)、副词 (RB)、形容词 (JJ)、常用名词复数 (NNS) 和专有名词单数 (NNP)。可以通过调用 nltk.help.upenn_tagset() 来查看 NLTK 中的完整标签集合。

清单 8. 来自清单 7 的标签脚本的输出

基本文本分析详解_第6张图片


关注后回复【入群】,和大家一起学习


商务合作/文章转载/投稿

请加微信:tech_better_me

640?wx_fmt=jpeg

你可能感兴趣的:(基本文本分析详解)