首页 > 解决方案 > nlp.vocab 和 nlp.vocab.strings 有什么区别?

问题描述

我正在学习 NLP,我想看看我用 spacy 下载的词汇总量。

import spacy

nlp = spacy.load('en_core_web_trf')
nlp2 = spacy.load('en_core_web_sm')

在导入 Spacy 并加载较大和较小的包后,我检查了这些:

len(nlp.vocab)

给出 770,

len(nlp2.vocab)

给出 761,

len(nlp.vocab.strings)

给出 83934,

len(nlp2.vocab.strings)

给出 83914。

它们如何以及为什么不同?如何检查每个包裹的总词汇量?

标签: pythonnlpspacy

解决方案


len(nlp.vocab)是缓存词位的数量,因此当您在某些单词上使用模型时,它可能会有所不同。

len(nlp.vocab.strings)将字符串映射到哈希值,反之亦然。它可以为您提供不同字符串的数量。对于模型en_core_web_md,这会给你701800例如。

如果您想访问这些单词,请尝试:

words=[]
for x in nlp.vocab.strings:
    words.append(x)

推荐阅读