【问题标题】:Compare two strings and find how closely they are related by meaning比较两个字符串并找出它们在含义上的相关程度
【发布时间】:2012-12-22 13:21:31
【问题描述】:
问题:
我有两个字符串,比如“Billie Jean”和“Thriller”。我需要以编程方式比较它们并找出它们的相关程度。这两首歌都是同一位艺术家的歌曲,因此,它们应该给出比“布拉德皮特”和“牙买加告别”更高的分数(概率、百分比等)。
这样做的一种方法是一个名为 WikipediaMiner 的开源 Java 工具,它使用 Wikipedia 数据转储、检查链接、描述等进行比较。
问题:
请提出一个更好的替代方案,使用任何或所有 Wikipepdia、DBpedia、Freebase 及其表亲,或结合不同的方法。我真的更喜欢可以在服务器上下载和设置的开源软件(例如 Apache Mahout),而不是付费的网络服务。
【问题讨论】:
标签:
data-mining
matching
semantic-web
bigdata
【解决方案1】:
与其说是编程问题,不如说是数据。
所以对于 StackOverflow 来说,这并不是一个真正的问题。
我猜你真正想要的是使用WordNet。这实际上是作为推理单词含义的数据库。例如,数据明确指出数据挖掘是数据处理的一种形式。而这是一个物理实体...
你看,推理的好坏取决于你的数据。
DBPedia 可能还包括从 WordNet 到 Wikipedia 的映射?
【解决方案2】:
如果没有额外的上下文,你不能说“Thriller”是一首歌,而不是音乐视频或电影流派或 Lambchop 专辑。
确定您的项目是什么后,“简单地”遍历 Freebase、MusicBrainz 或您正在使用的任何其他信息源中的连接图即可。
不过,您需要决定如何衡量得分的权重。两首 Michael Jackson 的歌曲是因为它们具有相同的类型而更密切相关,还是因为它们与艺术家 Michael Jackson 直接相关而更密切相关?