统一文本和图像分类(Python)

统一文本和图像分类(Python),python,machine-learning,classification,text-classification,Python,Machine Learning,Classification,Text Classification,我正在编写一个代码来对科学文章的文本进行分类(使用标题和摘要)。为此,我使用了支持向量机,它提供了很好的准确性(83%)。同时,我使用CNN对这些文章的图像进行分类。我的想法是将文本分类器和图像分类器合并,以提高精度 有可能吗?如果是这样的话,你会知道我如何实施它或某种指导方针吗 谢谢大家! 你可以利用有线电视新闻网来做这两件事。为此,您需要两个(甚至三个)输入。一个用于文本(或两个,其中一个用于摘要,另一个用于标题),第二个用于图像输入。然后,在某一点合并conv max池层之前,您将拥有一些

我正在编写一个代码来对科学文章的文本进行分类(使用标题和摘要)。为此,我使用了支持向量机,它提供了很好的准确性(83%)。同时,我使用CNN对这些文章的图像进行分类。我的想法是将文本分类器和图像分类器合并,以提高精度

有可能吗?如果是这样的话,你会知道我如何实施它或某种指导方针吗


谢谢大家!

你可以利用有线电视新闻网来做这两件事。为此,您需要两个(甚至三个)输入。一个用于文本(或两个,其中一个用于摘要,另一个用于标题),第二个用于图像输入。然后,在某一点合并conv max池层之前,您将拥有一些conv max池层。然后插入一些附加的CNN或密集层


此模型中还可以有多个输出。例如一个组合的,一个用于文本,一个用于图像。如果您使用的是keras,则需要函数式API。(他们在示例中使用了LSTM,但我想你应该坚持使用CNN。)

如果你从两个分类器中得到概率,你可以对它们进行平均,并得到综合结果。但是,采用加权平均值可能是更好的方法,在这种情况下,您可以使用验证集为权重找到合适的值

prob_svm = probability from SVM text classifier
prob_cnn = probability from CNN image classifier
prob_total = alpha * prob_svm + (1-alpha) * prob_cnn  # fine-tune alpha with validation set

如果您可以获得另一个分类器(可能是这两个分类器中任何一个的不同版本),您也可以进行多数投票,即参加两个或所有三个分类器都同意的课程。

谢谢您的输入!在多数票的情况下。。。我的验证集应该如何设置?我应该有一个混合集,还是只有文本或图像?这让我在实现中感到非常困惑。应该由混合集组成。您可以按文档分割数据,文档的文本和图像将显示在培训数据或验证数据上(不像培训中的一个,验证中的一个),我认为我的数据类型可能会有问题。因为我有单独的图像和文本。文件夹中的图像根据其类别和.csv文件中的文本。你认为这还有可能吗?再次感谢,@xashru=)您可以单独训练各个模型,但需要确保同一文档的图像和文本不会在训练集和验证集中混合。谢谢!我明白了,我一定会尝试。也谢谢你的输入:)我尝试应用类似的方法,但我总是在数组维度上出错。因为图像数组如下所示:[256,256,3]和文本[94601000]。目前我的错误是:
ValueError:Graph disconnected:无法获取“input_19”层的张量张量值(“input_19:0”,shape=(?,256,256,3),dtype=float32)。访问以下以前的层时没有问题:[]
很抱歉,如果没有代码,我无法帮助您解决此问题。没有问题,我已解决,谢谢。但现在我有以下疑问:我的训练集中必须有文本和相应的图像吗?因为我已经随机选择了我的文本和图像到我的训练集中。但我现在对集合的匹配感到困惑。你明白了吗?你需要确保你将图像和相应的文本输入到神经网络进行训练。如果您给出的文本不属于图像,它将学习其他内容。所以随机选取样本是很好的,但是你需要确保图像与训练/测试集中的文本相对应。好的,我知道了。非常感谢你