專利名稱:基于微博的眾包問答系統信息采集方法
技術領域:
本發明涉及互聯網應用中的數據處理技術、信息處理領域中的文本相似度分析技術、社交網絡領域中的用戶興趣信息提取技術,特別涉及一種基于微博的眾包問答系統信息采集方法。
背景技術:
在互聯網應用方面,大多數社交網絡平臺都采用了開放授權0Auth2的用戶登陸和授權模式。應用通過平臺用戶的授權之后,就可以通過API接口獲取相應的用戶數據。此夕卜,在微博系統中,當用戶@具體賬號時,該條消息就會發送給被@的用戶。所述@到該官方賬號具體為:在微博內容中加上以“@”+賬號昵稱為格式的文本。這些成熟的互聯網數據處理技術和服務是本發明實現的基礎。在眾包系統中,通常都是通過一套激勵措施吸引用戶來完成一系列的工作和任務。問答網站是眾包系統的一種實例。在問答網站中,一般都實現了積分方式作為對回答者的一種激勵。眾包系統的存在,正是因為在信息處理領域中,許多的問題和工作仍然只有通過人力才能夠更高效地開展。最近幾年來,在眾包系統領域,專家學者又提出了一系列新的思路和技術。例如,伯克利大學的科研工作者提出了通過眾包來回答數據庫查詢的技術。在信息處理領域中,文本相似度分析已經存在很多成熟的算法,例如最長公共子串LCS算法和字符串相似度Levenshtein距離算法。LCS算法的原理是將兩個字符串分別以行和列組成矩陣,每個節點行列字符如果相同則計為1,通過找出值為I的最長對角線即可得到最長公共子串。Levenshtein距離又稱為編輯距離,Levenshtein距離算法的基本原理是返回將第一個字符串轉換成第二個字符串的編輯次數。次數越少,意味著字符串相似度越高。在社交網絡領域中,專家學者們針對用戶興趣愛好的分析提取提出了許多工作。最基本的處理方法通常都是對社交網絡中具體用戶發布的所有信息數據,進行分詞處理,對具體詞匯通過tf-1df (詞頻-反文檔頻率)算法進行進一步計算,排序得到tf-1df值最高的一系列關鍵詞作為該用戶可能感興趣的標簽。
發明內容
本發明的目的在于針對現有技術的不足,提供一種基于微博的眾包問答系統信息采集方法。本發明解決其技術問題采用的技術方案如下:一種基于微博的眾包問答系統信息采集方法,包括如下步驟:
步驟1:在微博平臺上注冊官方賬號,在微博開放平臺申請成為第三方網站開發賬號,獲取開發網站的App Key (應用碼)和App Secret (應用密鑰);
步驟2:通過微博開放平臺提供的接口,開發數據采集和發布模塊,向微博平臺采集和發布數據,包括問答數據以及用戶資料信息; 步驟3:用戶發起的任何問題只需要O到該官方賬號,該問題原微博以及所有轉發微博將通過數據采集和發布模塊被系統采集收錄;
步驟4:對采集到的問答數據進行分析處理:該步驟可提取該問題的整體樹狀轉發結構、提取相似答案、過濾純轉發答案,并對整個話題回答進行各類統計分析;
步驟5:將步驟4提取的該問題的整體樹狀轉發結構、提取相似答案和過濾純轉發答案,以及統計分析的結果,在前端界面為用戶提供多元化的結果展示;
步驟6:利用全局采集到的用戶問答記錄和具體用戶資料信息,分析每個用戶在問答系統中的活躍程度、感興趣領域以及擅長領域等信息;
步驟7:利用步驟6所得到的用戶活躍程度、感興趣和擅長領域等信息,系統自動將該新問題推送給可能感興趣的潛在回答用戶。本發明的有益效果是,該發明首先實現了與微博平臺進行數據交互的數據采集和發布模塊,通過該模塊自動采集系統相關的所有問答數據和用戶資料信息。對于采集到的問答數據進行后臺分析處理,為用戶提供更直觀和專業的回答結果展示。另外,系統通過對用戶資料信息和問答行為的具體分析,將各類新問題有效推送給可能回答的潛在用戶,以對新問題進行高效、快速擴散。應用本發明的方法,可以通過微博平臺實現問答系統更高效快速地獲取答案。
圖1是本發明實施步驟總體模塊流程 圖2是數據采集和發布模塊具體工作流程具體實施例方式現結合具體實施和示例對本發明的技術方案作進一步說明。如圖1,本發明基于微博的眾包問答系統信息采集方法,包括如下步驟:
步驟1:在微博平臺上注冊官方賬號,在微博開放平臺申請成為第三方網站開發賬號,獲取開發網站的App Key (應用碼)和App Secret (應用密鑰)。官方賬號可以通過微博平臺網站注冊申請,得到的微博賬號通過用戶名、密碼正常登陸后,可以修改個人信息、發布微博。在微博開放平臺網站申請成為第三方網站開發賬號,完成身份認證和開發者審核流程,獲得測試應用開發權限。在開放平臺網站的管理中心頁面,添加待開發的網站,完成該網站基本信息的注冊審核之后,得到相應的App Key和App Secret信息。步驟2:通過微博開放平臺提供的接口,開發數據采集和發布模塊,向微博平臺采集和發布數據,包括問答數據以及用戶資料信息。如圖2,數據采集和發布模塊的工作過程如下:
首先,根據步驟I)獲取的第三方網站應用App Key和App Secrect信息,通過開放平臺的開放授權0Auth2協議用官方賬號登陸并完成授權,由此可以獲取該官方賬號訪問微博數據的訪問令牌Access Token。另外,其他微博用戶在系統網站中通過微博登陸和完成授權,同樣也可獲得該賬號綁定的訪問令牌Access Token。其次,根據相關微博賬號所綁定的訪問令牌Access Token,通過微博開放平臺所提供的獲取數據和發布數據API,實現數據采集和發布模塊的代碼。最后,完成具體的開發之后,微博的用戶只需要通過開放授權0Auth2登陸授權,系統就可以對該用戶的數據進行采集和發布,所采集的數據包括用戶所發表的問答微博數據和用戶資料信息。步驟3:用戶發起的任何問題只需要O到該官方賬號,該問題原微博以及所有轉發微博將通過數據采集和發布模塊被系統采集收錄。所述@到該官方賬號具體為:在微博內容中加上以“@”+被@的用戶的賬號昵稱為格式的文本。在微博系統中,被@的用戶將收到通知提醒。數據采集和發布模塊維護了官方賬號的訪問令牌Access Token,通過微博開放平臺的獲取提及微博getMentions接口,就可以采集所有@到官方賬號的微博。步驟4:對采集到的問答數據進行分析處理。該步驟可提取該問題的整體樹狀轉發結構、提取相似答案、過濾純轉發答案,并對整個話題回答進行各類統計分析。數據分析處理的工作過程如下:
首先,根據微博的轉發格式,對轉發微博的文本內容進行分析,提取該話題的整體樹狀轉發結構。微博的轉發一般都以“//”的形式進行分隔,通過對轉發內容的解析可以獲得該條轉發微博本身的文本內容,以及它所轉發的父微博。對一個問題的所有轉發微博進行分析之后,就可以得出該話題的整體樹狀轉發結構。其次,根據上一過程獲取每條轉發微博本身的文本內容,如果該文本內容為空,則這是一條純轉發答案,可以進行過濾;
在提取相似答案步驟,根據每條回答的文本內容,通過最長公共子串LCS算法和字符串相似度Levenshtein距離算 法計算文本之間的相似距離,對整個問題的所有答案進行相似答案聚類。最后,根據一個話題的所有回答微博,統計回答時間、回答用戶所在城市等分布信
肩、O步驟5:將步驟4提取的該問題的整體樹狀轉發結構、提取相似答案和過濾純轉發答案,以及統計分析的結果,在前端界面為用戶提供多元化的結果展示。步驟6:利用全局采集到的用戶問答記錄和具體用戶資料信息,分析每個用戶在問答系統中的活躍程度、感興趣領域以及擅長領域等信息。對于單個用戶,系統形成了該用戶所發表微博和所有回答的資料庫。對這些微博資料進行分詞之后,通過tf-1df (詞頻-反文檔頻率)算法計算排序最高的關鍵詞作為標簽。具體的關鍵詞tf-1df算法計算如下:
每一個用戶所發表的微博作為該用戶的文檔集,所有用戶所發表的微博合成全局的文檔集。通過IKAnalyzer (中文分詞庫)分詞器對每條微博進行分詞,每條微博生成若干關鍵詞集合,對于某個用戶,每個關鍵詞的tf (詞頻)值是該用戶文檔集中所包含該關鍵詞的頻率;與此類似,可計算得出每個關鍵詞在全局文檔集中出現的頻率。最后,根據tf-1df公式為每個用戶計算得出所有關鍵詞的tf-1df值,排序后截取該值最大的一些關鍵詞表示該用戶的感興趣領域和擅長領域信息。通過該方法,每個用戶維護了一個帶權重的關鍵詞向量 Kt1, W1) , (t2, W2),…,(tn, Wn) } O
其次,用戶的活躍程度可以根據以下方法進行計算:
對于用戶維護單獨的活躍程度active,每個用戶的活躍程度active值根據該用戶當天所發表的問答微博數量進行更新。更新后的活躍程度active值是前一天的活躍程度active值乘以固定的衰減系數(該衰減系數在0-1之間,通常可設置為0.6左右)再加上當天該用戶所發表的問答微博數量。步驟7:利用步驟6所得到的用戶活躍程度、感興趣和擅長領域等信息,系統自動將該新問題推送給可能感興趣的潛在回答用戶。推送算法可以通過以下過程實現:
首先,為了保證提升效果以及防止推送過程對用戶進行騷擾等原因,對用戶活躍程度設一定臨界值threshold,只向活躍程度值在該臨界值threshold之上的用戶進行推送。其次,計算每個新問題與每個用戶之間的相似度值,該值表示了該問題與用戶之間的相關性程度,通過對相似度值進行排序,截取相關性最高的一定量用戶進行推送。具體的相似度值計算方法如下:
新問題內容通過分詞可以得到所包含的關鍵詞列表,根據步驟6中計算得到的每個用戶關鍵詞向量,對所有匹配的關鍵詞權重加合,作為該問題與該用戶之間的相似度值。最后,對計算得到的推送用戶列表,通過步驟2開發的數據采集和發布模塊,向該問題原微博發布一條評論微博,在評論中@到所有待推送的用戶。
權利要求
1.一種基于微博的眾包問答系統信息采集方法,其特征在于,包括如下步驟: 步驟1:在微博平臺上注冊官方賬號,在微博開放平臺申請成為第三方網站開發賬號,獲取開發網站的App Key (應用碼)和App Secret (應用密鑰); 步驟2:通過微博開放平臺提供的接口,開發數據采集和發布模塊,向微博平臺采集和發布數據,包括問答數據以及用戶資料信息; 步驟3:用戶發起的任何問題只需要O到該官方賬號,該問題原微博以及所有轉發微博將通過數據采集和發布模塊被系統采集收錄; 步驟4:對采集到的問答數據進行分析處理:該步驟可提取該問題的整體樹狀轉發結構、提取相似答案、過濾純轉發答案,并對整個話題回答進行各類統計分析; 步驟5:將步驟4提取的該問題的整體樹狀轉發結構、提取相似答案和過濾純轉發答案,以及統計分析的結果,在前端界面為用戶提供多元化的結果展示; 步驟6:利用全局采集到的用戶問答記錄和具體用戶資料信息,分析每個用戶在問答系統中的活躍程度、感興趣領域以及擅長領域等信息; 步驟7:利用步驟6所得到的用戶活躍程度、感興趣和擅長領域等信息,系統自動將該新問題推送給可能感興趣的潛在回答用戶。
2.根據權利要求1所述基于微博的眾包問答系統信息采集方法,其特征在于,所述步驟2由以下子步驟來實現: (1)根據步驟I獲取的第三方網站應用AppKey和App Secrect信息,通過開放平臺的開放授權0Auth2協議用官方賬號登陸并完成授權,由此可以獲取該官方賬號訪問微博數據的訪問令牌Access Token ;另外,其他微博用戶在系統網站中通過微博登陸和完成授權,同樣也可獲得該賬號綁定的訪問令牌Access Token ; (2)根據相關微博賬號所綁定的訪問令牌AccessToken,通過微博開放平臺所提供的獲取數據和發布數據API,實現數據采集和發布模塊的代碼; (3)完成具體的開發之后,微博的用戶只需要通過開放授權0Auth2登陸授權,系統就可以對該用戶的數據進行采集和發布,所采集的數據包括用戶所發表的問答微博數據和用戶資料信息。
3.根據權利要求1所述基于微博的眾包問答系統信息采集方法,其特征在于,所述步驟4中,所述對整個話題回答進行各類統計分析由以下子步驟來實現: (1)根據微博的轉發格式,對轉發微博的文本內容進行分析,提取該話題的整體樹狀轉發結構;微博的轉發一般都以“//”的形式進行分隔,通過對轉發內容的解析可以獲得該條轉發微博本身的文本內容,以及它所轉發的父微博;對一個問題的所有轉發微博進行分析之后,就可以得出該話題的整體樹狀轉發結構; (2)根據上一過程獲取每條轉發微博本身的文本內容,如果該文本內容為空,則這是一條純轉發答案,可以進行過濾; (3)在提取相似答案步驟,根據每條回答的文本內容,通過最長公共子串LCS算法和字符串相似度Levenshtein距離算法計算文本之間的相似距離,對整個問題的所有答案進行相似答案聚類; (4)根據一個話題的所有回答微博,統計回答時間、回答用戶所在城市等分布信息。
全文摘要
本發明公開了一種基于微博的眾包問答系統信息采集方法,該發明首先實現了與微博平臺進行數據交互的數據采集和發布模塊,通過該模塊自動采集系統相關的所有問答數據和用戶資料信息;對于采集到的問答數據進行后臺分析處理,為用戶提供更直觀和專業的回答結果展示;另外,系統通過對用戶資料信息和問答行為的具體分析,將各類新問題有效推送給可能回答的潛在用戶,以對新問題進行高效、快速擴散;應用本發明的方法,可以通過微博平臺實現問答系統更高效快速地獲取答案。
文檔編號G06F17/30GK103106267SQ20131004055
公開日2013年5月15日 申請日期2013年2月2日 優先權日2013年2月2日
發明者胡天磊, 伍賽, 陳剛, 周顯錁, 張冰冰, 陳珂 申請人:浙江大學