我想知道如何将来自spacy的预训练转换器模型en_trf_bertbaseuncased_lg
用于将来的NLP任务(NER,POS等)。文档指出,该模块只能用于以下管道预处理模块(https://spacy.io/models/en#en_trf_bertbaseuncased_lg):
谁能向我解释这些组件在做什么以及可以在哪些任务中使用?还是有人知道一个很好的资料来阅读它?
>>> import spacy
>>> nlp = spacy.load("en_trf_bertbaseuncased_lg")
>>> nlp.pipe_names
[sentencizer, trf_wordpiecer, trf_tok2vec]
答案 0 :(得分:0)
SpaCy的Language Processing Pipelines应该指导您获取所需的信息。
Sentencizer:
一个简单的管道组件,允许不需要依赖项解析的自定义句子边界检测逻辑。默认情况下,句子分段由DependencyParser
执行,因此Sentencizer
使您可以实施更简单的基于规则的策略,而无需加载统计模型。也可以通过字符串名称"sentencizer"
使用该组件。初始化后,通常使用nlp.add_pipe
将其添加到处理管道。
答案 1 :(得分:0)
从文档中我发现,您可以使用BERT spacy模型en_trf_bertbaseuncased_lg
模型来获取句子标记的词嵌入。
安装spacy BERT模型和spacy-transformers
模块:
pip install spacy-transformers
python -m spacy download en_trf_bertbaseuncased_lg
请参阅以下官方文档中稍作修改的示例:
import spacy
nlp = spacy.load("en_trf_bertbaseuncased_lg")
doc = nlp("Apple shares rose on the news. Apple pie is delicious.")
# doc[0] accesses the emmbedding of the first token = 'Apple'
print(doc[0]) # Apple
# doc[7] accesses the emmbedding of the 8th token = 'Apple'
print(doc[7]) # Apple
# they are not the same, because the embedding are context sentitive (check with cosine similarity)
print(doc[0].similarity(doc[7])) # 0.43365735
# get the shape of the last hidden layer
print(doc._.trf_last_hidden_state.shape) # (16, 768)
# get the word embeddings for all tokens
print(doc._.trf_last_hidden_state)
[[0.34356186 -0.23586863 -0.06684081 ... -0.17081839 0.60623395 0.15930347] [0.65008235 0.01991967 -0.11502014 ... -0.5832436 -0.02782568 -0.4122076] [1.499611 0.02532474 0.23262465 ... -0.3212682 0.27605072 0.18531999] ... [0.24741858 0.00736329 -0.28011537 ... -0.1693347 -0.20065884 -0.6950048] [0.2859776 0.00303659 -0.37783793 ... 0.37828052 0.041728 -0.5648101] [0.7320844 0.11067941 -0.04100507 ... 0.25042596 -0.21909392 -0.31274694]] >
然后可以在任何进一步的下游NLP /机器学习任务中使用嵌入词。
答案 2 :(得分:0)
trf_wordpiecer组件
doc._.trf_alignment
引用docs:
Wordpiece可方便地训练神经网络,但不能 产生与任何语言概念相匹配的细分 “字”。最罕见的单词将映射到多个单词标记,并且 有时,对齐方式将是多对多。
trf_tok2vec组件
doc._.trf_last_hidden_state
doc.tensor
中的令牌对齐功能。另请参见此blog article介绍spacy的变压器集成。