我有一個用戶可以上傳測試報告的輸入表單,最小長度爲100個字。有些用戶寫的比這少,只需複製他們寫的內容,直到滿足100個字的閾值。檢測文本字符串中的重複/複製文本
我想測試(理想情況下通過php)文本字符串包含重複的文本,即該字符串的子集被複制。 我正在考慮對文本進行傅立葉分析,這可能會導致字符串內出現文本重複。 是否存在用於此目的的php類或正則表達式示例?
一些示例文本:
布拉布拉喇嘛。這是一些文字,現在我感到無聊。這是一些 文本現在我感到無聊。這是一些文字,現在我感到無聊。 這是一些文字,現在我感到無聊。這是一些文字,現在我 感到無聊。最後有些東西。
更新:我的建議來解決這個如下:
1)將字符串映射到一個整數數組,即找到各個字符的數字表示。所以上面的示例將變得
numerics = array (2, 5, 1, 2, 5, 1, ...);
2)應用傅立葉變換這個陣列上獲得「字符頻譜」
FT = fft (numerics);
此檢測在字符空間規則圖案。 例如可以使用this class來計算fft。
3)檢測函數FT的峯值。測量峯值的相對高度,與背景中的噪聲相比較。
4)設置峯值的閾值。如果任何峯值高於此閾值,則返回正文中出現的常規模式。例如多次重複句子應該在一定頻率上清楚地標出一個高峯。
由於這個建議在數據分析中是非常直接的,我不知道它之前是否沒有編碼過。所以這是我在這裏問的目的,如果有人知道這種算法是否已經存在於開源中。
當然,如果能夠解決這個問題,可以選擇其他解決方案/建議。
請張貼您的工作進度解決方案,不要只是要求我們編寫代碼。 – JAL
@JAL我正在尋求一個已經可以作爲解決方案存在的php類。 – George
如果你必須輸入100個單詞來表示「它工作正常」,我不想在你的公司工作。點擊[lorem ipsum](http://www.lipsum.com/)會馬上起來! –