使用 Spacy 对新闻文章进行文本分类

Text Classification of News Articles Using Spacy

Dataset :包含大约 1500 列数据的 Csv 文件 (Text,Labels)其中 Text 是尼泊尔语 的新闻文章,Label 是它的类型(健康、世界、旅游、天气)等等。

我正在使用 Spacy to train my Text Classification Model. So far, I have converted the dataset to a dataframe which looks like this 然后通过代码

转换为可接受的空间格式
dataset['tuples'] = dataset.apply(
    lambda row: (row['Text'],row['Labels']), axis=1)
training_data = dataset['tuples'].tolist()

这给了我训练数据集中的元组列表,例如 [('text...','label...'),('text...','label...')]

现在,我如何在这里进行文本分类?

在spacy的文档中,我找到了

textcat.add_label("POSITIVE")
textcat.add_label("NEGATIVE")

我们是否必须根据标签添加标签,还是我们应该使用 positive/negative? spacy 是否在训练后根据我们的数据集生成标签?

有什么建议吗?

您必须添加自己的标签。所以,在你的情况下:

textcat.add_label('Health')
textcat.add_label('World')
textcat.add_label('Tourism')
...

spacy 然后将只能预测您在上面的代码块中添加的那些类别

训练数据有一种特殊格式:包含数据的列表中的每个元素都是一个元组,其中包含:

  1. 文字
  2. 只有一个元素的字典。 cats 是一个键,另一个字典是一个值。另一本字典包含您所有的类别作为键,10 作为值,指示该类别是否正确。

因此,您的数据应如下所示:

[('text1', {'cats' : {'category1' : 1, 'category2' : 0, ...}}), ('text2', {'cats' : {'category1' : 0, 'category2' : 1, ...}}), ...]