语义匹配字符串 - 使用word2vec或s-match?

时间:2015-06-12 06:13:57

标签: semantic-analysis word2vec

我遇到了将两个字符串匹配的问题,这些字符串更常见'更少一般','相同含义','反义词' ;等

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

举个例子,

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之外的知识库(如其页面中所述)。

如果我使用word2vecdl4j,我猜它可以给我相似度分数。但它是否也支持告诉字符串more generalless general而不是其他字符串?

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

有人可以为前进的方向投光吗?

1 个答案:

答案 0 :(得分:1)

用于建模单词的机器学习方法(例如word2vecdl4j)的当前用法基于distributional hypothesis。他们根据语境训练单词和短语的模型。这些单词模型中没有本体论方面。在其训练最好的案例中,基于这些工具的模型可以说两个词是否可以出现在相似的语境中。这就是他们的相似性衡量标准的作用。

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

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

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

您正试图在句子中检查entailment关系:

  

(1)“ c b

     

(2)“ c a

     

(3)“ c a ”有关。

其中:

  

(1)需要(2)

  

(1)需要(3)

在您的前两个示例中,您可以使用语义知识库来解决问题。但是在理解两个短语之间的差异之前,你的第三个例子可能需要一个语法分析。例如,这些短语:

  

“男人”

     

“所有男人”

     

“高个子男人”

     

“黑衣人”

     

“一般的男人”

解决问题需要合乎逻辑的理解。但是,您可以根据语言经济进行分析,在短语中添加更多单词通常会使不那么通用。与较短的短语相比,较长的短语不太通用。它没有为您提供解决问题的精确工具,但它可以帮助您分析某些短语,而无需使用allgeneralevery等特殊字词。