2012-01-27 69 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

相關問題