日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【DBpedia Spotlight】对知识图谱DBpedia进行实体链接/抽取文本实体

發布時間:2023/12/29 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【DBpedia Spotlight】对知识图谱DBpedia进行实体链接/抽取文本实体 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

修改論文模型時需要對知識圖譜DBpedia進行實體鏈接,官方的DBpedia Spotlight就非常好用,特此記錄。
?
上次的記錄博客給師弟看了依然有疑問,更新下再寫詳細點~
之后會再寫一個從零開始構建自己的知識圖譜并通過RGCN獲取實體嵌入的博客。

?

1 Docker

由于DBpedia Spotlight需要部署到服務器中,官方使用的是Docker,這里我們需要先下載Docker。(提供一個我使用的Docker版本)

一直點默認安裝即可,不過安裝完成后可能碰到WLS2不一致的問題,官方也給出了解決方法。按照里面說的去下載Ubuntu就行。

在成功安裝完Docker后,選擇Images(鏡像),可以從里面找到ubuntu。

?
?

2 DBpedia Spotlight

DBpedia Spotlight可以把我們輸入的文本中的實體抽取出來,將其對應到知識圖譜DBpedia。官方提供了一個示例網站。

?

下面在Windows的Docker中部署DBpedia Spotlight服務:

1、在DBpedia Spotlight的github上找到對應的Docker命令行代碼,如果要抽取英文文本的實體就找英文模型代碼。英文模型代碼如下:

docker run -tid --restart unless-stopped --name dbpedia-spotlight.en --mount source=spotlight-model,target=/opt/spotlight -p 2222:80 dbpedia/dbpedia-spotlight spotlight.sh en

2、Windows打開命令行窗口(先按win+R,輸入cmd,再回車),運行剛剛的Docker命令行。

3、如果運行成功,那么Docker里會有對應的鏡像,然后點擊旁邊的RUN就可以得到對應的容器,接著再運行這個容器。

? ?

3 實體抽取

下列代碼需要先按前面的方法把Docker運行起來后才能生效。該代碼的效果和前面提到的網址功能一樣,可以將輸入的文本text里和知識圖譜DBpedia中對應的實體進行關聯。這段代碼實現的功能是,我們傳入一段文本,該函數這段文本里的DBpedia的實體。confidence是置信度,值越高提取文本里的實體越準確,但是可能實體數量也會變少,就和前面那個示例網站一樣。

import requestsDBPEDIA_SPOTLIGHT_ADDR = "http://localhost:2222/rest/annotate"def _text2entities(text, confidence):headers = {"Accept": "application/json"}data = {"text": text, "confidence": confidence}response = requests.get(url=DBPEDIA_SPOTLIGHT_ADDR, params=data, headers=headers)response = response.json()return ([f"<{x['@URI']}>" for x in response["Resources"]]if "Resources" in responseelse [])if __name__ == '__main__':print(_text2entities('My favorite star is Leonardo!', 0.5))

結果如下:

總結

以上是生活随笔為你收集整理的【DBpedia Spotlight】对知识图谱DBpedia进行实体链接/抽取文本实体的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。