我的作业文档中的 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 示例崩溃了的主要内容,如果未能解决你的问题,请参考以下文章

PyTorch圣殿 | 传奇NLP攻城狮成长之路

NLP系列(三)LDA主题模型

从 UIScrollview 应用程序中的文档目录加载 50 多张图像崩溃

自然语言处理 | 通过影片查看示例简单了解NLP中的文本分类

需要:从数据库中的作业队列执行作业的 Windows 服务;通缉:示例代码

感谢51CTO博客,今天已经收到了中的奖品咯