專利名稱:一種面向微博的定制化篩選系統(tǒng)及方法
技術領域:
本發(fā)明涉及一種篩選系統(tǒng)及方法,尤其涉及一種面向微博的定制化篩選系統(tǒng)及方法,屬于網(wǎng)絡信息技術領域。
背景技術:
微博是一個基于用戶關系的信息分享、傳播以及獲取平臺,用戶可以通過WEB、WAP以及各種客戶端組件個人社區(qū),以140字左右的文字更新信息,并實現(xiàn)即時分享。中國互聯(lián)網(wǎng)絡信息中心(CNNIC)今日發(fā)布《第28次中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告》,報告顯示,2011年上半年,中國微博用戶從6331萬增至I. 95億,增長約2倍,巨大的用戶量也會微博帶來了巨大的信息量。微博網(wǎng)站現(xiàn)在的即時通訊功能非常強大,通過QQ和MSN直接書寫,在沒有網(wǎng)絡的地方,只要有手機也可即時更新自己的內(nèi)容,哪怕你就在事發(fā)現(xiàn)場。類似于一些大的突發(fā)事件或引起全球關注的大事,如果有微博客在場,利用各種手段在微博客上發(fā)表出來,其實時性、現(xiàn)場感以及快捷性,甚至超過所有媒體。雖然微博能快速更新信息,信息的實時性強,但是頻繁更新信息的同時也帶來了大量的無用數(shù)據(jù),再加上龐大的微博用戶群體,以及微博多途徑、快捷、方便的發(fā)布方式,出現(xiàn)了信息過載的問題,對有效信息的使用造成不便。
發(fā)明內(nèi)容
本發(fā)明的目的是針對現(xiàn)有技術信息過載,對有效信息的使用不便的不足,提供一種能從大量的微博信息中過濾出有效的微博數(shù)據(jù)的面向微博的定制化篩選系統(tǒng)。本發(fā)明解決上述技術問題的技術方案如下一種面向微博的定制化篩選系統(tǒng),包括后臺模塊和交互模塊,所述后臺模塊用于采集數(shù)據(jù)、分析數(shù)據(jù)、本地存儲、建立索引并提供檢索功能;所述交互模塊與后臺模塊信息交互,并提供與后臺模塊交互的WEB界面;所述后臺模塊依次包括信息交互的采集模塊、分析模塊、索引模塊和檢索模塊;所述采集模塊,采集原始微博數(shù)據(jù);所述分析模塊對采集模塊傳輸?shù)臄?shù)據(jù)進行抽取、去重及過濾得到有效數(shù)據(jù),并對有效數(shù)據(jù)分類、存儲,所述過濾包括對垃圾、廣告及黃反數(shù)據(jù)的過濾;所述索引模塊對分析模塊傳輸至的數(shù)據(jù)進行中英文分詞,根據(jù)分詞的結(jié)果建立倒排索引及增量索引,并根據(jù)微博狀態(tài)文件定期的刪除索引;所述檢索模塊接收交互模塊傳輸?shù)臋z索關鍵字,并對檢索關鍵字進行糾錯、同義詞轉(zhuǎn)換、分詞及優(yōu)化,并對檢索結(jié) 果進行篩選和排序,進一步將排序結(jié)果返回交互模塊。本發(fā)明的有益效果是本系統(tǒng)是解決信息過載的一種解決方案,即從龐大的微博數(shù)據(jù)中,針對性地篩選出用戶關注的一類信息,為用戶過濾掉一大批非關注信息,并能將這些數(shù)據(jù)本地化存儲,方便用戶長期使用;并通過驗證機制增強系統(tǒng)本身的安全性;整個系統(tǒng)的工作邏輯清晰、流暢,減少了系統(tǒng)各模塊之間的耦合度,每模塊內(nèi)部都由若干模塊組成,有利于每模塊功能的擴展。在上述技術方案的基礎上,本發(fā)明還可以做如下改進。進一步,所述檢索模塊包括Query檢索關鍵字處理模塊和Query檢索關鍵字優(yōu)化模塊,所述Query處理模塊接收交互模塊傳輸至的Query檢索關鍵字,對Query檢索關鍵字進行處理,并將處理后的Query發(fā)送至Query優(yōu)化模塊;所述Query優(yōu)化模塊對Query處理模塊發(fā)送至的Query進行省略變換和分類,并將Query及其分類發(fā)送給索引模塊,接收索引模塊返回的結(jié)果;所述Query優(yōu)化模塊包括Query省略模塊和Query分類模塊,所述Query省略模塊接收Query處理模塊發(fā)送至的數(shù)據(jù),并將所述數(shù)據(jù)進行正則匹配,將不匹配的Query進行省略;所述Query分類模塊將來自Query省略模塊的數(shù)據(jù)根據(jù)它的主題進行分類,并將分類后的數(shù)據(jù)傳輸至索引模塊;所述Query省略模塊通過挖掘規(guī)則對傳輸至的數(shù)據(jù)進行處理,查找出不重要的分詞,并建立正則規(guī)則,對于后輸入的數(shù)據(jù)與所述正則規(guī)則進行匹配。進一步,所述交互模塊包括權(quán)限控制模塊、查詢模塊、篩選模塊、入庫數(shù)據(jù)管理模塊和特定管理模塊,所述權(quán)限控制模塊控制不同用戶對系統(tǒng)的不同操作權(quán)限;所述查詢模塊通過排行查詢、標簽查詢和高級檢索的方式實現(xiàn)對微博信息的查看;所述篩選模塊篩選數(shù)據(jù)并添加自定義主題,并將其存儲到數(shù)據(jù)庫中;所述入庫數(shù)據(jù)管理模塊對篩選模塊中已存入數(shù)據(jù)庫的數(shù)據(jù)進行展示;所述特定管理模塊用于對名人和機構(gòu)名稱、名人和機構(gòu)分類及url網(wǎng)頁地址進行管理。進一步,所述采集模塊包括網(wǎng)絡爬取模塊和微博API應用編程接口模塊,所述網(wǎng)絡爬取模塊對指定的URL網(wǎng)頁地址進行抓取,并對選取的URL發(fā)送請求得到網(wǎng)站原始的HTML超文本標記語言頁面并發(fā)送至分析模塊;所述微博API模塊采用現(xiàn)有微博平臺提供的微博API獲取JSON輕量級數(shù)據(jù)交換格式的數(shù)據(jù)并發(fā)送至分析模塊;所述分析模塊包括數(shù)據(jù)抽取模塊、數(shù)據(jù)過濾模塊、文本分類模塊、數(shù)據(jù)存儲模塊,所述數(shù)據(jù)抽取模塊接收采集模塊中網(wǎng)絡爬取模塊收集到的HTML頁面并格式化為JSON格式的數(shù)據(jù),并將所述格式化為JSON格式的數(shù)據(jù)傳輸至數(shù)據(jù)過濾模塊,所述數(shù)據(jù)抽取模塊對網(wǎng)絡爬取模塊獲取的原始HTML網(wǎng)頁進行標準XML可擴展標記語言格式的轉(zhuǎn)化,查找數(shù)據(jù)節(jié)點,對數(shù)據(jù)加上相應標簽,將其映射成JSON格式的數(shù)據(jù);所述數(shù)據(jù)過濾模塊接收采集模塊中微博API模塊輸出的JSON格式的數(shù)據(jù)和數(shù)據(jù)抽取模塊傳輸?shù)腏SON格式的數(shù)據(jù),并將所述數(shù)據(jù)通過去重和過濾得到有效數(shù)據(jù),并將所述有效數(shù)據(jù)傳輸至文本分類模塊和數(shù)據(jù)存儲模塊;所述文本分類模塊對過濾模塊傳輸至的有效數(shù)據(jù)進行分類并將分類結(jié)果發(fā)送至數(shù)據(jù)存儲模塊;所述數(shù)據(jù)存儲模塊將數(shù)據(jù)過濾模塊和文本分類模塊傳輸至的數(shù)據(jù)和分類結(jié)果寫入文件,并分別存儲所述文件數(shù)據(jù),同時提取有效數(shù)據(jù)的屬性信息寫入文件;所述數(shù)據(jù)存儲模塊包括數(shù)據(jù)庫和文本文件,所述數(shù)據(jù)庫用于存儲完整的數(shù)據(jù)信息并根據(jù)用戶指令將數(shù)據(jù)發(fā)送至交互模塊;所述文本文件用于存儲數(shù)據(jù)的id、內(nèi)容和分類,并根據(jù)索引模塊的調(diào)用將數(shù)據(jù)傳輸至交互模塊;
所述索引模塊包括文本分詞模塊和索引建立模塊,所述文本分詞模塊通過庖丁解牛分詞器結(jié)合詞典對數(shù)據(jù)存儲模塊中存儲的文件內(nèi)容進行分詞,得到建立索引的原始數(shù)據(jù);所述索引建立模塊對文本分詞模塊傳輸至的數(shù)據(jù)建立倒排索引及增量索引得到索引數(shù)據(jù)。所述的微博API模塊,通過API的方式獲取所關注的名人、機構(gòu)的微博消息,包括通過指定相關的名人、機構(gòu)表,獲取它們的微博消息,微博對應評論的更新,即從微博表中獲取當前系統(tǒng)時間前24小時的微博原始ID,利用微博API,重新獲取此條微博的評論數(shù)、轉(zhuǎn)發(fā)數(shù)、評論列表,去除重復評論,更新微博表和評論表,用戶粉絲數(shù)的更新,遍歷名人機構(gòu)文件中的名人機構(gòu)名稱,利用API接口,查看是否已經(jīng)添加關注,如果已關注,則更新粉絲數(shù);否則,查看粉絲數(shù)是否達到關注閾值,達到則利用API添加關注,并將其信息寫入到名人機構(gòu)表中。所述的數(shù)據(jù)抽取模塊,對網(wǎng)絡爬蟲方式獲取的原始HTML網(wǎng)頁進行標準XML的轉(zhuǎn)化,查找數(shù)據(jù)節(jié)點,對數(shù)據(jù)加上相應標簽,將其映射成JSON格式的微博數(shù)據(jù),對于每一次數(shù)據(jù)的更新,都需要進行結(jié)果的合并處理;所述的文本分類模塊,采用基于前項最大匹配算法的分詞方法對微博內(nèi)容進行分詞,對分詞結(jié)果在分類詞典中進行匹配,根據(jù)相關的規(guī)則得出一條微博的分類結(jié)果;所述的文本分詞模塊,通過可添加自定義詞庫、具有良好擴展性和支持中文分詞的庖丁解牛分詞器,對數(shù)據(jù)存儲模塊中寫入文件的微博內(nèi)容進行分詞,得到建立索引的原始數(shù)據(jù)。所述的檢索關鍵字優(yōu)化模塊,統(tǒng)計一段時間的檢索關鍵字日志,分析檢索關鍵字特征,找出導致召回結(jié)果少的冗余詞和句式,將其配置成規(guī)則,對檢索關鍵字進行正則匹配,對檢索關鍵字中規(guī)則中包含的詞進行省略。所述的查詢模塊,提供三種查詢方式,即排行查詢、標簽查詢及高級檢索。其中排行查詢包括最新資訊、熱門話題、熱門微博、熱門名人及熱門機構(gòu)。最新資訊包括當天所有的微博消息,熱門話題展示微博消息的話題數(shù)最多的topN條話題,熱門微博展示轉(zhuǎn)發(fā)數(shù)最多的topN條微博及評論數(shù)最多的topN條微博,熱門名人展示關注數(shù)最多的topN個名人,熱門機構(gòu)展示關注數(shù)最多的topN個機構(gòu),將其推薦給用戶。標簽查詢包括微博來源、微博分類標簽,同時提供標簽的添加、刪除功能。微博來源即將來自該微博網(wǎng)站的所有微博消息展現(xiàn)出來,微博分類標簽即將屬于該分類下的所有微博消息展現(xiàn)出來。高級檢索的條件包括微博消息發(fā)布的時間范圍、微博來源、微博分類標簽和查詢關鍵字,查詢模塊將滿足條件的結(jié)果進行展現(xiàn),展現(xiàn)的內(nèi)容包括微博內(nèi)容、微博作者、微博發(fā)布時間、微博來源和微博標簽以及對于此微博的評論信息;所述的篩選模塊,用戶可以選擇感興趣的微博消息,對這一類數(shù)據(jù)集添加自定義的主題,并將其存儲到數(shù)據(jù)庫中,此數(shù)據(jù)集的以主題列表的形式展示,對其他用戶不可見但對管理員可見,管理員可以單個或批量選擇微博消息,刪除其在源數(shù)據(jù)及索引數(shù)據(jù)中的存儲;所述特定管理模塊,包括名人機構(gòu)名稱、名人機構(gòu)分類及url的管理;提供對名人機構(gòu)的信息進行添加和編輯操作,能對名人機構(gòu)信息進行單個或批量刪除, 通過名人機構(gòu)名稱、名人機構(gòu)分類等查詢條件能查找符合條件的名人機構(gòu)信息;用來配置采集模塊中微博API模塊需要收集的名人機構(gòu)的微博消息,即通過輸入名人機構(gòu)名稱,指定微博來源添加一條新的數(shù)據(jù),如果添加成功,且數(shù)據(jù)庫中不存在此名人機構(gòu)名稱,采集模塊中的微博API模塊將收集此名人機構(gòu)發(fā)布的微博消息,數(shù)據(jù)庫中存在此名人機構(gòu)名稱則對它的粉絲數(shù)進行更行。反之添加失敗,采集模塊中的微博API模塊不做任何響應。JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。XML是一種通用的數(shù)據(jù)交換格式,注可擴展標記語言(Extensible MarkupLanguage, XML),用于標記電子文件使其具有結(jié)構(gòu)性的標記語言,可以用來標記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標記語言進行定義的源語言。本發(fā)明的另 一個目的是針對現(xiàn)有技術信息過載,對有效信息的使用不便的不足,提供一種能從大量的微博信息中過濾出有效的微博數(shù)據(jù)的面向微博的定制化篩選方法。本發(fā)明解決上述技術問題的技術方案如下一種面向微博的定制化篩選方法,具體包括以下步驟步驟I :通過采集模塊收集來自網(wǎng)站的數(shù)據(jù);步驟2 :分析模塊過濾采集模塊的數(shù)據(jù)得到有效數(shù)據(jù);步驟3 :索引模塊對分析模塊傳輸至的數(shù)據(jù)建立索引;步驟4 :用戶輸入查詢請求通過檢索模塊獲取分析模塊內(nèi)的相關數(shù)據(jù)。進一步,所述步驟I通過兩種方法獲得數(shù)據(jù);系統(tǒng)通過采集模塊的微博API模塊從網(wǎng)站提供的開放API編程接口,獲取JSON輕量級數(shù)據(jù)交換格式的微博數(shù)據(jù);系統(tǒng)通過采集模塊的網(wǎng)絡爬取模塊抓取特定的微博網(wǎng)站,得到原始的半結(jié)構(gòu)化HTML頁面。進一步,所述步驟2具體包括以下步驟步驟2. I :判斷數(shù)據(jù)是網(wǎng)絡爬取模塊還是微博API模塊傳輸?shù)?,如果是網(wǎng)絡爬取模塊傳輸?shù)陌虢Y(jié)構(gòu)化HTML頁面,進入步驟2. 2 ;如果是微博API模塊傳輸?shù)臄?shù)據(jù),進入步驟2. 4 ;步驟2. 2 :查找數(shù)據(jù)節(jié)點,將原始不規(guī)范的HTML頁面轉(zhuǎn)化為XML,從XML的樹中結(jié)合微博消息的屬性,查找特定的區(qū)域,從中抽取相關的微博數(shù)據(jù),并標記好引用點或錨;步驟2. 3 :利用XSL文件標識錨,指定從錨獲取設置查找的微博屬性數(shù)據(jù),并且用相對應的格式構(gòu)造一個JSON輸出文件;步驟2. 4 :微博數(shù)據(jù)的去重,使用Message-Digest Algorithm 5 (MD5算法)對字符串“微博數(shù)據(jù)+發(fā)布時間+作者”(“ + ”表示字符串連接)計算簽名,將簽名存儲到數(shù)據(jù)庫中,對每一條新抓取的微博,計算MD5簽名,查看數(shù)據(jù)庫中是否存在,若存在表示重復了,將所述簽名丟棄;如果不存在,將所述簽名存儲在數(shù)據(jù)庫中;步驟2. 5 :微博數(shù)據(jù)的過濾,將待過濾的詞配置在詞表中,對微博數(shù)據(jù)進行多模匹配,查看微博數(shù)據(jù)中是否有詞表中的詞存在;所述分類詞典以不同的類別名稱為文件命名,分別存儲在文本文件中;微博數(shù)據(jù)的文本分詞,采用基于前項最大匹配算法的分詞方法對微博內(nèi)容進行分詞;步驟2.6 :分析模塊中的文本分類模塊對過濾后的數(shù)據(jù)進行分類處理,并將結(jié)果存入數(shù)據(jù)庫和文本文件;其中將完整的微博數(shù)據(jù)存入數(shù)據(jù)庫,將數(shù)據(jù)id、內(nèi)容和分類存入文本文件。分類的詳細規(guī)則,基本原則是一個分類得分最多,則此文本就屬于這個分類,分類的得分通過該分類下的詞長、詞頻數(shù)、詞的權(quán)重來體現(xiàn),具體的公式是C = 2f=1 Ien(Wordi) * Weight(Wordi),其中 n 代表屬于該分類下的詞的總個數(shù),word,代表屬于該分類下每個具體的詞,Ien(Wordi)代表詞的長度,Weight(Wordi)代表詞的權(quán)重,權(quán)重規(guī)則是長度> 4的為I. 5,長度=4為I. 25,長度=3的為1,長度=2的為0.5,例如我們分出來的五個詞分別是我們I能夠I也許I平安保險I社會,其中前三個詞屬于A類,‘平安保險’屬于B類,‘社會’屬于C類,則A類的得分是2*0. 5+2*0. 5+2*0. 5 = 3,B類的得分是4*1. 25 = 5,C類的得分是2*0. 5 = 1,因此該文本屬于得分最高的B類。
進一步,所述步驟4具體包括以下操作步驟4. I :通過篩選模塊數(shù)據(jù)檢索關鍵字,檢索模塊處理檢索關鍵字,對來自交互模塊中的檢索關鍵字進行糾錯、同義詞轉(zhuǎn)換及分詞等預處理的工作;步驟4. 2 :優(yōu)化檢索關鍵字,對預處理后的檢索關鍵字進行省略和分類,并將對應的分類結(jié)果及處理后的檢索關鍵字輸出給索引模塊;步驟4. 3 :檢索模塊與索引模塊信息交互,控制索引模塊調(diào)用分析模塊中的數(shù)據(jù)庫將對應檢索關鍵字的數(shù)據(jù)id對應的完整的微博信息傳輸至交互模塊;步驟4. 4 :交互模塊將傳輸至的數(shù)據(jù)存入入庫數(shù)據(jù)管理模塊。進一步,所述步驟4. 2具體包括以下操作步驟4. 2. I :檢索關鍵字省略模塊根據(jù)挖掘規(guī)則對傳輸至的數(shù)據(jù)進行處理,查找出不重要的分詞,并建立正則規(guī)則;步驟4. 2. 2 :根據(jù)正則規(guī)則對輸入的數(shù)據(jù)與所述正則規(guī)則進行匹配;步驟4. 2. 3 :檢索關鍵字分類模塊對輸入的數(shù)據(jù)進行分類并調(diào)用索引模塊的文本文件中的對應的id,并將所述對應的id發(fā)送至分析模塊,從分析模塊的數(shù)據(jù)庫中取出id對應的完整微博信息,并將其傳輸至交互模塊;所述的分類需要對應根據(jù)預先設置的分類表進行匹配生成。Query分類模塊中分類表的建立過程如下a)搜狗輸入法詞庫的處理搜狗輸入法提供很多領域的詞庫,從其官方網(wǎng)站能下載到財經(jīng)、保險、外貿(mào)、電子商務、股票等金融詞庫。下載網(wǎng)址是http://pinyin. sogou. com/dict/。通過和平臺的分類體系的對應,可以得到〈term, class_id>的文件。b)帶有分類的文檔的處理將帶有分類的文檔使用Paoding分詞器分詞,統(tǒng)計切詞結(jié)果中長度大于3的term和其對應的分類,得到〈term, class_id>文件。使用shell 腳本,操作〈term, class_id> 中的文件,得到〈term, class_id,該 term對該分類的卡方值,該term對應各分類的卡方值的方差 > 文件,方差表示該term對不同分類支持程度的波動程度,方差越大,term越能區(qū)分不同的分類。過濾掉方差值小于一定閾值的term,再取該term卡方值最大的那個分類作為該term的分類。隨機抽取一部分分類結(jié)果進行Badcase分析,人工查看,Badcase主要是因為利用卡方值抽取中心詞時,閾值限定不合適會產(chǎn)生對某個分類某個term是否太泛的問題,可以刪除一些太泛的term ;當多個中心詞term同時出現(xiàn)在query中,會產(chǎn)生一部分badcase,可以抽出,放在直達詞表中;城市、地名等信息也會影響分類結(jié)果,可以將其刪除。Query分類模塊中的分類過程具體如下
a)構(gòu)造trie樹和失敗指針建立trie樹,trie樹又稱單詞查找樹或鍵樹,是一種樹形結(jié)構(gòu),是一種哈希樹的變種,每個節(jié)點存儲I個字節(jié),動態(tài)分配節(jié)點的子節(jié)點內(nèi)存。使用寬度優(yōu)先搜索及隊列,添加每個節(jié)點的失敗指針。GBK編碼中,每個字符有2個字節(jié)組成,由于每個節(jié)點存儲I個字節(jié),字符拆分可能會產(chǎn)生拆分誤傷,即兩個漢字拆分后,第一個漢字的第二個字節(jié)和第二個漢字的第一個字節(jié)產(chǎn)生一個新的漢字。為避免拆分誤傷,將英文字符編碼為0,將中文字符編碼為10,即01不作為一個字符處理。
b)利用最長匹配策略進行多模匹配匹配時,若節(jié)點匹配成功,繼續(xù)匹配query,當中心詞的末尾節(jié)點匹配成功后,仍然繼續(xù)匹配query。若節(jié)點匹配失敗,去節(jié)點的失敗指針指向的節(jié)點繼續(xù)匹配,輸出之前匹配到的中心詞及分類id,待匹配完,輸出所有匹配的分類id。
圖I為本發(fā)明實施例I所述的面向微博的定制化篩選系統(tǒng)結(jié)構(gòu)圖;圖2為本發(fā)明實施例I所述的面向微博的定制化篩選方法流程圖;圖3為本發(fā)明實施例I所述的篩選方法query命中多條規(guī)則的處理策略示例圖。
具體實施例方式以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。如圖I所示,本發(fā)明實施例I所述的一種面向微博的定制化篩選系統(tǒng),包括后臺模塊和交互模塊,所述后臺模塊用于采集數(shù)據(jù)、本地存儲、建立索引并提供檢索功能;所述交互模塊與后臺模塊信息交互,并提供與后臺模塊交互的WEB界面。所述后臺模塊包括依次信息交互的采集模塊、分析模塊、索引模塊和檢索模塊;所述采集模塊集成了不同的數(shù)據(jù)獲取方式,采集原始微博數(shù)據(jù);所述分析模塊對采集模塊傳輸?shù)臄?shù)據(jù)進行抽取、去重及過濾得到有效數(shù)據(jù),并對有效數(shù)據(jù)分類、存儲,所述過濾包括對垃圾、廣告及黃反數(shù)據(jù)的過濾;所述索引模塊對分析模塊傳輸至的數(shù)據(jù)進行中英文分詞,根據(jù)分詞的結(jié)果建立倒排索引及增量索引,并根據(jù)微博狀態(tài)文件定期的刪除索引;所述檢索模塊接收交互模塊傳輸?shù)臋z索關鍵字,并對檢索關鍵字進行糾錯、同義詞轉(zhuǎn)換、分詞及優(yōu)化,并對檢索結(jié)果進行篩選和排序,進一步將排序結(jié)果返回交互模塊。所述交互模塊包括權(quán)限控制模塊、查詢模塊、篩選模塊、入庫數(shù)據(jù)管理模塊和特定管理模塊,所述權(quán)限控制模塊用戶控制不同用戶對系統(tǒng)的不同權(quán)限;所述查詢模塊通過排行查詢、標簽查詢和高級檢索的方式實現(xiàn)對微博信息的查看;所述篩選模塊篩選數(shù)據(jù)并添加自定義主題,并將其存儲到數(shù)據(jù)庫中;所述入庫數(shù)據(jù)管理模塊對篩選模塊中的數(shù)據(jù)庫中的數(shù)據(jù)進行展示;所述特定管理模塊用于對機構(gòu)名稱、機構(gòu)分類及url進行管理,所述管理包括添加、刪除、修改和查詢操作。所述采集模塊包括網(wǎng)絡爬取模塊和微博API模塊,所述網(wǎng)絡爬取模塊對指定的URL網(wǎng)頁進行抓取,并對選取的URL發(fā)送請求得到網(wǎng)站原始的HTML頁面,包括初始化URL、URL庫的過濾以及URL的選取;
所述微博API模塊采用現(xiàn)有微博平臺提供的微博API獲取JSON格式的數(shù)據(jù)。所述分析模塊包括數(shù)據(jù)抽取模塊、數(shù)據(jù)過濾模塊、文本分類模塊、數(shù)據(jù)存儲模塊,所述數(shù)據(jù)抽取模塊接收采集模塊中網(wǎng)絡爬取模塊收集到的HTML頁面并通過過濾或轉(zhuǎn)化或抽取等方式將其格式化為JSON的數(shù)據(jù),并將所述格式化為JSON的數(shù)據(jù)傳輸至數(shù)據(jù)過濾模塊;
所述數(shù)據(jù)過濾模塊接收采集模塊中微博API模塊輸出的JSON格式的數(shù)據(jù)和數(shù)據(jù)抽取模塊傳輸?shù)腏SON格式的數(shù)據(jù),并將所述數(shù)據(jù)通過去重和過濾得到有效數(shù)據(jù),并將所述有效數(shù)據(jù)傳輸至文本分類模塊和數(shù)據(jù)存儲模塊,所述過濾包括對垃圾、廣告機黃反數(shù)據(jù)的過濾;所述文本分類模塊對過濾模塊傳輸至的有效數(shù)據(jù)進行分類并將分類結(jié)果發(fā)送至數(shù)據(jù)存儲模塊,包括對有效微博數(shù)據(jù)的微博內(nèi)容的分詞,將分詞結(jié)果在分類詞典中進行匹配,返回分類結(jié)果;所述數(shù)據(jù)存儲模塊將數(shù)據(jù)過濾模塊和文本分類模塊傳輸至的數(shù)據(jù)和分類結(jié)果寫入文件,并分類存儲所述文件數(shù)據(jù),同時保存提取有效數(shù)據(jù)的屬性信息寫入文件并保存。所述索引模塊包括依次數(shù)據(jù)連接的文本分詞模塊和索引建立模塊,所述文本分詞模塊通過庖丁解牛分詞器結(jié)合詞典對數(shù)據(jù)存儲模塊中存儲的文件內(nèi)容進行分詞,得到建立索引的原始數(shù)據(jù);所述索引建立模塊對文本分詞模塊傳輸至的數(shù)據(jù)建立倒排索引及增量索引得到索引數(shù)據(jù)。所述檢索模塊與交互模塊信息交互,所述檢索模塊包括檢索關鍵字處理模塊和檢索關鍵字優(yōu)化模塊,所述檢索關鍵字處理模塊接交互模塊中的檢索關鍵字進行預處理,所述預處理包括糾錯、同義詞轉(zhuǎn)換及分詞等;所述檢索關鍵字優(yōu)化模塊對預處理后的檢索關鍵字進行省略變換和分類,并將檢索關鍵字及其分類發(fā)送至索引模塊。所述數(shù)據(jù)抽取模塊對網(wǎng)絡爬取模塊獲取的原始HTML網(wǎng)頁進行標準XML的轉(zhuǎn)化,查找數(shù)據(jù)節(jié)點,對數(shù)據(jù)加上相應標簽,將其映射成JSON格式的數(shù)據(jù)。如圖2所示,本發(fā)明實施例I所述的一種面向微博的定制化篩選方法,具體包括以下步驟步驟I :判斷是通過網(wǎng)站提供的開放API,獲取JSON格式的微博數(shù)據(jù);步驟2 :通過網(wǎng)絡爬蟲的方式抓取特定的微博網(wǎng)站,得到原始的半結(jié)構(gòu)化HTML頁面。步驟3 :所述分析模塊中的抽取模塊查找數(shù)據(jù)節(jié)點,將原始不規(guī)范的HTML頁面轉(zhuǎn)化為XML,從XML的樹中結(jié)合微博消息的屬性,查找特定的區(qū)域,從中抽取相關的微博數(shù)據(jù),并標記好引用點或錨;步驟4 :利用XSL文件標識錨,指定從錨獲取設置查找的微博屬性數(shù)據(jù),并且用相對應的格式構(gòu)造一個JSON輸出文件;步驟5 :微博數(shù)據(jù)的去重,使用Message-Digest Algorithm 5(MD5算法)對字符串“微博數(shù)據(jù)+發(fā)布時間+作者”(“ + ”表示字符串連接)計算簽名,將簽名存儲到數(shù)據(jù)庫中。對每一條新抓取的微博,計算MD5簽名,查看數(shù)據(jù)庫中是否存在,若存在表示重復了,否則表示不存在,將簽名存儲在數(shù)據(jù)庫中;
步驟6 :微博數(shù)據(jù)的過濾,將待過濾的詞配置在詞表中,對微博數(shù)據(jù)進行多模匹配,查看微博數(shù)據(jù)中是否有詞表中的詞存在。步驟7 :文本根據(jù)分類詞典進行分類,分類詞典以不同的類別名稱為文件命名,分別存儲在文本文件中;
步驟8 :微博數(shù)據(jù)的文本分詞,采用基于前項最大匹配算法的分詞方法對微博內(nèi)容進行分詞;步驟9 :索引模塊對分析模塊傳輸至的數(shù)據(jù)建立索引;步驟10 :處理檢索關鍵字,對來自交互模塊中的檢索關鍵字進行糾錯、同義詞轉(zhuǎn)換及分詞等預處理的工作;步驟11 :優(yōu)化檢索關鍵字,對預處理后的檢索關鍵字進行省略變換、分類,并將檢索關鍵字及其分類發(fā)送給索引模塊。步驟12 :用戶通過管理界面定制篩選條件,分析模塊將篩選后的數(shù)據(jù)保存入庫。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種面向微博的定制化篩選系統(tǒng),其特征在于,包括后臺模塊和交互模塊,所述后臺模塊用于采集數(shù)據(jù)、分析數(shù)據(jù)、本地存儲、建立索引并提供檢索功能; 所述交互模塊與后臺模塊信息交互,并提供與后臺模塊交互的WEB界面; 所述后臺模塊依次包括信息交互的采集模塊、分析模塊、索引模塊和檢索模塊;所述采集模塊,采集原始微博數(shù)據(jù); 所述分析模塊對采集模塊傳輸?shù)臄?shù)據(jù)進行抽取、去重及過濾得到有效數(shù)據(jù),并對有效數(shù)據(jù)分類、存儲,所述過濾包括對垃圾、廣告及黃反數(shù)據(jù)的過濾; 所述索弓I模塊對分析模塊傳輸至的數(shù)據(jù)進行中英文分詞,根據(jù)分詞的結(jié)果建立倒排索引及增量索引,并根據(jù)微博狀態(tài)文件定期的刪除索引; 所述檢索模塊接收交互模塊傳輸?shù)臋z索關鍵字,并對檢索關鍵字進行糾錯、同義詞轉(zhuǎn)換、分詞及優(yōu)化,并對檢索結(jié)果進行篩選和排序,進一步將排序結(jié)果返回交互模塊。
2.根據(jù)權(quán)利要求I所述的定制化篩選系統(tǒng),其特征在于,所述檢索模塊包括Query檢索關鍵字處理模塊和Query檢索關鍵字優(yōu)化模塊,所述Query處理模塊接收交互模塊傳輸至的Query檢索關鍵字,對Query檢索關鍵字進行處理,并將處理后的Query發(fā)送至Query優(yōu)化模塊; 所述Query優(yōu)化模塊對Query處理模塊發(fā)送至的Query進行省略變換和分類,并將Query及其分類發(fā)送給索引模塊,接收索引模塊返回的結(jié)果; 所述Query優(yōu)化模塊包括Query省略模塊和Query分類模塊,所述Query省略模塊接收Query處理模塊發(fā)送至的數(shù)據(jù),并將所述數(shù)據(jù)進行正則匹配,將不匹配的Query進行省略;所述Query分類模塊將來自Query省略模塊的數(shù)據(jù)根據(jù)它的主題進行分類,并將分類后的數(shù)據(jù)傳輸至索引模塊; 所述Query省略模塊通過挖掘規(guī)則對傳輸至的數(shù)據(jù)進行處理,查找出不重要的分詞,并建立正則規(guī)則,對于后輸入的數(shù)據(jù)與所述正則規(guī)則進行匹配。
3.根據(jù)權(quán)利要求I所述的定制化篩選系統(tǒng),其特征在于,所述交互模塊包括權(quán)限控制模塊、查詢模塊、篩選模塊、入庫數(shù)據(jù)管理模塊和特定管理模塊,所述權(quán)限控制模塊控制不同用戶對系統(tǒng)的不同操作權(quán)限; 所述查詢模塊通過排行查詢、標簽查詢和高級檢索的方式實現(xiàn)對微博信息的查看; 所述篩選模塊篩選數(shù)據(jù)并添加自定義主題,并將其存儲到數(shù)據(jù)庫中; 所述入庫數(shù)據(jù)管理模塊對篩選模塊中已存入數(shù)據(jù)庫的數(shù)據(jù)進行展示; 所述特定管理模塊用于對名人和機構(gòu)名稱、名人和機構(gòu)分類及url網(wǎng)頁地址進行管理。
4.根據(jù)權(quán)利要求3所述的定制化篩選系統(tǒng),其特征在于,所述采集模塊包括網(wǎng)絡爬取模塊和微博API應用編程接口模塊,所述網(wǎng)絡爬取模塊對指定的URL網(wǎng)頁地址進行抓取,并對選取的URL發(fā)送請求得到網(wǎng)站原始的HTML超文本標記語言頁面并發(fā)送至分析模塊;所述微博API模塊采用現(xiàn)有微博平臺提供的微博API獲取JSON輕量級數(shù)據(jù)交換格式的數(shù)據(jù)并發(fā)送至分析模塊; 所述分析模塊包括數(shù)據(jù)抽取模塊、數(shù)據(jù)過濾模塊、文本分類模塊、數(shù)據(jù)存儲模塊,所述數(shù)據(jù)抽取模塊接收采集模塊中網(wǎng)絡爬取模塊收集到的HTML頁面并格式化為JSON格式的數(shù)據(jù),并將所述格式化為JSON格式的數(shù)據(jù)傳輸至數(shù)據(jù)過濾模塊,所述數(shù)據(jù)抽取模塊對網(wǎng)絡爬取模塊獲取的原始HTML網(wǎng)頁進行標準XML可擴展標記語言格式的轉(zhuǎn)化,查找數(shù)據(jù)節(jié)點,對數(shù)據(jù)加上相應標簽,將其映射成JSON格式的數(shù)據(jù);所述數(shù)據(jù)過濾模塊接收采集模塊中微博API模塊輸出的JSON格式的數(shù)據(jù)和數(shù)據(jù)抽取模塊傳輸?shù)腏SON格式的數(shù)據(jù),并將所述數(shù)據(jù)通過去重和過濾得到有效數(shù)據(jù),并將所述有效數(shù)據(jù)傳輸至文本分類模塊和數(shù)據(jù)存儲模塊;所述文本分類模塊對過濾模塊傳輸至的有效數(shù)據(jù)進行分類并將分類結(jié)果發(fā)送至數(shù)據(jù)存儲模塊;所述數(shù)據(jù)存儲模塊將數(shù)據(jù)過濾模塊和文本分類模塊傳輸至的數(shù)據(jù)和分類結(jié)果寫入文件,并分別存儲所述文件數(shù)據(jù),同時提取有效數(shù)據(jù)的屬性信息寫入文件; 所述數(shù)據(jù)存儲模塊包括數(shù)據(jù)庫和文本文件,所述數(shù)據(jù)庫用于存儲完整的數(shù)據(jù)信息并根據(jù)用戶指令將數(shù)據(jù)發(fā)送至交互模塊;所述文本文件用于存儲數(shù)據(jù)的id、內(nèi)容和分類,并根據(jù)索引模塊的調(diào)用將數(shù)據(jù)傳輸至交互模塊; 所述索引模塊包括文本分詞模塊和索引建立模塊,所述文本分詞模塊通過庖丁解牛分詞器結(jié)合詞典對數(shù)據(jù)存儲模塊中存儲的文件內(nèi)容進行分詞,得到建立索引的原始數(shù)據(jù);所述索引建立模塊對文本分詞模塊傳輸至的數(shù)據(jù)建立倒排索引及增量索引得到索引數(shù)據(jù)。
5.一種面向微博的定制化篩選方法,其特征在于,具體包括以下步驟 步驟I :通過采集模塊收集來自網(wǎng)站的數(shù)據(jù); 步驟2 :分析模塊過濾采集模塊的數(shù)據(jù)得到有效數(shù)據(jù); 步驟3 :索引模塊對分析模塊傳輸至的數(shù)據(jù)建立索引; 步驟4 :用戶輸入查詢請求通過檢索模塊獲取分析模塊內(nèi)的相關數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的定制化篩選方法,其特征在于,所述步驟I通過兩種方法獲得數(shù)據(jù); 系統(tǒng)通過采集模塊的微博API模塊從網(wǎng)站提供的開放API編程接口,獲取JSON輕量級數(shù)據(jù)交換格式的微博數(shù)據(jù); 系統(tǒng)通過采集模塊的網(wǎng)絡爬取模塊抓取特定的微博網(wǎng)站,得到原始的半結(jié)構(gòu)化HTML頁面。
7.根據(jù)權(quán)利要求5所述的定制化篩選方法,其特征在于,所述步驟2具體包括以下步驟 步驟2. I :判斷數(shù)據(jù)是網(wǎng)絡爬取模塊還是微博API模塊傳輸?shù)模绻蔷W(wǎng)絡爬取模塊傳輸?shù)陌虢Y(jié)構(gòu)化HTML頁面,進入步驟2. 2 ;如果是微博API模塊傳輸?shù)臄?shù)據(jù),進入步驟2. 4 ;步驟2. 2 :查找數(shù)據(jù)節(jié)點,將原始不規(guī)范的HTML頁面轉(zhuǎn)化為XML,從XML的樹中結(jié)合微博消息的屬性,查找特定的區(qū)域,從中抽取相關的微博數(shù)據(jù),并標記好引用點或錨; 步驟2. 3 :利用XSL文件標識錨,指定從錨獲取設置查找的微博屬性數(shù)據(jù),并且用相對應的格式構(gòu)造一個JSON輸出文件; 步驟2. 4:微博數(shù)據(jù)的去重; 步驟2. 5 :微博數(shù)據(jù)的過濾,將待過濾的詞配置在詞表中,對微博數(shù)據(jù)進行多模匹配,查看微博數(shù)據(jù)中是否有詞表中的詞存在;所述分類詞典以不同的類別名稱為文件命名,分別存儲在文本文件中;微博數(shù)據(jù)的文本分詞,采用基于前項最大匹配算法的分詞方法對微博內(nèi)容進行分詞; 步驟2. 6 :分析模塊中的文本分類模塊對過濾后的數(shù)據(jù)進行分類處理,并將結(jié)果存入數(shù)據(jù)庫和文本文件;其中將完整的微博數(shù)據(jù)存入數(shù)據(jù)庫,將數(shù)據(jù)id、內(nèi)容和分類存入文本文件。
8.根據(jù)權(quán)利要求5所述的定制化篩選方法,其特征在于,所述步驟4具體包括以下操作 步驟4. I :通過篩選模塊數(shù)據(jù)檢索關鍵字,檢索模塊處理檢索關鍵字,對來自交互模塊中的檢索關鍵字進行糾錯、同義詞轉(zhuǎn)換及分詞等預處理的工作; 步驟4.2 :優(yōu)化檢索關鍵字,對預處理后的檢索關鍵字進行省略和分類,并將對應的分類結(jié)果及處理后的檢索關鍵字輸出給索引模塊; 步驟4. 3 :檢索模塊與索引模塊信息交互,控制索引模塊調(diào)用分析模塊中的數(shù)據(jù)庫將對應檢索關鍵字的數(shù)據(jù)id對應的完整的微博信息傳輸至交互模塊; 步驟4. 4 :交互模塊將傳輸至的數(shù)據(jù)存入入庫數(shù)據(jù)管理模塊。
9.根據(jù)權(quán)利要求8所述的定制化篩選方法,其特征在于,所述步驟4.2具體包括以下操作 步驟4. 2. I :檢索關鍵字省略模塊根據(jù)挖掘規(guī)則對傳輸至的數(shù)據(jù)進行處理,查找出不重要的分詞,并建立正則規(guī)則; 步驟4. 2. 2 :根據(jù)正則規(guī)則對輸入的數(shù)據(jù)與所述正則規(guī)則進行匹配; 步驟4. 2. 3 :檢索關鍵字分類模塊對輸入的數(shù)據(jù)進行分類并調(diào)用索引模塊的文本文件中的對應的id,并將所述對應的id發(fā)送至分析模塊,從分析模塊的數(shù)據(jù)庫中取出id對應的完整微博信息,并將其傳輸至交互模塊;所述的分類需要對應根據(jù)預先設置的分類表進行匹配生成。
全文摘要
本發(fā)明涉及一種面向微博的定制化篩選系統(tǒng)及方法,其中一種面向微博的定制化篩選系統(tǒng)包括后臺模塊和交互模塊,所述后臺模塊用于采集數(shù)據(jù)、分析數(shù)據(jù)、本地存儲、建立索引并提供檢索功能;所述交互模塊與后臺模塊信息交互,并提供與后臺模塊交互的WEB界面。本系統(tǒng)是解決信息過載的一種解決方案,即從龐大的微博數(shù)據(jù)中,針對性地篩選出用戶關注的一類信息,為用戶過濾掉一大批非關注信息,并能將這些數(shù)據(jù)本地化存儲,方便用戶長期使用;并通過驗證機制增強系統(tǒng)本身的安全性;整個系統(tǒng)的工作邏輯清晰、流暢,減少了系統(tǒng)各模塊之間的耦合度,每模塊內(nèi)部都由若干模塊組成,有利于每模塊功能的擴展。
文檔編號G06F17/30GK102622443SQ201210065678
公開日2012年8月1日 申請日期2012年3月13日 優(yōu)先權(quán)日2012年3月13日
發(fā)明者劉佳, 田瑞, 閆丹鳳 申請人:北京郵電大學