一種基于產品信息結構化的Web問答檢索系統的制作方法
【專利摘要】本發明是一種基于產品信息結構化的Web問答檢索系統。包括用戶接口、產品信息爬取模塊、信息抽取模塊、倒排索引建立模塊、數據庫接口、信息整合模塊、問句處理模塊、數據庫,本發明能實時獲得線上產品信息的最新情況,并通過信息抽取和整合模塊,能夠及時對數據庫中已有的結構化產品數據進行更新或增加新的結構化產品數據,使得系統能夠適應線上產品信息的變化。另外,本發明從多個產品信息網站對產品信息進行采集,并通過信息抽取和整合模塊,對同一產品在不同網站上的產品信息進行整合,對矛盾的信息進行判斷,對缺少的信息進行不同信息源間的互補,確保檢索信息的完整性和真實性。本發明是一種具有較高的檢索效率的基于產品信息結構化的Web問答檢索系統。
【專利說明】一種基于產品信息結構化的Web問答檢索系統
【技術領域】
[0001]本發明涉及互聯網非結構化、半結構化信息抽取、建模與搜索領域,具體為一種基于產品信息結構化的Web問答檢索系統及方法,屬于基于產品信息結構化的Web問答檢索系統的改造技術。
【背景技術】
[0002]21世紀是信息化的時代,網絡已成為人們生活不可或缺的一部分。隨著互聯網的迅速發展,一方面人們對于網絡信息的需求與日俱增,另一方面互聯網上存在海量的信息,然而由于互聯網大容量、動態性等固有特性,這些海量信息往往是零碎的,缺乏組織性并包含了大量無效數據。這降低了人們對豐富信息資源的利用效率。為了解決這種“信息過載”問題,許多公司及研究機構轉向了對自動問答系統的研究。
[0003]問答系統(Question Answering System, QA)是信息檢索系統的一種高級形式。它能用準確、簡潔的自然語言回答用戶用自然語言提出的問題。其研究興起的主要原因是人們對快速、準確地獲取信息的需求。問答系統是目前人工智能和自然語言處理領域中一個倍受關注并具有廣泛發展前景的研究方向。
[0004]從知識領域來看,現有的問答系統可分為“封閉領域”以及“開放領域”兩類系統。封閉領域系統專注于回答特定領域的問題,目前大多數問答系統屬于封閉領域系統。開放領域系統則希望不設限問題的內容范圍,難度相對較高。
[0005]現有的封閉領域問答系統主要有:昆明理工大學的申請號為200810233734、發明名稱為“基于本體推理的旅游問答系統答案抽取方法”。該方法集中于對旅游問答系統答案抽取方法的研究,首先人工定義旅游領域中的概念、屬性和關系,并人工構建旅游領域本體知識庫,最后再對本體的一致性進行檢驗;其次利用本體知識庫中的語義信息對用戶問句進行語義消歧;然后人工定義旅游領域中的語義規則;再次基于語義消歧的問句分析結果,采用相應的語義規則的推理和信息檢索相結合的方法在本體知識庫中抽取答案;最后根據不同的問句類型,設計相應的答案抽取算法,提高系統的響應率和召回率。
[0006]可以看出,該發明采用的方法中需要大量的人工干涉,包括知識庫的構建、概念屬性的定義以及語義規則的制定都需要人工參與。過多的人工參與會導致人力成本的增加,并需要保持一定的人員對系統進行維護和更新。
【發明內容】
[0007]本發明的目的在于考慮上述問題而提供一種確保檢索信息的完整性和真實性,且具有較高的檢索效率的基于產品信息結構化的Web問答檢索系統。
[0008]本發明的技術方案是:本發明的基于產品信息結構化的Web問答檢索系統,包括有用戶接口、產品信息爬取模塊、信息抽取模塊、倒排索引建立模塊、數據庫接口、信息整合模塊、問句處理模塊、數據庫,其中,
[0009]用戶接口,用于實現Web問答系統與用戶的各種通信,包括獲取用戶輸入的產品相關自然語言問句并將問句傳遞給問句處理模塊;將對應的搜索結果以及相關網頁返回給用戶;
[0010]產品信息爬取模塊,用于按照一定時間間隔對網頁進行爬取,并將爬取的網頁進行存儲,傳遞給信息抽取模塊進行處理;
[0011]信息抽取模塊,用于對產品信息爬取模塊爬取網頁中的非結構化網頁信息進行處理,將這些非結構化信息轉化為結構化信息,并通過數據庫接口與結構化產品信息數據建立連接,將處理好的結構化信息存儲在數據庫中;
[0012]倒排索引建立模塊,用于從產品信息爬取模塊爬取的網頁中提取關鍵內容,并對這些網頁建立倒排索引;
[0013]數據庫接口,實現結構化產品數據的存取、更新數據庫操作的統一接口及訪問權限控制;
[0014]信息整合模塊,用于整合信息抽取模塊輸出的多個數據來源結構化信息,并將整合后的結構化數據通過數據庫接口與數據庫建立連接,保存到數據庫中;
[0015]問句處理模塊,用于將用戶輸入的自然語言問句轉化為結構化的語句,該模塊通過用戶接口與用戶建立連接獲取用戶輸入的自然語言問句,并通過數據庫接口與數據庫建立連接,使用轉化后得到的語句在數據庫中進行查詢,并通過用戶接口將語句的查詢結果反饋給用戶。
[0016]上述問句處理模塊分兩步對自然語言問句進行轉化,首先使用訓練好的樸素貝葉斯分類器對自然語言問句進行分類,然后采用skip-chain CRF模型對自然語言問句中的命名實體進行識別和抽取。
[0017]上述命名實體為手機名稱、手機屬性。
[0018]上述Skip-chain CRF模型是在線性條件隨機場(Linear CRF)模型的基礎上演變而來,是條件隨機場(CRF)模型中的一種。
[0019]上述命名實體識別方法中,忽略連詞“和”、“或”在句中的作用,在Skip-chain CRF模型中建立了連詞前后兩個詞間的聯系,幫助最終精度的提高;用于查詢問句命名實體抽取的識別模型,采用Skip-Chain CRF模型對訓練集進行學習后,獲得針對產品信息的命名實體識別和判斷準則,進而將問句轉化為有檢索意義的關鍵詞和產品屬性。
[0020]上述信息整合模塊先根據待處理的兩張表中的屬性值信息得到一張屬性映射表,即將兩張表中具有相同意義但命名可能不同的屬性名對應起來,便于下一步的整合工作;再根據得到的映射表信息創建目標表,分別按序重新排列兩張表的列名,根據能夠唯一確定一條記錄的主鍵值來確定兩張表中的對應記錄是否可比較,若相等則認為是可以比較的,若可比較,則對兩張表中的信息進行合并或去除冗余處理,將處理結果插入目標表中,并將原表中的對應記錄進行標記;最后將未標記的記錄也一一插入目標表中,得到一張經過整合的目標表;若有多張表,則每次處理兩張表,重復上述方法即得到最終結果。
[0021 ] 上述產品信息爬取模塊,用于按照一定時間間隔對pconline、泡泡大型數碼網站上介紹數碼產品詳細信息的網頁進行爬取,并將爬取的網頁進行存儲,傳遞給信息抽取模塊進行處理。
[0022]上述問句處理模塊用于將用戶輸入的自然語言問句轉化為結構化的SQL語句,該模塊通過用戶接口與用戶建立連接獲取用戶輸入的自然語言問句,并通過數據庫接口與結構化產品信息數據庫建立連接,使用轉化后得到的SQL語句在數據庫中進行查詢,并通過用戶接口將SQL語句的查詢結果反饋給用戶。
[0023]本發明針對非結構化、半結構化產品信息的分析系統,對同個產品的多個來源信息進行整合,保證信息的真實和完善;同時采用分類算法以及命名實體識別算法將自然語言問句轉化為結構化數據庫查詢語句;針對產品評論信息的細粒度化情感分析系統,采用一種基于實例相似度的算法對同一產品的不同來源信息進行整合。
[0024]上述基于實例相似度的算法分為映射和合并兩步驟進行信息的整合,在映射步驟采用基于實例相似度的算法對兩張表的對應元素進行相似度計算,在合并步驟根據前一步驟的結果對兩張表進行合并;針對產品評論信息的細粒度化情感分析系統,首先對問句進行分類,然后建立識別模型對問句中的命名實體進行抽取,最后根據前兩步的結構采用相應的規則將該自然語言問句轉化為SQL語句。
[0025]本發明基于產品信息結構化的Web問答檢索系統,具有以下幾個方面的優點:1)本發明對互聯網上變化的產品信息有很好的適應性,本系統提出的有效的定期信息更新收集技術能夠對互聯網上的產品信息的變化進行同一及時收集,能夠實時獲得線上產品信息的最新情況,并通過信息抽取和整合模塊,能夠及時對數據庫中已有的結構化產品數據進行更新或增加新的結構化產品數據,從而使得系統能夠適應線上產品信息的變化。2)本發明收集的產品信息較完整并且具有較高的真實性。本發明從多個產品信息網站對產品信息進行采集,并通過信息抽取和整合模塊,對同一產品在不同網站上的產品信息進行整合,對矛盾的信息進行判斷,對缺少的信息進行不同信息源間的互補,從而確保了信息的完整性和真實性。3)本發明具有較高的檢索效率,與傳統的信息檢索系統返回關鍵詞相關網頁不同,本發明在提供相關網頁信息的同時通過問句處理模塊,對用戶輸入的自然問句進行問句分類、命名實體識別等一系列處理,將自然問句轉化為結構化的SQL語句,最后使用得到的SQL語句到數據庫中進行查詢并返回準確簡單的結果給用戶。本發明是一種方便實用的基于產品信息結構化的Web問答檢索系統,,是信息檢索的一種高級形式,它能用準確、簡介的語言回答用戶用自然語言提出的問題。
【專利附圖】
【附圖說明】
[0026]圖1為本發明的Web問答系統架構圖;
[0027]圖2為本發明的倒排索引建立模塊的實現原理圖;
[0028]圖3是本發明的數據整合模塊的實現原理圖;
[0029]圖4是本發明的問句處理模塊的實現原理圖;
[0030]圖5是本發明的問句處理模塊中問句分類的實現原理圖;
[0031]圖6是本發明的問句處理模塊中命名實體識別的實現原理圖;
[0032]圖7是以命名實體任務為例的Linear-CRF模型的圖結構。
【具體實施方式】
[0033]實施例:
[0034]為使本發明的目的、技術方案和優點更加清楚明白,以下結合具體實施例,并參照附圖,對本發明進一步詳細說明。[0035]圖1示出了本發明基于產品信息結構化的Web問答系統架構圖。
[0036]參照圖1,本發明的Web問答系統包括用戶接口、問句處理模塊、數據庫接口、結構化產品信息數據庫、信息整合模塊、信息抽取模塊、產品信息爬取模塊、倒排索引建立模塊。
[0037]用戶接口,用于實現Web問答系統與用戶的各種通信,包括獲取用戶輸入的產品相關自然語言問句并將問句傳遞給問句處理模塊;將對應的搜索結果以及相關網頁返回給用戶。
[0038]產品信息爬取模塊,用于按照一定時間間隔對pconline、泡泡等大型數碼網站上介紹手機、電腦等數碼產品詳細信息的網頁進行爬取,并將爬取的網頁進行存儲,傳遞給信息抽取模塊進行處理。
[0039]信息抽取模塊,用于對產品信息爬取模塊爬取網頁中的非結構化網頁信息進行處理,如手機的主頻,屏幕大小等。將這些非結構化信息轉化為結構化信息,并通過數據庫接口與結構化產品信息數據建立連接,將處理好的結構化信息存儲在數據庫中。
[0040]倒排索引建立模塊,用于從產品信息爬取模塊爬取的網頁中提取關鍵內容,并對這些網頁建立倒排索引。
[0041 ] 數據庫接口,實現結構化產品數據的存取、更新等數據庫操作的統一接口及訪問權限控制。
[0042]信息整合模塊,用于整合信息抽取模塊輸出的多個數據來源結構化信息,并將整合后的結構化數據通過數據庫接口與數據庫建立連接,保存到數據庫中。本發明先根據待處理的兩張表中的屬性值等信息得到一張屬性映射表,即將兩張表中具有相同意義但命名可能不同的屬性名對應起來,便于下一步的整合工作;再根據得到的映射表信息創建目標表,分別按序重新排列兩張表的列名。根據能夠唯一確定一條記錄的主鍵值來確定兩張表中的對應記錄是否可比較,若相等則認為是可以比較的,若可比較,則對兩張表中的信息進行合并或去除冗余等處理,將處理結果插入目標表中,并將原表中的對應記錄進行標記。最后將未標記的記錄也 插入目標表中,得到一張經過整合的目標表。若有多張表,則每次處理兩張表,重復上述方法即得到最終結果。
[0043]問句處理模塊,用于將用戶輸入的自然語言問句轉化為結構化的SQL語句。該模塊通過用戶接口與用戶建立連接獲取用戶輸入的自然語言問句,并通過數據庫接口與結構化產品信息數據庫建立連接,使用轉化后得到的SQL語句在數據庫中進行查詢,并通過用戶接口將SQL語句的查詢結果反饋給用戶。本發明分兩步對自然語言問句進行轉化,首先使用訓練好的樸素貝葉斯分類器對自然語言問句進行分類,然后采用skip-chain CRF模型對自然語言問句中的命名實體如手機名稱、手機屬性等進行識別和抽取。Skip-chain CRF模型是在Linear CRF (線性條件隨機場)模型的基礎上演變而來,是CRF (條件隨機場)模型中的一種。在以往的命名實體識別方法中,普遍忽略了連詞如“和”、“或”等詞在句中的作用,在Skip-chain CRF模型中建立了連詞前后兩個詞間的聯系,幫助最終精度的提高。
[0044]本發明采用基于相似度計算的算法對統一產品的不同來源信息進行整合。由于本系統在產品信息爬取模塊會對多個數碼產品網站進行信息爬取,這一做法的目的是為了保證收集的產品信息能夠盡量完整豐富,但由于不同網站可能對同一屬性采用不同的命名或者屬性值不同,這導致同一產品的不同來源信息可能存在冗余或者矛盾的情況。本發明采用的基于相似度計算的算法能夠有效地對這些冗余或者矛盾的不同來源信息進行整合,從而既確保了數據的完整又能保證數據具有較高的正確性。
[0045]本發明采用問句分類以及命名實體識別的方法將自然語言問句轉化為結構化的SQL語句。對問句進行分類能夠對問句進行更細致的處理,對不同類別的問句采用不同的轉化規則,能夠提高系統對自然語言問句的理解能力。對自然語言問句中的命名實體進行識別本質上是對問句中的主體或對象進行識別,只有理解問句中的主體和對象才能結合具體的轉化規則進行問句轉化。本發明采用的問句轉化算法能夠對多種類別的自然語言問句進行轉化,并能夠確保較高的準確率。
[0046]綜上所述,該系統的主要模塊為問句處理模塊、數據整合模塊以及倒排索引建立模塊。下面將結合附圖對這三個模塊進行進一步的詳細介紹。
[0047]圖2為倒排索引建立模塊的實現原理圖。參照圖2,該模塊實現從產品信息爬取模塊爬取的網頁中提取關鍵內容,對這些網頁建立倒排索引并存儲起來。索引的構造過程可以分為三部分:
[0048]I)預處理階段,將網頁中的關鍵內容信息使用Htmlparser提取出來,去除網頁中的噪音信息,提高后期檢索的準確率。利用這些提取出來的數據構建Lucene的Document對象及其對應的Field對象。
[0049]2)分析階段,通過調用索引管理器(IndexWriter)的addDocument (Document)方法將數據傳遞給Lucene進行索引操作。在對數據進行索引處理時,Lucene會首先分析數據,使之更加適合被索引。
[0050]3 )寫入索引,對輸入數據分析完成后,將結果寫入索引文件中,將輸入數據以倒排索引的數據結構進行存儲 。
[0051]圖3為數據整合模塊的實現原理圖。參照圖3,該模塊實現整合信息抽取模塊輸出的多個數據來源結構化信息,并將整合后的結構化數據存儲在數據庫中。該模塊可以分為兩個子模塊:
[0052]I)根據待處理的兩張表中的屬性值等信息得到一張屬性映射表,即將兩張表中具有相同意義但命名可能不同的屬性名對應起來,便于下一步的整合工作。
[0053]2)根據第I步得到的映射表信息創建目標表,分別按序重新排列兩張表的列名。根據能夠唯一確定一條記錄的主鍵值來確定兩張表中的對應記錄是否可比較,若相等則認為是可以比較的,若可比較,則對兩張表中的信息進行合并或去除冗余等處理,將處理結果插入目標表中,并將原表中的對應記錄進行標記。最后將未標記的記錄也插入目標表中,得到一張經過整合的目標表。
[0054]若有多張表,則每次處理兩張表,重復上述步驟I和步驟2即得到最終結果。
[0055]建立映射表以及整合信息的詳細步驟為:
[0056]I)得到映射表的步驟:
[0057]1.獲取兩張表中的屬性值信息,將它們分別存入resultl和result2中,例如
[0058]resultI=LisKa1, a2,a3,....,am>,ai2,ai3,...ain>i=l,2,3,…爪.[0059]其中m是第一張表的屬性列的列數,n是第一張表的屬性列的行數。即將第一張表中的各列分別存入a。a2,a3,....,an中。同理可得:
[0060]result2=List<blJ b2,b3,....,bm>,bi=<bilJ bi2,bi3,...bin>i=l,2,3,…m.[0061]2.用中科院分詞工具 imdict-chinese-analyzer 對 a” a2,a3,....,am 和hu b2,b3,....,bm 進行分詞后,另Ij存入 resultISegmentFiIter=List<a1i,a’ 2,a’ 3,...,a’ m>,
a/ =〈a/ ” a/ 2,....,a/ k>result2egmentFilter=List<b1i,b’ 2,b3,,...,b’ m>,b/ =〈!3/ ”
, h,>
2,...., Ui /
[0062]3.分別對 a/,a’ 2,a’ 3,...,a’m 取集合,對 b/,b’ 2,b3’,...,b’m 取集合,即去掉重復出現的值存入 TesultlSet=LislXa1' ’,a’ 2’,a’ 3’,...,a’ ’ m>, a/ =〈a/ ’ ” a/ ’ 2,....,a/ ’JLi是a/’中詞的個數
[0063]result2Set=List<b1',,b,2,,b3,,,...,b,m,>,b/,=<bi',” b/,2,....,b/,L,jb/,中詞的個數
[0064]4.計算resultlSet和result2Set中兩兩元素a/ ’和b/ ’的相似度:
[0065]A)若a/ ’和b/ ’的詞的個數差別較小,則直接對a/ ’和b/ ’進行相似度計算,
相似度計算公式
【權利要求】
1.一種基于產品信息結構化的Web問答檢索系統,其特征在于包括有用戶接口、產品信息爬取模塊、信息抽取模塊、倒排索引建立模塊、數據庫接口、信息整合模塊、問句處理模塊、數據庫,其中, 用戶接口,用于實現Web問答系統與用戶的各種通信,包括獲取用戶輸入的產品相關自然語言問句并將問句傳遞給問句處理模塊;將對應的搜索結果以及相關網頁返回給用戶; 產品信息爬取模塊,用于按照一定時間間隔對網頁進行爬取,并將爬取的網頁進行存儲,傳遞給信息抽取模塊進行處理; 信息抽取模塊,用于對產品信息爬取模塊爬取網頁中的非結構化網頁信息進行處理,將這些非結構化信息轉化為結構化信息,并通過數據庫接口與結構化產品信息數據建立連接,將處理好的結構化信息存儲在數據庫中; 倒排索引建立模塊,用于從產品信息爬取模塊爬取的網頁中提取關鍵內容,并對這些網頁建立倒排索引; 數據庫接口,實現結構化產品數據的存取、更新數據庫操作的統一接口及訪問權限控制; 信息整合模塊,用于整合信息抽取模塊輸出的多個數據來源結構化信息,并將整合后的結構化數據通過數據庫接口與數據庫建立連接,保存到數據庫中; 問句處理模塊,用于將用戶輸入的自然語言問句轉化為結構化的語句,該模塊通過用戶接口與用戶建立連接獲取用戶輸入的自然語言問句,并通過數據庫接口與數據庫建立連接,使用轉化后得到的語句在數據庫中進行查詢,并通過用戶接口將語句的查詢結果反饋給用戶。
2.根據權利要求1所述的 基于產品信息結構化的Web問答檢索系統,其特征在于上述問句處理模塊分兩步對自然語言問句進行轉化,首先使用訓練好的樸素貝葉斯分類器對自然語言問句進行分類,然后采用skip-chain CRF模型對自然語言問句中的命名實體進行識別和抽取。
3.根據權利要求1所述的基于產品信息結構化的Web問答檢索系統,其特征在于上述命名實體為手機名稱、手機屬性。
4.根據權利要求1所述的基于產品信息結構化的Web問答檢索系統,其特征在于上述Skip-chain CRF模型是在線性條件隨機場(Linear CRF)模型的基礎上演變而來,是條件隨機場(CRF )模型中的一種。
5.根據權利要求1所述的基于產品信息結構化的Web問答檢索系統,其特征在于上述命名實體識別方法中,忽略連詞“和”、“或”在句中的作用,在Skip-chain CRF模型中建立了連詞前后兩個詞間的聯系,幫助最終精度的提高;用于查詢問句命名實體抽取的識別模型,采用Skip-Chain CRF模型對訓練集進行學習后,獲得針對產品信息的命名實體識別和判斷準則,進而將問句轉化為有檢索意義的關鍵詞和產品屬性。
6.根據權利要求1所述的基于產品信息結構化的Web問答檢索系統,其特征在于上述信息整合模塊先根據待處理的兩張表中的屬性值信息得到一張屬性映射表,即將兩張表中具有相同意義但命名可能不同的屬性名對應起來,便于下一步的整合工作;再根據得到的映射表信息創建目標表,分別按序重新排列兩張表的列名,根據能夠唯一確定一條記錄的主鍵值來確定兩張表中的對應記錄是否可比較,若相等則認為是可以比較的,若可比較,則對兩張表中的信息進行合并或去除冗余處理,將處理結果插入目標表中,并將原表中的對應記錄進行標記;最后將未標記的記錄也一一插入目標表中,得到一張經過整合的目標表;若有多張表,則每次處理兩張表,重復上述方法即得到最終結果。
7.根據權利要求1所述的基于產品信息結構化的Web問答檢索系統,其特征在于上述產品信息爬取模塊,用于按照一定時間間隔對pconline、泡泡大型數碼網站上介紹數碼產品詳細信息的網頁進行爬取,并將爬取的網頁進行存儲,傳遞給信息抽取模塊進行處理。
8.根據權利要求1所述的基于產品信息結構化的Web問答檢索系統,其特征在于上述問句處理模塊用于將用戶輸入的自然語言問句轉化為結構化的SQL語句,該模塊通過用戶接口與用戶建立連接獲取用戶輸入的自然語言問句,并通過數據庫接口與結構化產品信息數據庫建立連接,使用轉化后得到的SQL語句在數據庫中進行查詢,并通過用戶接口將SQL語句的查詢結果反饋給用戶。
9.根據權利要求1所述的基于產品信息結構化的Web問答檢索系統,其特征在于針對非結構化、半結構化產品信息的分析系統,對同個產品的多個來源信息進行整合,保證信息的真實和完善;同時采用分類算法以及命名實體識別算法將自然語言問句轉化為結構化數據庫查詢語句;針對產品評論信息的細粒度化情感分析系統,采用一種基于實例相似度的算法對同一產品的不同來源信息進行整合。
10.根據權利要求9所述的基于產品信息結構化的Web問答檢索系統,其特征在于上述基于實例相似度的算法分為映射和合并兩步驟進行信息的整合,在映射步驟采用基于實例相似度的算法對兩張表的對應元素進行相似度計算,在合并步驟根據前一步驟的結果對兩張表進行合并;針對產品評論信息的細粒度化情感分析系統,首先對問句進行分類,然后建立識別模型對問句中的命名實體進行抽取,最后根據前兩步的結構采用相應的規則將該自然語言問句轉化為SQL語句。`
【文檔編號】G06F17/30GK103440287SQ201310354888
【公開日】2013年12月11日 申請日期:2013年8月14日 優先權日:2013年8月14日
【發明者】郝志峰, 溫雯, 蔡瑞初, 王鴻飛, 張奇, 張鑫, 劉建明, 王宗武 申請人:廣東工業大學