分析,分类和索引元数据

时间:2009-02-10 16:27:16

标签: algorithm text metadata bayesian

我有一个大的(~2.5M记录)图像元数据数据库。每条记录代表一个图像,并具有唯一的ID,描述字段,以逗号分隔的关键字列表(例如每个图像20-30个关键字)以及其他一些字段。没有真正的数据库模式,我无法知道数据库中存在哪些关键字而不迭代每个图像并计算它们。此外,元数据来自几个不同的供应商,每个供应商都有自己的想法,如何填写不同的领域。

我想对这些元数据做一些事情,但由于我对这种算法完全不熟悉,我甚至不知道从哪里开始寻找。

  1. 其中一些图像对它们有一定的使用限制(以文本形式给出),但每个供应商对它们的说法不同,并且无法保证一致性。我想进行一个简单的测试,我可以应用于一个图像,该图像可以指示图像是否没有限制。它不一定非常完美,只是“足够好”。我怀疑我可以使用某种贝叶斯过滤器,对吧?我可以使用我知道限制或无限制的图像语料库来训练过滤器,然后过滤器能够对其余图像进行预测吗?或者有更好的方法吗?
  2. 我还希望能够根据“关键字相似度”对这些图像进行索引,这样,如果我有一个图像,我可以快速分辨哪些图像共享最多的关键字。理想情况下,该算法还会考虑到某些关键字比其他关键字更重要,并对它们进行不同的权衡。我甚至不知道从哪里开始看这里,并且非常高兴任何指针:)
  3. 我主要使用Java,但语言选择与此无关。我更感兴趣的是学习哪种方法最适合我开始阅读。在此先感谢:)

2 个答案:

答案 0 :(得分:2)

绝对必须首先将“关键字列表”字段转换为真正的标记方案。最简单的是一个标签表,以及与图像表的“多对多”关系(即第三个表,其中每个记录具有图像的外键和关键字的另一个外键)。它可以快速找到具有一组关键字的所有图像。

用于检测限制措辞的贝叶斯过滤器很有意思。除非你时间紧迫,否则我会说它去吧。如果是这种情况,一些简单的模式匹配应该可以获得超过90-95%的案例,其余的可以由几个运营商快速完成。

答案 1 :(得分:1)

(1)看起来像是一个分类问题,文字中的单词作为特征,“受限制”和“不受限制”作为标签。贝叶斯过滤或任何分类算法应该可以解决问题。

(2)看起来像是一个聚类问题。首先,您需要提供一个良好的相似度函数,该函数会根据关键字返回两个图像的相似度分数。余弦相似性可能是一个很好的起点,因为您正在比较关键字。从那里你可以计算一个相似性矩阵,只记住数据集中每个图像的“最近邻居”列表,或者你可以进一步使用聚类算法来得出实际的图像聚类。

由于您有如此多的记录,您可能希望跳过计算整个相似度矩阵,并且只需为数据集的小型随机样本计算聚类。然后,您可以将其他数据点添加到适当的群集。如果要保留更多相似性信息,可以查看软聚类。

希望这会让你开始。