2012-01-27 68 views
0

我已经开发了一个打字软件来捕捉由我的研究所的候选人使用PHP & MySQL键入的文本。在继续过程中,我坚持一个战略问题,应该如何比较候选人输入的文本的相似性和我给他们的类型的标准段落(以硬拷贝的形式,尽管相同的副本是也存储在MySQL数据库中)。我的两难问题是,我是否会在PHP或MySQL中直接使用Levensthein距离算法,以便优化性能问题。其实。如果在PHP中编程在评估文本时出现错误,我感到恐惧。这里值得一提的是,文本将进行比较,以获得基于每分钟单词类别的排名。在PHP和MySQL中比较两个Paragarphs的最佳策略是什么?

回答

0

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

中列出的解决方案。另一个PHP选项可能是similar_textdocs函数。

PHP levenshtein函数的不幸的缺点是它不能处理超过255个字符的字符串。按照PHP手册文档:

该函数返回的Levenshtein - 距离两个 参数字符串或-1之间,如果参数串中的一个是255个字符比 更长的上限。

因此,如果你的段落比那个长,你可能会被迫实现一个MySQL解决方案。我想你可以将段落分成255个字符的块进行比较(尽管我不能明确地说这不会“破坏”levenshtein算法)。

我不是语言学解析和处理方面的专家,所以我不能给这些是否是最好解决方案说话(如你在你的问题提)。但是,它们非常简单易用。

+0

谢谢rdlowrey。你能否看到http://www.phpclasses.org/package/6220-PHP-Compares-strings-to-determine-similarity-level.html中可用的脚本,如果这可以克服PHP中levenshtein函数的255个字符限制。我不确定链接是否可以在没有会员资格的情况下直接提供给您。如果给另一个网站的链接是违规行为,请删除我的帖子并原谅我。这不是故意的。 – Samcoder 2012-01-27 06:22:25

相关问题