从根本上说,我正在寻找合理的方法来实现标签组之间的相似度排名,其中一个标签组是 2 到 9 个标签。类似于对词汇量为 200,000 个单词的 2 到 9 个单词句子的相似度进行排序,除了词序无关紧要。
我有一组带标签的图像,我想实现几个搜索功能:
其中相似性仅基于标签。
找到相同标记的图像并不难,但在那之后,我对继续进行的最佳方式有点茫然。我们有数十万个标签,但没有元数据,因此我们不知道“Outlook”与“Microsoft”或“Windows”或“电子邮件”相关,因此无法理解标记图像的相关性差异“Microsoft,Excel,Bar Graph”到标记为“Excel,Spreadsheet”的图像与标记为“Visio,Bar Graph”的图像。
对于“类似图像”,我们希望将“Microsoft,Excel,Bar Graph” 匹配到“Visio,Bar Graph”,而对于“类似但不同的图像”,我们希望将“Microsoft,Excel,Bar Graph” 匹配到“ Excel电子表格”。
我目前最好的猜测是将标签视为文本并将它们放入Solr 中。另一方面,也许一种不同类型的数据库,如 Neo4j,将是要走的路。
关于如何向前迈出几步的任何建议?我不期待一个完整的解决方案,但对一般方法的建议将不胜感激。
额外学分:
更困难的是,当标签被分配给图像时,它们被指定为“主要”或“次要”,当然我们要考虑到这一点。
让我们重复这个问题。
这意味着搜索必须完全依赖于集合(和字符串)的一些相似性度量。
此类措施的示例包括:
这篇 2010 年的论文:基于协作权重模型的加权标签相似性度量将其中的几个(和其他)应用于标签问题,并展示了如何包含权重。恕我直言,这应该会有所帮助。
Another (simpler) application can be seen in this paper from 2013: Using of Jaccard Coefficient for Keywords Similarity.
For
"Similar images"we'd want to match"Microsoft, Excel, Bar Graph"to"Visio, Bar Graph"
It would have some similarity due to that one tag ("Bar Graph") is common to both sets of tags.
while for
"Similar but different images"we'd want to match"Microsoft, Excel, Bar Graph"to"Excel, Spreadsheet".
Again one tag in common ("Excel"). But how should the system know that "Visio" is more similiar to the set "Microsoft, Excel, Bar Graph" than "Spreadsheet"?
That would require semantic information. I don't see how to solve this otherwise.
I found not much which would help you with your chosen approach (you restricted it quite a bit), except for a discussion of various metrics in the 2009 paper below.
But I would like to keep the steps of my little searching on this topic online here, because it puts your problem into context.
The research community seems to go in these directions:
See this paper from 2009: Evaluating Similarity Measures for Emergent Semantics of Social Tagging.
Instead of the traditional approach to define similarity by comparing the graphical data of the images
I = { (x, y, colour) }
Run Code Online (Sandbox Code Playgroud)
by some measure (content-based image retrieval, query by image content, content-based-visual information retrieval), those authors use information (harvest semantics) from the tags, like you intend.
Their basic model consists of user assigned tags for a resource, comparing tuples of a so-called folksonomy
F = { (user, resource, tag) }
Run Code Online (Sandbox Code Playgroud)
which can be scaled down to your case of (resource, tag) tuples by different approaches to aggregate over the users resulting in different similarity measures.
Interesting is the use of semantic similarity, e.g. Jiang-Conrad, but alas, you have no semantic meta data (ontology e.g.) for your tags, which leaves you sticking to the similarity of the string representation of the words.
Again this paper The Use of Ontologies for Improving Image Retrieval and Annotation from 2008 favours the use of ontologies, but I think it gives a nice discussion of the various approaches.
Folksonomies, social tagging systems that relies on the idea of the wisdom of the people. One representative example of this is Flickr. com. This approach overcomes the so much time consuming of manual annotation but the inconsistency in tag use can difficult the search through the entire collection of data.
Both papers above cite this paper Augmenting Navigation for Collaborative Tagging with Emergent Semantics from 2006.
However, using tags alone for searching and browsing databases clearly has its limitations. First, people make mistakes while tagging, such as spelling mistakes, or accidental tagging with the wrong tag. Second, there is no solution to cope with homonymy, i.e. to distinguish different meanings of a word. Third, synonymy or different languages can only be handled by tagging data explicitly with all terms.
These authors combine social tagging with the initially mentioned content-based image retrieval.
Yet another link: collaborative tagging.
| 归档时间: |
|
| 查看次数: |
408 次 |
| 最近记录: |