2014-05-23 30 views
0

我想知道如何比較兩個幾乎相同的字符串並輸出另一個包含新值和舊值的字符串。它必須以字面方式工作。其實它正是你可以在編輯歷史中的這個頁面上看到的。比較PHP中的兩個文本字符串

例子:

$string1 = 'A very, very nice day today.'; 
$string2 = 'An almost nice day today'; 

$output = compare_strings($string1, $string2); 

輸出: 「一個非常,非常一個幾乎愉快的一天今天今天

我知道有是text_diff包,但我想要知道如何手動完成它。


我想創建一個數組,每個單詞一個條目,然後比較它們,但我不知道如何比較最好的。

+0

看看那個:http://www.php.net/manual/en/function.levenshtein.php 編輯:是的,一個副本;) – bartek

+0

http://en.wikipedia.org/wiki/ Longest_common_subsequence_problem - 算法豐富且有據可查。 – deceze

+0

@SatishSharma - 正如我在最後寫的那樣,我想了很長一段時間,但是比較了字符串的比較。 – Brainiac

回答

2

嗯,這不是一個簡單的任務,它需要更多的努力。我想你可能知道情感分析和語言學分析

是的,這是它的一部分,它是不是easy.Although你可以寫的程序,但它不可能有100%的準確率。

通過這個鏈接: 語言學分析:http://en.wikipedia.org/wiki/Linguistics

而對於情感分析:
http://en.wikipedia.org/wiki/Sentiment_analysis

我的建議:

A.通過語言學分析去。 B.非常簡單的方法:編寫一個程序,將每個單詞放在數組上,然後比較兩個數組並定義一些閾值(可能是70%)並找出相似或不相似的 。 C.使用肯定詞和否定詞制定規則,然後映射你的句子。

0

這確實需要一種算法,並且可以 - 根據您的技能水平 - 確實很困難或至少很難。在互聯網上,diff算法解釋很多,我想建議你看看Wikipedia: DIFF