知識圖譜可以用python構(gòu)建嗎?
答案當(dāng)然是可以的。!
那么如何使用python構(gòu)建
什么是知識圖譜
從Google搜索,到聊天機(jī)器人、金融風(fēng)控、物聯(lián)網(wǎng)場景、智能醫(yī)療、自適應(yīng)教育、推薦系統(tǒng),無一不跟知識圖譜相關(guān)。它在技術(shù)領(lǐng)域的熱度也在逐年上升。
互聯(lián)網(wǎng)的終極形態(tài)是萬物的互聯(lián),而搜索的終極目標(biāo)是對萬物的直接搜索。傳統(tǒng)搜索引擎依靠網(wǎng)頁之間的超鏈接實(shí)現(xiàn)網(wǎng)頁的搜索,而語義搜索是直接對事物進(jìn)行搜索,如人物、機(jī)構(gòu)、地點(diǎn)等。這些事物可能來自文本、圖片、視頻、音頻、IoT設(shè)備等各種信息資源。而知識圖譜和語義技術(shù)提供了關(guān)于這些事物的分類、屬性和關(guān)系的描述,使得搜索引擎可以直接對事物進(jìn)行索引和搜索。
知識圖譜是由Google公司在2012年提出來的一個(gè)新的概念。從學(xué)術(shù)的角度,我們可以對知識圖譜給一個(gè)這樣的定義:“知識圖譜本質(zhì)上是語義網(wǎng)絡(luò)(Semantic Network)的知識庫”。但這有點(diǎn)抽象,所以換個(gè)角度,從實(shí)際應(yīng)用的角度出發(fā)其實(shí)可以簡單地把知識圖譜理解成多關(guān)系圖(Multi-relational Graph)。
那什么叫多關(guān)系圖呢? 學(xué)過數(shù)據(jù)結(jié)構(gòu)的都應(yīng)該知道什么是圖(Graph)。圖是由節(jié)點(diǎn)(Vertex)和邊(Edge)來構(gòu)成,但這些圖通常只包含一種類型的節(jié)點(diǎn)和邊。但相反,多關(guān)系圖一般包含多種類型的節(jié)點(diǎn)和多種類型的邊。
本項(xiàng)目利用pandas將excel中數(shù)據(jù)抽取,以三元組形式加載到neo4j數(shù)據(jù)庫中構(gòu)建相關(guān)知識圖譜。
運(yùn)行環(huán)境
基于Neo4j能夠很容易構(gòu)建知識圖譜,除了用neo4j自帶的cypher,也支持Python包py2neo創(chuàng)建節(jié)點(diǎn)和關(guān)系從而構(gòu)建知識圖譜。本項(xiàng)目是基于發(fā)票信息,將發(fā)票數(shù)據(jù)中結(jié)構(gòu)化數(shù)據(jù)抽象成三元組,分別創(chuàng)建節(jié)點(diǎn)和關(guān)系從而構(gòu)建成知識圖譜。
具體包依賴可以參考文件requirements.txt
neo4j-driver==1.6.2numpy==1.15.3pandas==0.23.4parso==0.3.1pickleshare==0.7.5pluggy==0.8.0prompt-toolkit==1.0.15py==1.7.0py2neo==3Pygments==2.2.0pytest==3.9.3python-dateutil==2.7.5wcwidth==0.1.7wincertstore==0.2xlrd==1.1.0
將所需依賴安裝到pyton中:pip install -r requirements.txt
Pandas抽取excel數(shù)據(jù)
python中pandas非常適用于數(shù)據(jù)分析與處理,可以將excel文件轉(zhuǎn)換成dataframe格式,這種格式類似于Spark中的Dataframe結(jié)構(gòu),可以用類sql的形式對數(shù)據(jù)進(jìn)行處理。
Excel數(shù)據(jù)結(jié)構(gòu)如下
通過函數(shù)data_extraction和函數(shù)relation_extrantion分別抽取構(gòu)建知識圖譜所需要的節(jié)點(diǎn)數(shù)據(jù)以及聯(lián)系數(shù)據(jù),構(gòu)建三元組。
數(shù)據(jù)提取主要采用pandas將excel數(shù)據(jù)轉(zhuǎn)換成dataframe類型
invoice_neo4j.py
建立知識圖譜所需節(jié)點(diǎn)和關(guān)系數(shù)據(jù)
DataToNeo4jClass.py
具體代碼請移步到GitHub上下載
詳細(xì)內(nèi)容請到github下載,項(xiàng)目名neo4j-python-pandas-py2neo-v3
初級會計(jì)職稱中級會計(jì)職稱經(jīng)濟(jì)師注冊會計(jì)師證券從業(yè)銀行從業(yè)會計(jì)實(shí)操統(tǒng)計(jì)師審計(jì)師高級會計(jì)師基金從業(yè)資格稅務(wù)師資產(chǎn)評估師國際內(nèi)審師ACCA/CAT價(jià)格鑒證師統(tǒng)計(jì)資格從業(yè)
一級建造師二級建造師消防工程師造價(jià)工程師土建職稱房地產(chǎn)經(jīng)紀(jì)人公路檢測工程師建筑八大員注冊建筑師二級造價(jià)師監(jiān)理工程師咨詢工程師房地產(chǎn)估價(jià)師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評價(jià)土地登記代理公路造價(jià)師公路監(jiān)理師化工工程師暖通工程師給排水工程師計(jì)量工程師
人力資源考試教師資格考試出版專業(yè)資格健康管理師導(dǎo)游考試社會工作者司法考試職稱計(jì)算機(jī)營養(yǎng)師心理咨詢師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級職稱護(hù)士資格證初級護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實(shí)踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗(yàn)技師臨床醫(yī)學(xué)理論中醫(yī)理論