2011-06-19 51 views
0

我正在製作一個有助於在網絡中搜索重複內容(僅文本)的軟件。我想我可以使用谷歌,因爲它非常高效,速度更快。所以我開發了一種算法但它效率不高。什麼是使用谷歌搜索重複內容的有效方法..?

這是我的想法。用戶輸入300-500個字符長度的內容。該內容在谷歌搜索。考慮第一頁結果。

ex:內容是「一個品種的定義是一個有爭議的問題,有些羣體使用最終需要極度繁殖的定義來鑑定,以這種方式繁殖的狗往往最終會面臨嚴重的健康問題其他組織對品種的定義更加鬆散,只要有三個祖父母是同一品種,就可以將其視爲一個品種。

谷歌第一結果:狗和品種簡史。狗通常指的是家養狗,......一些團體使用最終需要極度繁殖才能獲得資格的定義。以這種方式繁殖的狗往往最終會面臨嚴重的健康問題。其他組織更鬆散定義一個品種,使得個體可以是......

所以從第一個結果,我們可以說的內容存在於網絡..

我的算法

bool checkContentVsResult(string googletext, string content) 
    { 
     bool found = false; 
     int len = 0; 
     string[] ch = new string[] { "." }; 
     string[] texts = googletext.Split(ch, StringSplitOptions.RemoveEmptyEntries); 
     int count = 0,qualify=0; 
     len = text.Length; 
     if (len > 300) 
      qualify = 3; 
     else if (len > 200) 
      qualify = 2; 
     else 
      qualify = 1; 
     foreach (string s in texts) 
     { 
      if (s==" ") 
       continue; 
      if (content.Contains(s)) 
       count++; 
      if (count >= qualify) 
      { 
       found = true; 
       break; 
      } 
     } 
     return found; 
    } 

由於你可以看到算法效率不高。如何使它更高效..?

+0

那麼你的計劃是檢查詞的相似性?一般來說,內容匹配/比較是一個非常複雜的NLP問題,大多數「簡單」解決方案都不能很好地工作。 – BrokenGlass

+0

是的我的計劃檢查詞的相似性。 –

回答

1

嘗試谷歌搜索「levenshtein距離c」?

+0

我覺得上面的算法在這裏沒有太大的幫助.. –

相關問題