在本文中,咱们将介绍如何应用 Python 中的 spaCy 库进行自然语言解决(NLP)中的文本预处理。spaCy 是一个高效的 NLP 库,旨在让您在实践中应用最先进的技术。它包含词汇化、分词、词性标注、命名实体辨认等性能。
1. 装置 spaCy 库
要开始应用 spaCy,您须要先装置它。您能够应用以下命令装置 spaCy:
pip install spacy
2. 下载预训练模型
spaCy 依赖于预训练的统计模型来执行各种 NLP 工作。要下载英语模型,请运行以下命令:
python -m spacy download en_core_web_sm
3. 加载模型
接下来,咱们将加载刚刚下载的模型。在您的 Python 脚本中,应用以下代码导入 spaCy 并加载模型:
import spacy
nlp = spacy.load('en_core_web_sm')
4. 文本预处理
当初咱们能够应用 spaCy 的 NLP 性能对文本进行预处理。假如咱们有以下文本:
text = "The quick brown fox jumps over the lazy dog."
4.1 词汇化
词汇化是将文本合成为单词、短语、符号或其余有意义的元素的过程。在 spaCy 中,只需将文本传递给加载的 NLP 模型即可实现此操作:
doc = nlp(text)
4.2 分词
将文本合成为独自的词语或标记的过程称为分词。在上一步中,咱们曾经将文本传递给了 NLP 模型,当初咱们能够应用以下代码迭代分词:
tokens = [token.text for token in doc]
print(tokens)
输入:
['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog', '.']
4.3 词性标注
词性标注是为每个单词调配语法类别(名词、动词、形容词等)的过程。应用 spaCy,咱们能够轻松地获取每个分词的词性标注:
pos_tags = [(token.text, token.pos_) for token in doc]
print(pos_tags)
输入:
[('The', 'DET'), ('quick', 'ADJ'), ('brown', 'ADJ'), ('fox', 'NOUN'), ('jumps', 'VERB'), ('over', 'ADP'), ('the', 'DET'), ('lazy', 'ADJ'), ('dog', 'NOUN'), ('.', 'PUNCT')]
4.4 命名实体辨认
命名实体辨认(NER)是辨认文本中的实体(如人名、地名、组织名等)并将其归类为相应类别的过程。spaCy 提供了一个实体识别器,能够轻松执行此操作:
entities = [(ent.text, ent.label_) for ent in doc.ents]
print(entities)
因为咱们的示例文本不蕴含任何命名实体,输入为空:
[]
让咱们尝试一个蕴含实体的文本:
text_with_entities = "Apple Inc. is an American multinational technology company headquartered in Cupertino, California."
doc_with_entities = nlp(text_with_entities)
entities = [(ent.text, ent.label_) for ent in doc_with_entities.ents]
print(entities)
输入:
[('Apple Inc.', 'ORG'), ('American', 'NORP'), ('Cupertino', 'GPE'), ('California', 'GPE')]
4.5 词干提取和词形还原
词干提取是将词语还原为其根本模式(或词干)的过程,而词形还原是将词语还原为其根本模式,同时思考其词性。尽管 spaCy 不提供间接的词干提取性能,但它的确反对词形还原。以下是如何应用 spaCy 进行词形还原的办法:
lemmas = [(token.text, token.lemma_) for token in doc]
print(lemmas)
输入:
[('The', 'the'), ('quick', 'quick'), ('brown', 'brown'), ('fox', 'fox'), ('jumps', 'jump'), ('over', 'over'), ('the', 'the'), ('lazy', 'lazy'), ('dog', 'dog'), ('.', '.')]
当初您曾经理解了如何应用 spaCy 库执行常见的自然语言解决工作,包含词汇化、分词、词性标注、命名实体辨认和词形还原。这些性能在进行文本剖析、情感剖析和其余 NLP 工作时十分有用。