自然语言处理(NLP)是人工智能的一个分支,它使得计算机能够理解、解释、操作和响应人类语言。简而言之,NLP是计算机理解和响应人类语言的方式。人类通过不同语言的“文本”进行交流,但机器仅能理解数字形式。因此,需要将“文本”转换为机器可以理解和计算的“数字形式”,这就是NLP的用武之地,它使用预处理和特征编码技术,如标签编码、独热编码等,将文本转换为数值格式,也称为向量。
例如,当客户在亚马逊购买产品并留下评论时,计算机并不是能够理解评论背后情感的人类。那么,计算机如何理解评论的情感呢?在这里,NLP发挥了作用。NLP在语言翻译、情感分析、语法错误检测、假新闻检测等方面都有应用。图1提供了从文本预处理到使用BERT的NLP完整路线图。将详细讨论NLP的各个方面,包括用例和代码。
在本文中,将重点关注预处理的主要步骤,即分词。分词是将文本分解成小块的过程。分词将文本(句子、段落)分割成单词、句子,称为标记。这些标记通过分析标记的序列帮助解释文本的含义。如果使用某种分离技术将文本分割成句子,则称为句子分词;同样,将单词分割的分离称为单词分词。例如,客户在亚马逊网站上对产品的评价:“非常好”。分词器将这句话分解成“非常”和“好”。
有多种方法和库可用于执行分词。Keras、NLTK、Gensim是一些可以用来完成这项任务的库。将详细讨论使用这些库进行分词。
NLTK是构建Python程序和处理人类语言的最佳库。它提供了易于使用的接口,以及一套用于分词、分类、词干提取、解析、标记等的文本处理库。本节将帮助使用NLTK对段落进行分词。它将为提供分词的基本概念,可以用于情感分析、问答任务等各种用例。
# 1. 导入所需的库
import nltk
nltk.download('punkt')
# 2. 获取数据
paragraph = """在这里输入段落文本。"""
# 3. 将段落分词成句子
sentences = nltk.sent_tokenize(paragraph)
# 4. 将句子分词成单词
words = nltk.word_tokenize(paragraph)
在本节中,将展示使用Gensim库对相同输入进行分词。Gensim是一个开源库,最初是为主题建模而开发的。然而,它现在支持NLP任务、文本相似度等。
# 1. 导入所需的库
from gensim.utils import tokenize
from gensim.summarization.textcleaner import split_sentences
# 2. 将段落分词成句子
split_sentences(paragraph)
# 3. 将段落分词成单词
list(tokenize(paragraph))
第三种分词方式是使用Keras库。Keras是一个为人类设计的API,而不是为机器设计的。Keras通过提供一致且简单的API来减轻认知负担。它还减少了用户为常见用例所需的操作数量。Keras提供的文档详细且广泛,帮助开发者轻松利用。它是最常用的深度学习库,也被NASA、CERN等组织使用。
# 1. 导入所需的库
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.text import text_to_word_sequence
# 2. 分词
tokenizer = Tokenizer()
tokenizer.fit_on_texts(paragraph)
train_sequences = text_to_word_sequence(paragraph)
print(train_sequences)