我有10.000個HTML頁面。檢測兩個HTML頁面是否相似的算法?
我知道,有些是建立與同一CMS系統,因此有「種」相同的結構,雖然不是完全一樣的。我預計會有大約100個不同的CMS,但我不會預先知道它們,所以我無法查找預定義的模式。
這就是爲什麼我需要一個算法來計算每個頁面的相似性度量,然後集羣他們基於相似..?
我會很樂意找一些Ruby的工具,但其他語言也歡迎。
PS。我不希望看到內容(文本)的相似性。只想在元級進行比較。像HTML結構,CSS規則,類名等等,等等
我有10.000個HTML頁面。檢測兩個HTML頁面是否相似的算法?
我知道,有些是建立與同一CMS系統,因此有「種」相同的結構,雖然不是完全一樣的。我預計會有大約100個不同的CMS,但我不會預先知道它們,所以我無法查找預定義的模式。
這就是爲什麼我需要一個算法來計算每個頁面的相似性度量,然後集羣他們基於相似..?
我會很樂意找一些Ruby的工具,但其他語言也歡迎。
PS。我不希望看到內容(文本)的相似性。只想在元級進行比較。像HTML結構,CSS規則,類名等等,等等
在過去的生活中,我寫了很多的分析軟件的公司,不得不通過頁面數量龐大挖,很容易你在談論的數量,返回相似類型的信息。
不管你怎麼想確定相似,你必須寫自己的規則。頁面變化太大,代碼不能真正理解「相似」的含義,也不能確定對您的特定用途重要的內容。
事情可以做:
儘管如此,你必須瀏覽頁面並確定什麼是重要的,沒有其他程序員可以猜測這些可能是什麼。
HTML結構,單個標籤的順序並不像以前那樣有用,因爲CSS和JavaScript可以在頁面加載到瀏覽器中時將所有內容都移動到頁面中,所以眼睛看到的可以是與標準的基於代碼的工具看到的差別很大。相同CMS的兩個版本可能會有完全不同的輸出,但由於CSS/JavaScript的結果,對於觀衆來說顯示效果是一樣的,所以您必須確定如何關聯它們。
嗯,我發現這似乎產生有效的輸出,在我已經嘗試並知道是「相同」的情況下,但我不知道它是如何工作的,所以很難重現... http:// tool.motoricerca.info/similarity-analyzer.phtml – 2014-12-02 20:05:47
那麼,正如其他評論所說,這並不容易。你試圖做的太多事情都與你的特殊需求有關。找到一個靠近的工具是很好的,但是很多時候,一旦你進一步推進,你會發現重疊越來越少,因爲他們的需求不符合你的要求,那就是你必須推出自己的產品。不幸的是,這並沒有很好的解決方案,但另一方面,如果你有可能沒有找到解決這個問題的工作,別人就可以點擊一個按鈕,它會奇蹟般地發生。 – 2014-12-02 20:11:32
艱難的。如果這是現實生活中的問題,那麼您可能需要自己添加識別模式。只需打開頁面,看看它們是否符合你的任何模式。如果沒有,請手動分析頁面,找到CMS,然後在列表中添加一個模式。這樣,您最終會爲每個CMS添加模式。 – GolezTrol 2014-12-02 18:31:08
這是現實生活中,我完成了你的建議。 :-) – 2014-12-02 18:32:21
首先你必須定義「相似」的含義。你想看看他們是否有相同的結構?他們的內容是否相似(即相同或接近相同的文本)?他們都在討論同一個話題,儘管他們的結構和實際內容大不相同?你在這裏瞄準什麼樣的「相似性」? – 2014-12-02 18:55:28