python - 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。
它们如何以及为什么不同?如何检查每个包裹的总词汇量?
解决方案
len(nlp.vocab)
是缓存词位的数量,因此当您在某些单词上使用模型时,它可能会有所不同。
len(nlp.vocab.strings)
将字符串映射到哈希值,反之亦然。它可以为您提供不同字符串的数量。对于模型en_core_web_md
,这会给你701800
例如。
如果您想访问这些单词,请尝试:
words=[]
for x in nlp.vocab.strings:
words.append(x)
推荐阅读
- python - 使用 pyodbc 时,SQL Server DateTimeOffset 将 tz 感知日期时间的偏移量更改为系统偏移量
- firebase - Flutter:Java 使用或覆盖已弃用的 API
- java - @EnableOAuth2Sso 和 @EnableResourceServer(同一应用程序中的客户端和资源行为)
- google-apps-script - 来自 Google 表单 Google Apps 脚本的计算器
- reactjs - 如何在 nextjs 中使用 html2canvas
- python - 使用 gunicorn 进行预测时无法解开对象
- python - 如何从列表中的字典中获取键值对的值,其中键以非常特定的字母开头
- parsing - 将 Azure 门户中的 aspnet 设置解析为 Json 格式
- php - 通过键合并两个数组并将值从一个数组附加到另一个数组
- php - 只有登录用户才能编辑表单