spacy中的nlp是什么?

问题描述 投票:0回答:3

通常我们从:

开始
nlp = spacy.load('en_encore_web_sm') # or medium, or large

nlp = English()

然后:

doc = nlp('my text')

即使不知道第一行的性质,我们也可以从中得到很多乐趣。

但是“nlp”到底是什么?幕后到底发生了什么?正如机器学习中所理解的那样,“nlp”是一个预训练模型,因此一些大文件位于光盘上的某个位置吗?

我遇到了一个解释,“nlp”是一个“对象,包含进程管道”,但这只能解释一点。

python-3.x machine-learning nlp spacy
3个回答
2
投票

你可以随时检查任何Python对象的类型:

nlp = spacy.load('en_encore_web_sm') # or medium, or large
print(type(nlp))
print(dir(nlp))  # view a list of attributes

你会得到类似这样的东西(取决于传递的参数)

<class 'spacy.lang.en.English'>

你是对的,它类似于“预训练”模型,因为它包含词汇、二进制权重等。

请查看官方文档:

https://spacy.io/api/language


0
投票

您可以通过探索来推断

nlp()
是什么。例如:

import spacy
from spacy import displacy

nlp = spacy.load("en_core_web_lg")

text = "Elon Musk 889-888-8888 [email protected] Jeff Bezos (345)123-1234 [email protected] Reshma Saujani [email protected] 888-888-8888 Barkevious Mingo"

text = nlp(text)

print(text)

将打印完全相同的文本。另一方面,如果你这样做:

for word in text.ents:
    print(word.text,word.label_)

您将获得字符串的实体:

Elon Musk PERSON
889-888 CARDINAL
Jeff Bezos PERSON
345)123 CARDINAL
Reshma Saujani PERSON

它确实是一个大型的英语预训练模型,并且具有许多功能(解析器、词形还原器、标记器),如上面演示的那样。希望这有助于澄清您的问题。


0
投票

nlp
是一个 spaCy 管道。您可以在这里查看详细信息:https://spacy.io/models/en#en_core_web_sm

管道包含多个组件,在本例中:

  • tok2vec:用于标记化和向量化文本的标记到向量模型
  • 标注器:词性 (POS) 标注器
  • 解析器:依赖解析器
  • attribute_ruler:基于规则的属性映射
  • lemmatizer:词形还原(单词的基本形式)
  • ner:命名实体识别

希望这有帮助。有关管道的文档中有更多详细信息:https://spacy.io/usage/processing-pipelines

© www.soinside.com 2019 - 2024. All rights reserved.