我遇到了将两个字符串匹配的问题,这些字符串更常见'更少一般','相同含义','反义词' ;等
字符串可以来自任何域。假设字符串可以来自人们的电子邮件。
举个例子,
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可以基于训练集或维基百科等大型语料库。
有人可以为前进的方向投光吗?
答案 0 :(得分: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
等特殊字词。