比较想法相似性的算法(作为字符串)

时间:2012-04-02 21:21:51

标签: algorithm nlp artificial-intelligence

考虑一个记录问题答案的任意文本框,在你死之前你想做什么?

使用一组响应字符串(最大长度为240),我想以某种方式对它们进行排序和分组并按想法计算它们(这可能只是字符串相似性,如this question中所述)。

  1. 还有其他或更好的方式来做这样的事吗?
  2. 这是否与字符串相似性有任何不同
  3. 这是正确的问题吗?
  4. 这里的想法是让人们一遍又一遍地在文本框中书写,并且我提供一个数字来描述,一般来说,802人写了大致相同的东西

3 个答案:

答案 0 :(得分:8)

比字符串相似性困难得多。这是您至少需要做的事情:

  • 执行一些文本格式化/清除任务,例如删除标点符号和常用的“停用词”
  • 根据出现答案的条款构建语料库(包含其使用统计信息的单词集合)。
  • 计算每个学期的重量。
  • 从每个答案构造一个文档向量(每个术语对应一个非常高维的欧几里德空间中的维度)
  • 对文档向量运行聚类算法。

阅读一本好的统计自然语言处理书,或搜索谷歌的好介绍/教程(可能的术语:统计nlp 文本分类群集)您可能会发现一些库( weka nltk )会根据您选择的语言而出现,但您需要了解使用该库的概念

答案 1 :(得分:2)

Latent Semantic Analysis (LSA)可能会让您感兴趣。这是a nice introduction

  

潜在语义分析(LSA)是自然语言处理中的一种技术,特别是在矢量语义中,通过产生与文档和术语相关的一组概念来分析一组文档与它们包含的术语之间的关系。   [...]

答案 2 :(得分:1)

你想要的是NLP中一个非常开放的问题。 @Ali的答案在很高的层次上描述了这个想法,但是“为每个答案构建一个文档向量”这一部分真的很难。有一些显而易见的方法可以从它包含的单词的向量构建文档向量。加法,乘法和平均很快,但它们有效地忽略了语法。 Man bites dogDog bites man具有相同的表示形式,但显然具有相同的含义。谷歌compositional distributional semantics - 据我所知,德克萨斯大学,特伦托大学,牛津大学,苏塞克斯大学和谷歌大学都有人在该地区工作。