使用自然語言查詢知識庫

2021-07-26 01:38:30 字數 1517 閱讀 2816

前期研究中建立了乙個包含40w條記錄的地理領域知識資料庫,但作為知識庫使用還缺乏規範性,資料庫中的資料主要格式為

知識庫多使用rdf格式儲存,使用sparql語言查詢知識,文中以「劉德華的妻子出生於**」舉例,這個問句的sparql查詢為:

select ?y where
sparql手冊:

使用自然語言查詢,必然經過自然語言處理的步驟,此處使用的技術主要是分詞、命名實體識別和句法分析,並且經過句法分析後最終得到句法分析樹,在這個基礎上進行進一步操作。

對使用者提出的自然語言問題,首先分詞,然後詞性標註,再句法分析得到句法分析樹(圖左側樹形結構)

構造查詢語義圖演算法如下。

輸入: 問句的句法分析樹 t

輸出: 問句的查詢語義圖 g

令 treenodes 表示句法分析樹中所有節點的集合

for 每個節點 node ԗ treenodes do

if node 是名詞性節點 then

呼叫函式 分析名詞性節點(node)

else

if node 是動詞性節點 then

呼叫函式 分析動詞性節點(node)

endfor

分析名詞性節點(npnode)

令 npnode 的子節點集合是 children

if children 中不包含名詞性節點 then

構造乙個節點代表 npnode 加入 g

if npnode 不是乙個命名實體 then

npnode 是乙個變數

endifelse

for 每個節點 child ԗ children do

if child 是名詞性節點 then

呼叫函式 分析名詞性節點(child)

endifend

for 在修飾性名詞節點與被修飾名詞節點之間\

引入邊 l, l 從修飾性名詞節點指向被修飾名\

詞節點。如果被修飾名詞節點不是命名實體\

而是乙個名詞性變數, 則該名詞是用來描述\

這兩個節點之間的關係

endelse

endif

分析動詞性節點(vpnode)

令 vpnode 的子節點集合是 children

for 每個節點 child ԗ children do

if child 是名詞性節點 then

呼叫函式 分析名詞性節點(child)

endifend

for在代表動詞主體的名詞性節點與代表客體的名

詞性節點之間構造一條邊

消歧,「出生於」、「籍貫」這種意思相同相近的消岐,爬取百科中的infobox的關係,建立謂詞對映。

生成rdf查詢sparql語句,參考

對文中演算法抱有懷疑,實驗後再次更新本文。

自然語言處理知識 總結

下面直接開始正文 一 自然語言處理概述 1 自然語言處理 利用計算機為工具,對書面實行或者口頭形式進行各種各樣的處理和加工的技術,是研究人與人交際中以及人與計算機交際中的演員問題的一門學科,是人工智慧的主要內容。2 自然語言處理是研究語言能力和語言應用的模型,建立計算機 演算法 框架來實現這樣的語言...

自然語言處理 nltk庫的安裝使用

nltk natural language toolkit 庫簡介 nltk是乙個開源的專案,包含 python模組,資料集和教程,用於nlp的研究和開發 nltk由steven bird和edward loper在賓夕法尼亞大學計算機和資訊科學系開發。nltk包括圖形演示和示例資料。其提供的教程解...

語料庫與語言知識庫

語料庫 corpus base 就是存放語言材料的資料庫。那麼,顧名思義,語料庫語言學 corpus linguistics 就是 基於語料庫進行語言學研究的一門學問。具體一點講,語料庫語言學是研究自然語言機讀文字 或稱 電子文字 的採集 儲存 標註 檢索 統計等方法的一門學問,其目的是通過對客觀存...