对于初学者来说,朴素贝叶斯在这里可能不合适。它假设输入之间是独立的(因此为“天真”),句子中的单词是非常相关的。
但是,假设您真的想将NB作为一种算法来启动实验,那么我将考虑两个选项:
不雅:许多NB分类器
这将是一种替代方法。将观察到的所有单词作为输入向量进行汇总。使所有被视为输出向量的标记成为语料库。具有多个输出的NB分类器等效于具有多个NB分类器,每个分类器具有一个输出(因此,无论使用哪种软件框架,都可以轻松实现)。将每个元素视为训练样本,其中给定的输入(一个单词)是一个1
单词(0
如果存在),一个(如果该单词不存在)。对输出使用相同的二进制方案。
这种蛮力迫使将NB分类器应用到您的数据,并让您仍在努力挖掘将要剩下的庞大分类器,从而找到含义。
更优美:处理您的数据
如果您要使用一个多类NB分类器运行,这是我推荐的方法。
您的目标是弄清楚如何将每组标签映射到一个类。我确定存在某种集群方案或网络分析(可能将链接到[“ murder”]的[[名人]]变成[[放荡]]部分),可以将您的标签合理地映射到一个集群。如果您将标签视为节点,并将两个给定的标签一起视为链接,那么您将需要研究社区检测算法(这是我开始的地方)。但是,如果您只是想让某样东西起作用,那么对标签进行某种形式的修改就可以将标签列表转换为仅在数据集中最常见的标签。
此方法将清理数据的工作放在首位,并使NB分类器的输出更易于理解。