前期研究中建立了乙個包含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 就是 基於語料庫進行語言學研究的一門學問。具體一點講,語料庫語言學是研究自然語言機讀文字 或稱 電子文字 的採集 儲存 標註 檢索 統計等方法的一門學問,其目的是通過對客觀存...