使用最近的邻居来预测快速文本的文本分类

时间:2018-06-20 16:39:04

标签: deep-learning text-classification fasttext

我可能会误解快速文本/深度学习如何用于分类,我想考虑最近的邻居来预测标签。我的工作目的是预测带有同义词的标签。

我用fasttext训练了一个大数据集:

fasttext supervised -input data/spam_status.txt -output models/sem -lr 1.0 -wordNgrams 1 -epoch 25

spam_status.txt使用正则表达式标记包含单词“ skype”的邮件:

__label__skype i dont have skype __NUMBER__ sorry
__label__skype skype
__label__skype si ta un skype si
__label__skype i will give u my skype
__label__skype pv ici no skype
__label__skype skype

还有大量带有其他标签的其他消息,如果找不到任何内容,则单击“确定”。

“ skype”的最近邻居是(带有fasttext nn models/sem.bin):

  • 电子邮件
  • viber
  • emaill
  • skp

这太好了,快速文本给我很好的类似词语。但是如果我问一个预测:

fasttext predict-prob ./models/sem.bin -                                                                                          
donne moi ton skype
__label__skype 1.00001
donne moi ton viber
__label__ok 1.00001
donne moi ton emaill
__label__ok 1.00001

为什么这里不考虑NN?

1 个答案:

答案 0 :(得分:1)

因为您使用示例训练了模型,其中只有带有单词“ skype”的消息带有标签Skype。因此,带有“电子邮件”和“ Viber”之类的单词的消息被标记为“确定”。

您的第一遍数据告诉您应该重新标记。使用正则表达式标记数据总是会引起这样的问题。现在,您至少可以将任何带有“电子邮件”或“ Viber”的消息重新标记为“ __label__skype”,这样它将学习该模式。但是,它可能不会给您带来任何好处,而不仅仅是使用正则表达式作为分类器,因为该模型将学习正在使用的模式:如果它具有该简短列表中的单词之一,则将其标记为“ Skype”,否则将其标记为“好”。

通过听起来几个小时手动标记数据而不是使用正则表达式,您可以获得更好的结果。