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

Python 计算文本相似度的最佳方法是什么?,python,nlp,nltk,Python,Nlp,Nltk,有一些方法可以检索文本之间的相似性,如wup_相似度()余弦_相似度()等。我的目的是制作一个论文答题系统。这意味着我想比较答题表和评分方案。到目前为止,我没有使用任何培训或建模方法做以下工作 1.预处理两份文件(删除标点符号、进行柠檬化等) 2.接下来,我使用word net syn集合获得相似的单词,并制作了两个大数组(标记方案及其同义词和答案表及其同义词)——可能不是正确的方式 3.然后我需要比较这两个大数组,并希望得到相似性值 你能给我一些建议或回答吗。我知道word net syn集合

有一些方法可以检索文本之间的相似性,如wup_相似度()余弦_相似度()等。我的目的是制作一个论文答题系统。这意味着我想比较答题表和评分方案。到目前为止,我没有使用任何培训或建模方法做以下工作

1.预处理两份文件(删除标点符号、进行柠檬化等)

2.接下来,我使用word net syn集合获得相似的单词,并制作了两个大数组(标记方案及其同义词和答案表及其同义词)——可能不是正确的方式

3.然后我需要比较这两个大数组,并希望得到相似性值

你能给我一些建议或回答吗。我知道word net syn集合不是最好的,因为它会给出不相关的答案。 例如:animal和vehicle将返回1作为类似值


然而,我需要找到解决方案。

几乎每个搜索引擎使用的标准方法是将TF-IDF向量与余弦相似性进行比较。这可能对你的任务不公平,因为你是在谈论评分方案下的论文评估。这还包括检查重要命题的同一性(在动词参数结构的意义上) 以及答案的修辞结构。这一点很重要,因为“哥伦布探索美洲大陆”在语义上可能与“哥伦布探索美洲大陆”相关,但后者显然是无意义的(在大陆是主题的情况下)。也许可以看看话语表征理论(DRT)和需要为其建模的形式逻辑。比较你的文章的DRT会做得更好,对议论文也有帮助


对于DRT,您可能希望从以下内容开始:。这很复杂,你的申请也很复杂。另一种方法是使用依赖关系解析器,以便从评分方案中提取最重要的命题,然后检查这些关系与某篇文章的答案相比有多少以及有多相似。为此,您可以使用向量的相似性度量或关系(动词)和参数的嵌入及其各自的角色(“主语”和“宾语”)。我认为在你使用完整的DRT之前尝试一下这一点是值得的,因为根据你的领域定制DRT需要做大量的工作

非常感谢,你能给我一些参考资料吗?这将对我有很大帮助。实际上,为了得到最重要的单词,我用django创建了一个web界面。因此,首先我将标记方案标记为单词,并为它们分配权重。然后,我将权重保存在数据库中。在将文档与相似性度量进行比较之后,我使用加权和机制添加权重来回答问题。我需要精确我的相似性度量。我想这会有帮助的。再次谢谢