You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问询:如何从spaCy Vocab中提取所有(单词,向量)对?

从spaCy Vocab提取所有(单词,向量)对的正确方法

你之前直接迭代nlp.vocab的方式会返回Vocab中的所有词汇条目,其中包含大量标点、特殊符号、无预训练向量的内部标记,因此会得到那些奇怪的内容,且仅展示了少量条目。要提取有效的(单词,向量)对,需按以下步骤操作:

1. 加载带预训练词向量的模型

spaCy的小体量模型(如en_core_web_sm)不含预训练词向量,只有中/大体量模型(如en_core_web_lg、en_core_web_trf)自带完整的预训练词向量库。先正确加载模型:

import spacy

# 示例加载英文大模型,其他语言对应带预训练向量的模型即可
nlp = spacy.load("en_core_web_lg")

2. 筛选并提取目标词汇对

通过has_vector属性筛选出带有预训练向量的词汇条目,还可通过is_alpha过滤掉非字母类符号(按需选择):

  • 提取所有带向量的条目(含缩写、特殊格式词汇等):
word_vector_pairs = [(lex.text, lex.vector) for lex in nlp.vocab if lex.has_vector]
  • 仅提取纯字母类单词的向量对:
word_vector_pairs = [(lex.text, lex.vector) for lex in nlp.vocab if lex.has_vector and lex.is_alpha]

验证结果数量

可通过以下代码查看符合条件的词汇总数:

print(len(word_vector_pairs))
# 以en_core_web_lg为例,输出约68000左右

内容的提问来源于stack exchange,提问作者sten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 15:10:58