训练一个基本的spacy文本分类模型。

5

我正在尝试使用spaCy训练一个基本的文本分类模型。我有一组文本,并想构建一个模型,将每个文本分类为outcome1outcome2。假设我的数据如下:

texts = ["This is the first example text",
         "This is the second example text",
         "This is yet another text"]
y = ["outcome2", "outcome1", "outcome1"]

我的问题是,我甚至不能将这些文本处理成文档:

nlp = spacy.blank("en")

textcat = nlp.create_pipe("textcat")
textcat.add_label("outcome1")
textcat.add_label("outcome2")
textcat = nlp.add_pipe("textcat", last = True)

nlp.pipe_names

>>> ['textcat']

但是当我尝试处理任何文本时,会出现错误:

doc = nlp("This is a sentence")

>>> ValueError: Cannot get dimension 'nO' for model 'sparse_linear': value unset

我尝试跟着这个教程(有点过时)(链接),使用 spaCy 快速入门小部件 设立一个项目,但是在初始化配置文件时一直遇到错误。我错过了什么吗?

1
相反,对于 spaCy v3,请尝试此示例项目:https://github.com/explosion/projects/tree/v3/pipelines/textcat_demo。如何开始一个项目:https://spacy.io/usage/projects 或者如果您来自v2示例:https://github.com/explosion/spaCy/tree/master/examples/。 - aab
看一下这个 Kaggle 上的示例。在访问文章 https://www.kaggle.com/poonaml/text-classification-using-spacy 时,搜索 TextCategorization。 - scarpacci
1个回答

1

实际上,我在这里找到了一个非常相似的讨论,并且正是这个问题所询问的内容: https://github.com/explosion/spaCy/discussions/9732

该讨论指出,在使用之前必须指定标签、训练模型并初始化它才能使用。此外,从版本3开始,不建议使用自己的训练循环进行训练,而是使用新的配置系统,并让spacy为您处理训练。请参阅: https://spacy.io/usage/training


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接