1

我有一个匹配两个字符串的问题,即“更一般”、“不太一般”、“相同含义”、“相反含义”等。

字符串可以来自任何域。假设字符串可以来自人们的电子邮件。

举个例子,

String 1 = "movies"
String 2 = "Inception"

在这里我应该知道《盗梦空间》不如电影一般(有点像关系)

String 1 = "Inception"
String 2 = "Christopher Nolan"

在这里我应该知道,盗梦空间不如克里斯托弗诺兰一般

String 1 = "service tax"
String 2 = "service tax 2015"

乍一看,在我看来 S-match 可以完成这项工作。但我不确定 S-match 是否可以用于 WordNet 或 GeoWordNet 以外的知识库(如他们的页面中所述)。

如果我使用word2vecor dl4j,我想它可以给我相似度分数。但它是否也支持告诉一个字符串是more generalless general不是另一个?

但我确实看到 word2vec 可以基于训练集或维基百科等大型语料库。

有人可以在前进的路上照亮吗?

4

1 回答 1

1

当前使用机器学习方法(例如word2vecdl4j用于建模单词)是基于分布假设的。他们根据上下文训练单词和短语的模型。这些词模型中没有本体论方面。在经过最佳训练的情况下,基于这些工具的模型可以判断两个单词是否可以出现在相似的上下文中。这就是他们的相似性度量的工作原理。

Mikolov 论文(abc)表明这些模型可以学习“语言规律”并没有任何本体测试分析,它只是表明这些模型能够预测“单词对成员之间的相似性”。这种预测对您的任务没有帮助。这些模型甚至无法识别与相关性相比的相似性(例如阅读此页面SimLex测试集)。

我会说你需要一个本体数据库来解决你的问题。String 1更具体地说,关于您的示例,似乎String 2在您的示例中:

String 1 = "a"
String 2 = "b"

您正在尝试检查句子中的蕴涵关系:

(1) “ cb

(2) “ c一个

(3) " ca " 有关。

在哪里:

(1) 包含 (2)

或者

(1) 包含 (3)

在您的前两个示例中,您可能可以使用语义知识库来解决问题。但是在理解两个短语之间的区别之前,您的第三个示例可能需要进行句法解析。例如,这些短语:

“男人”

“所有人”

“高个子”

“黑衣人”

“一般的男人”

它需要一个逻辑的理解来解决你的问题。但是,您可以根据语言的经济性来分析,在短语中添加更多的单词通常会使其不那么通用。与较短的短语相比,较长的短语不太通用。它没有给你一个精确的工具来解决问题,但它可以帮助分析一些没有特殊词的短语,如all,generalevery

于 2015-07-03T15:51:28.827 回答