什么是计算文本相似度的最佳方法?

4
有一些方法可以检索文本之间的相似度,例如wup_similarity() cosine_similarity()等。我的目的是建立一个答案论文比对系统。也就是说,我想比较答案和评分标准。到目前为止,我还没有使用任何培训或建模方法来完成以下工作。
1.预处理两个文档(去除标点符号,进行词形还原等)。
2.接下来,我使用Word-Net Syn-Sets获取相似单词,并生成两个大数组(评分方案及其同义词和答案列表及其同义词)--可能不是正确的方法。
3.然后,我需要比较这两个大数组并获取相似度值。
请问您能否通过提供一些建议或答案来帮助我解决这个问题?我知道Word-Net Syn-Sets并不是最好的选择,因为它会返回无关的答案。例如:动物和车辆将返回1作为相似值。但是,我需要找到解决方案。

2
https://dev59.com/lqnka4cB1Zd3GeqPTcMW - durjoy
1个回答

1
标准方法是通过比较TF-IDF向量的余弦相似度来进行搜索引擎,这种方法可能无法胜任您的任务,因为您要评估给定评分方案的论文。这还包括检查重要命题(以动词-论元结构的意义)和答案的修辞结构的身份。这很重要,因为“哥伦布探索了美洲大陆”可能在语义上与“美洲大陆探索了哥伦布”相关,但后者显然是无意义的(在大陆是主语的情况下)。也许可以看一下话语表示理论(DRT)和需要对其建模的形式逻辑。对您的文本的DRT比较将更好地完成工作,并适用于论证性文本。
对于DRTs,您可能希望从这里开始:https://plato.stanford.edu/entries/discourse-representation-theory/#DRSLanSynSemAcc。它非常复杂,就像您的应用程序一样。另一种方法是使用依赖解析器来提取标记方案中最重要的命题,然后检查与某个论文答案相比关系有多少以及相似程度如何。为此,您可以使用向量或嵌入式关系(动词)和其各自角色(“主题”和“对象”)的相似性度量。我认为在使用完整的DRT之前尝试这一点是值得的,因为将其量身定制到您的领域需要大量工作。

非常感谢,你能给我一些开始的参考资料吗?这对我来说将会是很大的帮助。 - R.Wedisa
实际上,为了获取最重要的单词,我使用 Django 创建了一个 Web 接口。首先,我将评分方案标记化为单词并为它们分配权重。然后,我将这些权重保存在数据库中。在使用相似度测量比较文档之后,我使用加权求和机制来添加答案的权重。我需要准确测量相似度,我认为这会有所帮助。再次感谢。 - R.Wedisa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接