2009年8月8日 星期六

[blog mining]部落格收割器(Blog Harvest)

blog harvest

呼 我還是一次把他寫完..
這裡偷偷宣布一下,暑假的探勘文章會先寫到這(什麼?不是才看兩篇?)
因為我發現越來越多背景知識需要先理解,不然紙上談兵是無法實作的
目前我就先打住,先自行加強一些資管的數學與電腦課程~

另外資格考將近啦~我也開始衝刺啦..(太混了XDD)

--------------------------------------------------------------------

這其實就是一種部落格探勘與搜尋的架構啦!

Mukul Joshi(2006). "BlogHarvest: Blog mining and search framework"
In Proc. of the Int’l Conf. on Management of Data COMAD

部落格(blog)或稱為網路日誌(weblogs)其實並不是單純的線上日記而已,它涉及了一個複雜且巨大的社交結構。在這個結構中,部落格的相關軟體提供使用者在預先定義好的模式裡頭,沒有限制地發表自己對任何主題的觀點與意見。而部落格之間的連結分析則顯示在部落格圈中的社群們並非偶然地聚集,而是透過興趣分享的結果而串連在一起。因此部落格的使用情形、使用者的興趣以及所形成的網路都應該被善加分析,而有效的分析則來自於「有效的部落格搜尋功能」。

在這篇簡短的文章中將談到「部落格收割器(Blog Harvest)」這項工具,它是一個部落格探勘與搜尋的框架,能夠擷取部落客的興趣並尋找類似主題的部落格加以推薦,真正達到部落格導向的搜尋功能!部落格收割器運用了分類技術、根據部落格連結/主題相似性的分群技術、根據意見探勘(opinion mining)的詞類標註(part of speech tagging)技術等。嶄新的搜尋介面則可以根據查詢詞來查找部落格並加以聰明地排序。進行搜尋的結果與查詢詞的對應機制是以詞類標註(以下將簡稱POS tagging)時的關連法則(association rule)為依據,進一步判斷使用者的檢索情境。在爬行部落格、擷取並標引部落格文章與連結等metadata的部分,作者分析了五萬個部落格。

簡介

網路上部落格的數量時時刻刻都在成長,由「Technorati Inc.」的數據顯示每天有超過七萬部落格成立、每小時超過五萬個最新文章被發表,不過部落格資訊的彼此關連則是一個有待克服的題議題!!

舉例:使用者在部落格搜尋引擎輸入「AJAX」時,可能只會出現包括「AJAX」詞彙的結果。但使用者可能會希望在部落格中多找到一些AJAX的相關資訊,像是它的缺點,或就是針對它的負面觀點來進行搜尋。但目前的搜尋引擎是辦不到的!

對於部落客或經常閱讀部落格的人來說,幾乎不可能在持續擴大的部落格環境中掌握所有最新消息,因此一個能提供與自己興趣有關的部落格推薦服務將有相當高的價值,像是透過部落客的名片檔、所屬群組來將部落格分類,並產生部落客的社交網路等,都是在這個推薦機制中很重要的工作任務。
雖然近年來有一些利用資料探勘的技術去挖掘部落格資料的研究雛形慢慢出現,卻仍未能有效跨越點對點的框架去將部落客與搜尋者之間連結起來。本文將以部落格收割器(BlogHarvest)縮短這個鴻溝並提供一個獨特的技術來處理各種部落格探勘與搜尋工作。

部落格收割機有哪些功能
1) 以「內容」來分析部落格
2) 進行部落格資訊的語意(semantics)分析
3) 產生部落客網路的搜尋與推薦功能
4) 興趣相近的部落客分群
5) 向使用者推薦有興趣的部落格
6) 根據部落格文章內容來建立部落客的名片檔
部落格收割器的搜尋與分析會隨文章的主題、語言等屬性來判別,並非單純地著重於文字內容。

系統建置

2.1 特製部落格爬行器(blog host specific crawler)
每個部落格提供者都有各自不同的部落格結構,而爬行器必須由部落格的文章中擷取出題名、張貼時間、內文、永久地址等屬性值。因為本文的分析目的在於部落客的網路分析,故針對不同的部落格提供者採用不完全相同的爬行器來抓資料。另外如何有效率地排程去捕捉部落格的更新則不在本文的架構中討論。

2.2 主題辨識(topic identification) -本研究採用rainbow分類器
主題辨識乃取決於使用者所常說常寫的內容,主要利用單純貝式分類器來執行(Naive Bayes classification)。分類的依據是DMOZ open directiory project的輸出檔案(rdf dump),係由14種大類所組成的階層架構。每篇所發表的文章會先經過「基本分類器」去決定其基本類別(base classes)。在同個基本類別中的文章會再使用「特製的分類器」來產出複分類別(super fined classes)如書籍、音樂、電影等,每篇文章會根據分類器決定出其所對應的類別機率,機率最高的三者將為此文章的類別,但倘若最高的類別其機率值高於二、三類別的兩倍以上的機率時,則捨棄此兩個類別。

2.3 逐字詞類標註(part-of-speech tagging, POS) - 本研究使用QTag POS標註器
POS標註就是將文本中的每個字都記錄其詞類,像是「excellent」是形容詞,則會被標為「excellent_JJ」。這樣的資訊在情緒分析(sentiment analysis)與建立擴大查詢(query expension)的關連法則(association rules)上時將派上用場。

2.4 探勘部落格

情緒探勘(Sentiment Miner)
情緒分析適用來針對文章所反映出的觀感,例如使用者看完某個電影後則可能寫下他的電影評論在部落格中,情緒分析就是試圖去預測這些文章是在對某部電影的褒?還是貶?
一種方法是手動建立一個已知的形容詞彙表(以一些詞彙資料庫輔助, 如WordNet),接著以「句子」為單位去判定每個句子的情緒之正負導向,假如一個句子中出現許多負面詞(not, neither等)則該句子會被判定為負面導向。
另一種方法是運用一些既有的評論性質資料庫(如IMDB),透過低評價與高評價的評論來訓練分類器,接著在使用分類器來決定每篇文章的情緒成分。

知識擷取(Knowledge Extraction)
為了有效提昇預測使用者興趣的精確度,每篇部落格的文章中所出現的外部連結也會被擷取與分類!因為這意味著部落客本身經常去拜訪這些網站。

自動分群(Clustering)-採用K-nearest neighours分群演算法
有著相似興趣的使用者應該被聚集在一起,因此分群的部分是根據「三種屬性」,

1) 對應類別的權重值:每個部落格與其每篇文章都會去計算其主題的機率,因此每兩個部落個之間的相似值是可以被計算出來的!部落格A與部落格B的相似程度則用以下的平方根來計算

部落格相似權重公式

p(a)指部落客A的某些主題的機率值,p(b)則是指在相同的主題下部落客B的機率值

2) 外部連結的交互權重值:這很好懂,兩個部落客的文章都經常出現一樣的外部連結,內容都然有相關囉!

3) 連線距離的權重值:算出以上兩個屬性值之後,我們就可以在部落格網路中計算每個部落格的連線距離與計算中介部落格(拓蹼圖中經過的部落格)的數量。

經過分群作業後,部落格收割器的推薦機制就可以運行了!具有相類似興趣的部落客們將被聚集在一起。

2.5 索引與後設資料(Indexing and meta data)
每篇文章都使用阿帕契路神(Apache Lucene)來索引,以便提供搜尋。索引的建立可以分為兩個部分,一為部落格中的每一篇文章(一般檢索功能)、一為部落客本身(提供檢索特定部落格)。部落客的網路(network)資訊與後設資料都儲存在mysql資料庫。

2.6 搜尋的前處理與後處理、使用者介面

主題相似度(topic similarity)
在檢索結果中,使用者將會被推薦與查詢詞相關的部落格文章,而檢索結果中出現最高次數的主題類別,也將推薦使用者這個主題底下的相關部落格。

關連法則的詞類探勘(Part-of-speech based association rule miner)
進行查詢時要管自己所用的查詢詞對或不對是一件很煩的事,因此query expansion很重要。部落格收割器在使用者介面中發展出了一套詞類標註來解決這個問題。以「Newton(牛頓)」這個字為例,使用者可能只是要查物理學、數學、幾何學等資訊中的一種而已,因此將檢索結果作自動分群則可以處理這個問題。不過目前僅能處理三種常用詞性:名詞、動詞與形容詞。

使用者介面(user interface)
提供終端使用者一個新奇的介面去查詢部落格,另外還提供部落客們的網路與分群視覺化等功能。

測試

查詢
搜尋結果

上圖則是使用「Microsoft」在部落格收割器中查詢的結果頁面,與該此相關的部落格將推薦在最右側,而相關文章的快取、情緒取向等也會完整呈現給使用者。

部落客名片(blogger's profile)
部落客名片查詢

上圖就是部落格收割機對部落客「minimsft」進行的名片查詢,可以知道許多資訊,部落客興趣或學科取向、經常拜訪的網站、追蹤者的視覺化圖、同步的RSS連結、對特定主題(關鍵字)的觀感。

結論

目前廣大的資訊都充斥在部落格中,使用者越來越難去找到自己想要的資訊。部落格收割器試圖在不同部落格之間進行連接並提供搜尋的功能。在將來,著者指出會再加入隨使用者興趣的RSS feeds功能。

沒有留言: