構建知識圖譜-初學 - IT人
文章推薦指數: 80 %
本文內容源自medium文章A Knowledge Graph understanding and implementation tutorial for beginners[1]目錄什麼是知識圖譜?如何搭建一個簡單的知識 ...
Togglenavigation
IT人
IT人
構建知識圖譜-初學
周若梣發表於
2020-05-18
本文內容源自medium文章
AKnowledgeGraphunderstandingandimplementationtutorialforbeginners[1]
目錄什麼是知識圖譜?如何搭建一個簡單的知識圖譜?
什麼是知識圖譜?
知識圖譜的內容通常以三元組形式存在,Subject-Predicate-Object(spo)。
舉個例子:
LeonardNimoywasanactorwhoplayedthecharacterSpockinthescience-fictionmovieStarTrek
對上面的句子可以抽取到如下三元組:
以知識圖譜形式可以表示為:
上述由節點和關係組成的圖,就是一個簡單的知識圖譜。
如何搭建一個簡單的知識圖譜?
可以分為以下兩大步驟:
知識提取
資訊抽取,獲取三元組
實體識別、實體連結、實體消歧(Disambiguation)、實體統一(EntityResolution)
圖構建
儲存
查詢
知識提取步驟是構建知識圖譜的關鍵,三元組可以通過依存分析得到。
動手構建一個簡單知識圖譜
此處只顯示程式碼執行過程與結果,完整程式碼請見github.
1.三元組提取
藉助spacy
inputText='Startupcompaniescreatejobsandinnovation.BillGatessupportsentrepreneurship.'
#Step1:KnowledgeExtraction.Output:SOPtriples
knowledgeExtractionObj=KnowledgeExtraction()
sop_list=knowledgeExtractionObj.retrieveKnowledge(inputText)
#list_sop=sop_list.as_doc()
sop_list_strings=[]
forsopinsop_list:
temp=[]
temp.append(sop[0].text)
temp.append(sop[1].text)
temp.append(sop[2].text)
sop_list_strings.append(temp)
print(sop_list_strings)
結果
2.實體連結
#Step2:Entityrecognitionandlinking.Thisstepneedstobelinked.
entityRecognitionLinkingObj=EntityRecognitionLinking()
entityRelJson=entityRecognitionLinkingObj.entityRecogLink(inputText)
entityLinkTriples=[]
forsopinsop_list_strings:
tempTriple=['','','']
forresourceinentityRelJson['Resources']:
ifresource['@surfaceForm']==sop[0]:
tempTriple[0]=resource['@URI']
ifresource['@surfaceForm']==sop[1]:
tempTriple[1]=resource['@URI']
ifresource['@surfaceForm']==sop[2]:
tempTriple[2]=resource['@URI']
entityLinkTriples.append(tempTriple)
print(entityLinkTriples)
結果
3.圖構建
使用neo4j
#Step3:KnowledgeGraphcreation.
graphPopulationObj=GraphPopulation()
graphPopulationObj=graphPopulationObj.popGraph(
sop_list_strings,entityLinkTriples)
最終得到圖如下:
可能遇到的問題
Q1
AuthError:Theclientisunauthorizedduetoauthenticationfailure.
解決辦法:
確保圖資料庫配置時密碼一致與設定的一致(以下配置表示,user:neo4j,password:neo4j)
config.DATABASE_URL='bolt://neo4j:[email protected]:7687'#default
Q2
ServiceUnavailable:Failedtoestablishconnectionto('127.0.0.1',7687)(reason[WinError10061]由於目標計算機積極拒絕,無法連線。
)
解決辦法:
確保在執行圖建立程式碼前已經開啟neo4j
有問題歡迎留言,一起交流
[1]https://medium.com/analytics-vidhya/a-knowledge-graph-implementation-tutorial-for-beginners-3c53e8802377
[2]https://github.com/kramankishore/Knowledge-Graph-Intro
[3]https://neomodel.readthedocs.io/en/latest/getting_started.html#connecting
[4]https://www.analyticsvidhya.com/blog/2019/10/how-to-build-knowledge-graph-text-using-spacy/
相關文章
Python初學者手冊(14)
2020-10-26
Python
DNS域名解析學習瞭解作用以及如何配置內附案例可跟做適合初學者
2020-10-27
高效解決Failedtoopenzipfile.Gradle‘sdependencycachemaybecorrupt(Android初學者遇到的問題—gradle的地址配置與安裝)
2020-11-01
人工智慧AndroidGradle
Vue初學
2020-11-02
Vue
初學Go語言變數
2020-11-03
Go
初學者css每日總結
2020-11-04
CSS
初學者疑惑:C語言中,函式反覆呼叫會有什麼問題?
2020-11-05
藍海創意雲丨Houdini15迷你破碎教程——一個讓初學者很有成就感的小教程
2020-11-06
類UNIX作業系統家族發展時間線圖譜(1969-2020)
2020-11-08
2020年資料與人工智慧行業圖譜
2020-11-08
人工智慧
【自用】彙編初學筆記#1
2020-11-10
正規表示式(初學)
2020-11-11
初學docker部署springboot專案
2020-11-17
DockerSpring
c語言初學者氣泡排序
2020-11-17
告軟體測試初學者:入門需掌握的知識點
2020-11-19
初學計算機語言者(C語言,C++,java,pytion,C#)
2020-11-21
JavaC++C#
沒有黑眼圈的小浣熊初學Java基礎的筆記(一)
2020-11-21
Java
網路程式設計初學
2020-11-21
初學vue遇到importedmultipletimesimport/no-duplicates問題
2020-11-22
Vue
最新文章
FlexJobs:遠端工作調查
[HackerNews週報]效能持續分析工具;資料庫必須知道的那些事;Spark與K8s整合新動向
H5實現生成urlscheme並從H5跳轉到小程式
視覺化基礎:已知2點座標,如何求旋轉角度?
Golang仿雲盤專案-2.2檔案查詢資訊介面
通用查詢的抽象
【ASP.NETCore】自定義的配置源
程式分析與優化-10指令級並行
智慧指標思想實踐(std::unique_ptr,std::shared_ptr)
一文深入淺出學習Spring框架系列,強烈推薦
.NET自定義認證雖然簡單,但好用
ReentrantLock公平鎖原始碼第2篇
延伸文章資訊
- 1未來不再需要搜尋引擎?知識圖譜幫你從數據庫中找到「你不 ...
對此,竹間智能打造的Gemini知識工程平台中,引入了數據轉化工具、數據倉庫、圖譜文本抽取、知識建模本體Ontology、圖譜視覺化搜尋與圖算法分析,匯總呈現 ...
- 2知識圖譜與機器學習|KG入門-- Part2 建立知識圖譜 - sa123
來源| Medium. 【磐創AI導讀】:本系列文章為大家介紹了知識圖譜與機器學習。在能夠開發Data Fabric之前,我們需要構建一個知識圖譜。在本文中,我將建立如何建立它的 ...
- 3知識~ 進得去(整理SOP、FAQ) | 台灣數位xms+
人才,是公司的關鍵,因為有經驗,可以解決問題! 知識管理,目的就是將這些珍貴的經驗記錄,變成具體、可隨時取得的重要資訊。
- 4知識圖譜與聊天機器人 - Medium
- 5構建知識圖譜-初學 - IT人
本文內容源自medium文章A Knowledge Graph understanding and implementation tutorial for beginners[1]目錄什麼是知識...