我的作业文档中的 NLP 示例崩溃了
Posted
技术标签:
【中文标题】我的作业文档中的 NLP 示例崩溃了【英文标题】:The example of NLP in my homework documentation is crashing 【发布时间】:2019-12-18 02:37:01 【问题描述】:所以我是 NLP 新手,我正在尝试我的文档中的示例代码,但它给了我错误。
如
"ModelsWarning: [W007] 你使用的模型没有加载词向量,所以 Token.similarity 方法的结果会基于标注器、解析器和 NER,可能无法给出有用的相似度判断。如果您使用的是小型模型之一,例如en_core_web_sm
,则可能会发生这种情况,该模型不附带词向量,仅使用上下文相关的张量。您始终可以添加自己的词向量,或使用较大的词向量之一替代模型(如果有)”
我从文档中准确输入的第二句话给出了这个错误
"只能将str(不是"numpy.float64")连接到str"
我可能只是在做一些愚蠢的事情,但我希望能提供一些见解,为什么会发生这种情况
import spacy
nlp = spacy.load('en')
tokens = nlp('cat apple monkey banana')
for token1 in tokens:
for token2 in tokens:
print(token1.text, token2.text, token1.similarity(token2))
print("\nWorking With Sentences\n")
sentence_to_compare = 'Why is my cat on the car'
sentences = ["Where did my dog go",
'hello, where is my car',
'I\'ve lost my car in my car',
'i\'d like my boat back',
'I will name my dog Diana'
]
model_sentences = nlp(sentence_to_compare)
for sentence in sentences:
similarity = nlp(sentence).similarity(model_sentences)
print(sentence + "-" + similarity)
【问题讨论】:
尝试使用str()
将相似度转换为字符串
@joppich 谢谢!但仍然收到错误代码 ModelsWarning: [W007] 每次打印输出
而且我没有使用核心语言,我是 nlp 的完整语言
【参考方案1】:
根据官方文档,spaCy 使用小型模型使其紧凑且快速,“不附带词向量,仅包含上下文相关的张量”。您仍然可以使用similarity() 方法将文档与小型模型进行比较,但是“结果不会那么好,并且单个标记不会分配任何向量。”为了开始使用更大的模型:
-
在终端中下载更大的模型:
python -m spacy 下载 en_core_web_lg
将 en 更改为 en_core_web_lg,使其应如下所示:
nlp = spacy.load('en_core_web_lg')
【讨论】:
【参考方案2】:SpaCy 的小型模型 (en_core_web_sm, en) 没有为相似性方法提供最佳结果,因为它们不附带词向量张量。这就是您在控制台中收到警告的原因。所以,我认为你应该使用 en_core_web_lg 而不是小模型。
【讨论】:
【参考方案3】:en_core_web_md 使用 this 而不是 en
【讨论】:
以上是关于我的作业文档中的 NLP 示例崩溃了的主要内容,如果未能解决你的问题,请参考以下文章
从 UIScrollview 应用程序中的文档目录加载 50 多张图像崩溃
自然语言处理 | 通过影片查看示例简单了解NLP中的文本分类