在PHP中比较两个Paragarph的最佳策略是什么;MySQL


What is the best strategy to compare two Paragarphs in PHP & MySQL?

我已经开发了一个打字软件,可以用PHP和amp;MySQL。在延续过程中,我遇到了一个战略问题,即我应该如何将候选人键入的文本的相似性与我给他们键入的标准段落进行比较(以硬拷贝的形式,尽管相同的副本也存储在MySQL数据库中)。我的困境是,我是在PHP中使用Levenshein距离算法,还是直接在MySQL中使用,以便优化性能问题。事实上我担心在评估文本时,如果用PHP编程会出错。这里值得一提的是,文本将根据每分钟键入的单词进行比较以获得排名。

最简单的解决方案是利用PHP内置的levenshteindocs函数来比较两个文本块。如果您想将处理回退到MySQL数据库,您可以实现Levenstein中列出的解决方案:MySQL+PHPStackOverflow

另一个PHP选项可能是similar_textdocs函数。

PHP Levenstein函数的不幸缺点是它不能处理超过255个字符的字符串。根据php手册文档:

此函数返回参数字符串或-1,如果其中一个参数字符串的长度超过255个字符的限制。

因此,如果你的段落比这个长,你可能会被迫实现MySQL解决方案。我想你可以把段落分成255个字符块进行比较(尽管我不能肯定地说这不会"破坏"Levenstein算法)。

我不是语言学解析和处理方面的专家,所以我不知道这些是否是最好的解决方案(正如你在问题中提到的)。然而,它们非常简单明了。