通常我们从:
nlp = spacy.load('en_encore_web_sm') # or medium, or large
或
nlp = English()
然后:
doc = nlp('my text')
然后我们可以做很多有趣的事情,即使不知道第一行的性质。
但nlp到底是什么?引擎盖下面到底发生了什么?“nlp”是一个预先训练好的模型,就像机器学习中理解的那样,因此是位于光盘上某个地方的某个大文件吗?
我遇到了一个解释,即“nlp”是一个“对象,包含过程管道”,但这只是解释了一点。
4条答案
按热度按时间bksxznpy1#
你可以检查任何python对象的类型:
你会得到类似这样的东西(取决于传递的参数)
你是对的,它类似于“预训练”模型,因为它包含词汇,二进制权重等。
请查看官方文档:
https://spacy.io/api/language
jm81lzqq2#
你可以通过探索它来推断
nlp()
是什么。举例来说:将打印完全相同的文本。另一方面,如果你这样做:
你将得到字符串的实体:
它确实是针对英语语言的大型预训练模型,并且具有许多功能(解析器,lemmatizer,tagger),如上面所示。我希望这有助于澄清你的问题。
o0lyfsai3#
nlp
是一个spaCy管道。你可以在这里看到它的细节:https://spacy.io/models/en#en_core_web_sm管道包含多个组件,在本例中:
*tok2vec:用于文本标记化和矢量化的Token-to-Vector模型
*tagger:词性标注器
*parser:依赖解析器
*attribute_ruler:基于规则的属性Map
*lemmatizer:词形化(词的基本形式)
*ner:命名实体识别
希望这对你有帮助。在Pipelines的文档中有更多的细节:https://spacy.io/usage/processing-pipelines
esbemjvw4#
spaCy是NLP(自然语言处理)领域的一个流行库,专为生产使用而设计。当你使用函数spacy.load('en_core_web_sm')或初始化一个English()对象时,你正在创建一个NLP处理管道。
这将加载一个名为en_core_web_sm的预训练模型,这是spaCy的小型英语模型之一。该模型具有几个开箱即用的功能,例如标记化、词性标记、命名实体识别和依赖关系解析。
这将创建一个空白的英语处理管道。它将不包含en_core_web_sm的功能,因为它没有加载任何预先训练的模型。它将主要标记你的文本,但没有额外的注解,如词性标签或命名实体。
3.Pipeline:
当你调用doc = nlp('my text ')时,文本由nlp管道处理。根据模型或您如何设置它,它将对文本进行标记,标记词性,解析依赖关系,识别命名实体,等等。