【问题标题】:semantic matching strings - using word2vec or s-match?语义匹配字符串 - 使用 word2vec 还是 s-match?
【发布时间】:2015-06-12 06:13:56
【问题描述】:

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

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

举个例子,

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

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

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

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

【问题讨论】:

    标签: semantic-analysis word2vec


    【解决方案1】:

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

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

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

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

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

    (1)“c是b”

    (2) "c 是 a"

    (3)“c与a有关”。

    地点:

    (1) 包含 (2)

    或

    (1) 蕴含 (3)

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

    “男人”

    “所有男人”

    “高个子”

    “黑衣人”

    “一般人”

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

    【讨论】:

    • 谢谢。它有助于更​​好地理解。
    猜你喜欢
    • 1970-01-01
    • 2020-10-31
    • 2018-11-17
    • 1970-01-01
    • 2019-05-27
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多