





摘" 要:該文首先介紹領域內本體庫的組成架構,以及基礎數據分析和WordNet節選的主要功能。隨后,提出一種基于本體庫的實體數據抽取技術,在不同的實體之間建立語義關系,為知識抽取做好鋪墊。在實體信息抽取過程中,首先要判斷網頁是否在領域內,在確定網頁屬于領域后按照特定的標簽劃分網頁內容,進而抽取出有價值的實體數據。將抽取到的實體數據存儲到Neo4j數據庫中,定期更新知識圖譜內的數據。當需要調用數據時,可以從知識圖譜中檢索需要的數據,從而實現數據資源的整合利用,發揮數據的價值。
關鍵詞:本體庫;實體數據抽取;Neo4j數據庫;數據檢索;知識圖譜
中圖分類號:TP391" " " 文獻標志碼:A" " " " " 文章編號:2095-2945(2024)11-0037-04
Abstract: This paper first introduces the architecture of ontology library in the domain, as well as the main functions of basic data analysis and WordNet excerpt. Then, an entity data extraction technology based on ontology library is proposed to establish semantic relationships between different entities and pave the way for knowledge extraction. In the process of entity information extraction, we should first judge whether the web page is in the domain, divide the web page content according to the specific label after determining whether the web page belongs to the domain, and then extract the valuable entity data. The extracted entity data is stored in Neo4j database, and the data in the knowledge graph is updated regularly. When the data needs to be called, the needed data can be retrieved from the knowledge graph, so as to realize the integrated utilization of data resources and give full play to the value of the data.
Keywords: ontology database; entity data extraction; Neo4j database; data retrieval; knowledge graph
知識圖譜本質上是一種在實體之間或者概念之間建立語義關系的知識網絡,成熟的知識圖譜模型包含了Web實體挖掘、實體數據處理、知識表示與知識存儲等模塊。其中,搜索引擎是構建知識圖譜的核心技術,目前常用的搜索引擎有爬蟲引擎、垂直搜索引擎等。其中,基于Python開發的數據操作引擎可以支持數據存儲、數據處理、數據分析等一系列操作,在構建知識圖譜和本體庫知識抽取等方面表現出良好的應用效果。使用該引擎構建知識圖譜,在快速、準確檢索目標數據的基礎上,還能對檢索結果進行智能排序,以及信息推進和關系推理,對于實現信息資源的整合、開發和利用提供了技術支持。
1" 領域內本體庫的構建技術
1.1" 領域內本體庫的組成架構
本體庫是構建知識圖譜的前提基礎,利用領域內的本體庫分析Web網頁中包含的實體內容,在此基礎上依據網頁抓取規則確立相應的知識抽取方法,不僅能提高知識圖譜的檢索效率,而且還能保證檢索結果的精確性。本文在構建領域內本體庫時使用到了WordNet技術,WordNet是一種基于英語的詞匯語義網絡系統,可以把英語單詞進行分類(如名詞、動詞等),然后將詞義相同或相似的詞語組成集合,并在各個集合之間建立同義、近義、反義等關系[1]。本文基于WordNet構建的領域內本體庫由基礎數據分析和WordNet節選2部分構成,整體框架如圖1所示。
1.2" 基礎數據分析
本體庫中基礎數據分析模塊的主要功能是在WordNet中確定本體的選擇范圍,并分析基礎論文數據,進而生成基礎概念集合。根據實現方式的不同又可分為以下3部分:①分詞。對集合中包含的基礎論文數據進行分詞處理,在保留所有概念的同時還能篩除無關的單詞,達到“數據瘦身”的效果,對縮短知識檢索時間、提高知識抽取效率有積極幫助。②詞頻統計。由于每個單詞在文獻中所處的位置不同,相應的每個單詞的權值也有較大的差異。例如標題中的單詞權值較高,正文中的單詞權值相對較低。在賦值以后統計每個單詞或詞組在文獻中出現的頻率,并按照由高到低的順序進行排序。③單詞篩選。在英語詞匯中有許多出現頻次較高但是沒有實際意義的單詞,如“is”“the”等,需要將其過濾掉[2]。
1.3" WordNet節選
本體庫中WordNet節選模塊的功能是在完成基礎數據分析后劃定節選范圍,進而使用WordNet技術從特定范圍內選出本體,將本體的語義關系重新組織得到領域內本體庫。WordNet節選又包含了WordNet檢索。利用WordNet提供的接口,在節選范圍內檢索所有符合要求的單詞。將這些單詞按照詞性、語義關系進行分類,對分類后的單詞依次做統計分析和優化處理(如實體對齊、過濾等)。利用WordNet分析單詞的語義關系,建立起實體關系,得到相應的本體庫。
2" 基于本體庫的實體數據抽取技術
2.1" 實體表示
本文中所述的實體數據是指可用于機器學習的文獻、作者、期刊、會議及概念等數據。實體數據的組成如圖2所示。
由圖2可知,本體庫中包含的實體數據有4種基本類型,每個類型又進行了細分,例如“作者”這一實體中包含了作者的姓名、所在單位及個人信息、研究方向等。
2.2" 實體之間的語義關系
不同類型的實體之間存在交叉應用關系。如果選取“作者”作為語義中心,作者與機構存在一對一的關系,即每一名作者只能屬于一家機構;作者與文獻存在一對多的關系,即每一名作者可能發表多篇文獻;作者與研究方向存在一對多的關系,每一名作者可以有多個研究方向。同樣地,以“文獻”“期刊”等實體作為語義中心,也能構建起不同實體之間的語義關系。這里以“期刊”為例,期刊與機構、文獻、審稿人、研究方向4個實體之間的語義關系如圖3所示。
2.3" 基于RDF的實體描述
為了更加準確地表述每個本體的核心信息,本文使用資源描述框架(RDF)描述本體。實體的核心信息包括標題、作者、時間、關鍵詞及摘要等。基于RDF的實體描述有2個優點:其一是能夠列舉實體的詳細信息,可以一目了然地掌握某個實體包含的具體內容;其二是具有良好的可擴展性能,對實體屬性是否相同不做特殊要求。基于RDF的實體描述如下。
lt;rdf:RDFgt;
lt;rdf:Description ID=\"#001\"gt;
lt;類別gt;文獻lt;/類別gt;
lt;標題gt;Genctic Algorithms and Machine Learninglt;/標題gt;
lt;作者gt;David E. Goldberg, John H. Hollandlt;/作者gt;
lt;時間gt;October 2003lt;/時間gt;
lt;關鍵詞gt;Machine Learning, Algorithmslt;/關鍵詞gt;
lt;/rdf:Descriptiongt;
lt;rdf:RDFgt;
2.4" 實體信息挖掘
本文從ACM、SCI等論文網站檢索了與“機器學習”相關的16 000篇文獻,任意一篇文獻中均包含了標題、作者、期刊、摘要、關鍵詞、正文及引用文獻等內容。使用爬蟲技術建立網點在“機器學習”分類下的網頁庫,利用本體庫判斷抓取的網頁是否在該領域內[3]。對于屬于該領域的網頁,提取網頁中包含本體的相關內容,實體信息的抽取流程如圖4所示。
在實體信息抽取過程中,本體庫的作用是判斷通過爬蟲技術抓取的網頁是否在領域內。對于不屬于領域內的網頁要過濾、刪除,從而達到減輕工作量的目的。另外,本體庫還能對網頁中的數據信息做進一步的處理,清理掉網頁中的冗余信息,只保留含有實體內容的有效信息,從這些信息中進一步抽取出有價值的實體數據。結合圖4流程可知,實體信息抽取的關鍵步驟有2個。
1)判斷網頁是否在領域內。本文所用數據來源于論文網站,網頁中包含的關鍵信息主要有3類,分別是標題、關鍵字、摘要,權值比例為4∶4∶2。從3類關鍵信息中提取出單詞,并建立單詞列表。從列表中的第1個單詞開始,尋找本體庫中與之相近或相似的單詞,并計算這些單詞的權值;按照同樣的方法依次計算列表中其他單詞的權值,通過求和公式計算出該網頁的相關度值[4]。公式如下
式中:F(p)表示網頁的相關度值;i表示單詞列表中的第i個單詞;di表示第i個單詞的權值;λi和ti分別為本體庫中相近詞或相似詞的權值。
2)劃分網頁內容。對于在領域內的網頁,還要對網頁內容進行劃分,然后從各個部分中提取出與實體相關的重要信息。考慮到不同網站的界面風格、描述內容等存在較為明顯的差異,為了能夠快速、準確地進行內容劃分,本文提出了一種基于標簽的網頁劃分與數據抽取方法,利用特定的標簽將網頁劃分成若干個模塊,然后從各個模塊中找出對于實體來說比較重要的數據。
3" 基于Neo4j的圖譜搭建技術
3.1" 基于Neo4j搭建的圖譜框架
Neo4j作為一種NOSQL型數據庫,可以與任意領域模型之間建立起映射關系,數據連接速度比普通的關系型數據庫(如MySQL數據庫)快數百倍甚至上千倍。本文在搭建知識圖譜過程中使用了Neo4j數據庫用于存儲知識。同時,結合Neo4j數據庫的特點開發了基于Python的數據操作引擎,為實現數據的存儲、檢索、抽取、分析等各種操作提供了便利[5]。基于Neo4j搭建的知識圖譜框架如圖5所示。
知識圖譜引擎除了用于構建知識圖譜外,還能提供數據更新、數據檢索、數據分析等功能服務。
3.2" 知識圖譜的數據更新
基于知識圖譜引擎的數據更新操作由以下4部分構成。
3.2.1插入新的節點
根據節點插入方式的不同,又可分為單節點插入、多節點批量插入2種基本方式。前者是選定數據后直接插入到Neo4j提供的圖譜數據存儲框架內,需要注意的是插入的數據必須是Neo4j支持的JSON格式數據;后者是選定文件,然后將文件中包含的數據批量插入存儲框架中。除了上述2種主流的節點插入方式外,還可以選擇從其他數據庫中導入數據,實現方式與批量插入相似,區別在于將數據來源從文件變為其他數據庫。
3.2.2" 修改節點屬性
可以根據需要增加或刪除節點的某一條屬性,或者是對節點標簽與屬性值進行修改。以修改節點屬性為例,其實現代碼為
Define add Property(node NID,key,value);
Global GRAPH
Connect()
node=get Node By NID(node NID)
node.properties[key]=value
node.push()
3.2.3" 插入新的關系
支持單條插入和批量插入新的關系,如果任意2個節點之間具有映射關系,也可以自動建立新的關系。
3.2.4" 刪除節點或刪除關系
可以選擇某個節點或某條關系刪除,也可以將所有節點或所有關系刪除。
3.3" 知識圖譜的數據檢索
基于知識圖譜引擎的數據更新操作由以下2部分構成。
3.3.1" 數據檢索
根據檢索對象的不同,又可分為節點信息檢索、關鍵詞檢索等。以節點信息為例,包括節點個數、節點標簽、節點屬性等。
3.3.2" 數據分析
對于檢索到的目標數據展開分析,具體分析內容包括相關節點分析、最短路徑分析等。這里以尋找最短路徑為例。其實現代碼為
Query string=\"STRAT beginning=node(%d),end=node(%d)
result=GRAPH.cypher.execute(query string)
for res in result:
for relationship in res.p.relationships:
end Node=relationship.end node
start Node=relationship.start node
one path.append(rel)
One path.append(str end NID)
return path
4" 結束語
在構建知識圖譜時,除了要了解實體的組成信息、尋找實體之間的關系,還要利用本體庫技術判斷抓取的網頁是否在領域內,只有在領域內的網頁才包含有價值的實體信息。采用添加標簽的方式將網頁分類,然后分類提取實體信息,并存儲到Neo4j數據庫中。通過搜索引擎從數據庫中挑選符合要求的實體信息并進行匯總、分析,可以向用戶精準推薦信息,進而滿足用戶的信息獲取需求。
參考文獻:
[1] 郭恒,黎榮,張海柱.多域融合的高速列車維修性設計知識圖譜構建[J].中國機械工程,2022(24):9-11.
[2] 王雅琳,鄒江楓,王凱.基于本體引導的注塑知識圖譜構建及缺陷溯因應用[J].電子與信息學報,2022(5):44-46.
[3] 邱凌,張安思,張羽.面向無人機故障診斷的知識圖譜構建應用方法[J].計算機工程與應用,2023(9):415-416.
[4] 唐思宇,李賽飛,張麗杰.基于Neo4j的網絡安全知識圖譜構建分析[J].信息安全與通信保密,2022(8):100-102.
[5] 楊望,曾娟,王玉梅.基于MAEC本體的惡意軟件知識抽取方法的構建[J].通信技術,2022(3):55-56.