我该如何继续寻找两个完全不同但相关的短语之间的关系。例如:1)“今天的社交媒体网站......” 2)“Facebook 是非常流行的社交网站......”
虽然这两个短语实际上并没有太多共同的词,但它们是相关的(因为 Facebook 是当今的社交媒体网站)。我如何量化这种关系(如果可能的话)?
我该如何继续寻找两个完全不同但相关的短语之间的关系。例如:1)“今天的社交媒体网站......” 2)“Facebook 是非常流行的社交网站......”
虽然这两个短语实际上并没有太多共同的词,但它们是相关的(因为 Facebook 是当今的社交媒体网站)。我如何量化这种关系(如果可能的话)?
简单,无效的方法:计算共同单词的数量(和/或单词本身),或两个句子之间的编辑距离,但使用单词而不是字符。在这种情况下,它会发现两个句子中都出现了“social”这个词。您还可以找到一种方法来使用一些词库数据来检测同义词,例如“网站”和“站点”。这可能需要一些工作。可以忽略常用词(“and”、“the”、...),以减少巧合匹配的机会。
细化:维护某种单词之间的链接图(例如“Facebook”和“networking”),将单词之间的链接权重建立在它们一起出现的频率上,并以此为基础衡量相关性。维护一个经常出现的单词列表,并忽略它们。显然,这取决于您的算法是否有一些具有代表性的“训练数据”。
复杂而有效的方法:阅读机器学习。
这是一个非常普遍的问题,您将不得不采用多种方法来获得任何可观的结果。其实你说的就是NLP的终极目标。我建议您将问题分解为多个部分,并逐个解决。
第一个难题是了解两个句子是否在谈论相同/相似的实体。这可以通过识别不同句子中的主语、宾语、动词、位置引用、工具引用、与格引用等来完成。这些参考然后可以相互比较。我想到的一种方法是查看 wordnet 距离。你将不得不在一段时间内建立你的词汇量。
难题的第二部分是然后解决句子的精神。您将不得不在这里使用机器学习方法以及语言学。
正如我所说,这是一个非常普遍的问题,因此很难一次性解决。如果我是你,我会以下列方式解决问题:
第 1 步:首先将我的解决方案限制在一个域中。这将帮助我建立更好的本体/词汇,更好地训练我的模型。
第 2 步:解决实体邻近度问题,并尝试了解哪些句子在谈论相似的主题或指向相似的对象等。这一步更多的是语言问题
第 3 步:在机器学习的帮助下,尝试找到具有相似气质和语调的句子。
第 4 步:移动到下一个域并重复这些步骤。
希望这可以帮助。