<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【關(guān)于 KBQA】 那些你不知道的事

          共 12201字,需瀏覽 25分鐘

           ·

          2022-07-11 09:13

          作者:楊夕

          介紹:本項目是作者們根據(jù)個人面試和經(jīng)驗(yàn)總結(jié)出的自然語言處理(NLP)面試準(zhǔn)備的學(xué)習(xí)筆記與資料,該資料目前包含 自然語言處理各領(lǐng)域的 面試題積累。

          NLP 百面百搭 地址:https://github.com/km1994/NLP-Interview-Notes

          推薦系統(tǒng) 百面百搭 地址:https://github.com/km1994/RES-Interview-Notes

          搜索引擎 百面百搭 地址:https://github.com/km1994/search-engine-Interview-Notes 【編寫ing】

          NLP論文學(xué)習(xí)筆記:https://github.com/km1994/nlp_paper_study

          推薦系統(tǒng)論文學(xué)習(xí)筆記:https://github.com/km1994/RS_paper_study

          GCN 論文學(xué)習(xí)筆記:https://github.com/km1994/GCN_study

          推廣搜 軍火庫:https://github.com/km1994/recommendation_advertisement_search

          【注:手機(jī)閱讀可能圖片打不開?。?!】

          一、基于詞典和規(guī)則的方法


          1.1 介紹


          1.1.1 開源知識圖譜

          工業(yè)界的知識圖譜有兩種分類方式,第一種是根據(jù)領(lǐng)域的覆蓋范圍不同分為通用知識圖譜和領(lǐng)域知識圖譜。其中通用知識圖譜注重知識廣度,領(lǐng)域知識圖譜注重知識深度。通用知識圖譜常常覆蓋生活中的各個領(lǐng)域,從衣食住行到專業(yè)知識都會涉及,但是在每個領(lǐng)域內(nèi)部的知識體系構(gòu)建不是很完善;而領(lǐng)域知識圖譜則是專注于某個領(lǐng)域(金融、司法等),結(jié)合領(lǐng)域需求與規(guī)范構(gòu)建合適的知識結(jié)構(gòu)以便進(jìn)行領(lǐng)域內(nèi)精細(xì)化的知識存儲和問答。代表的知識圖譜分別有:

          • 通用知識圖譜

            • Google Knowledge Graph

            • Microsoft Satori & Probase

          • 領(lǐng)域知識圖譜

            • Facebook 社交知識圖譜

            • Amazon 商品知識圖譜

            • 阿里巴巴商品知識圖譜

            • 上海交大學(xué)術(shù)知識圖譜

          第二種分類方式是按照回答問題需要的知識類別來定義的,分為常識知識圖譜和百科全書知識圖譜。針對常識性知識圖譜,我們只會挖掘問題中的詞之間的語義關(guān)系,一般而言比較關(guān)注的關(guān)系包括 isA Relation、isPropertyOf Relation,問題的答案可能根據(jù)情景不同而有不同,所以回答正確與否往往存在概率問題。而針對百科全書知識圖譜,我們往往會定義很多謂詞,例如DayOfbirth, LocatedIn, SpouseOf 等等。這些問題即使有多個答案,這些答案往往也都是確定的,所以構(gòu)建這種圖譜在做問答時最優(yōu)先考慮的就是準(zhǔn)確率。代表的知識圖譜分別有:

          • 常識知識圖譜

            • WordNet, KnowItAll, NELL, Microsoft Concept Graph

          • 百科全書知識圖譜

            • Freebase, Yago, Google Knowledge Graph

          1.1.2 代表項目

          1. 豆瓣影評問答

          2. 基于醫(yī)療知識圖譜的問答系統(tǒng)

          1.2 流程

          1.2.1. 句子輸入

            - eg:query:高血壓要怎么治?需要多少天?

          1.2.2. 問句解析

          • 實(shí)體抽取:

            • 舉例說明:

            • 作用:得到匹配的詞和類型

            • 方法:

              • 模式匹配:

                • 介紹:主要采用規(guī)則 提槽

                • 工具:正則表達(dá)式

              • 詞典:

                • 介紹:利用詞典進(jìn)行匹配

                • 采用的詞典匹配方法:trie和Aho-Corasick自動機(jī),簡稱AC自動機(jī)

                • 工具:ahocorasick、FlashText 等 python包

              • 基于詞向量的文本相似度計算:

                • 介紹:計算 query 中 實(shí)體 與 實(shí)體庫 中候選實(shí)體的相似度,通過設(shè)定閾值,得到最相似的 實(shí)體

                • 工具:詞向量工具(TF-idf、word2vec、Bert 等)、相似度計算方法(余弦相似度、L1、L2等)

              • 命名實(shí)體識別方法:

                • 利用 命名實(shí)體識別方法 識別 query 中實(shí)體

                • 方法:BiLSTM-CRF等命名實(shí)體識別模型


            eg:通過解析 上面的 query ,獲取里面的實(shí)體和實(shí)體類型:{'Disease': ['高血壓'], 'Symptom': ['高血壓'], 'Complication': ['高血壓']}
          • 屬性和關(guān)系抽?。?/p>

            • 作用:抽取 query 中 的 屬性和關(guān)系

            • 方法:

              • 模式匹配:

                • 介紹:主要采用規(guī)則匹配

                • 工具:正則表達(dá)式

              • 詞典:

                • 介紹:利用詞典進(jìn)行匹配

                • 采用的詞典匹配方法:trie和Aho-Corasick自動機(jī),簡稱AC自動機(jī)

                • 工具:ahocorasick、FlashText 等 python包

              • 意圖識別方法:

                • 介紹:采用分類模型 對 query 所含關(guān)系 做預(yù)測

                • 工具:

                  • 機(jī)器學(xué)習(xí)方法:LR、SVM、NB

                  • 深度學(xué)習(xí)方法:TextCNN、TextRNN、Bert 等

              • 命名實(shí)體識別方法:【同樣,可以采用命名實(shí)體識別挖掘出 query 中的某些動詞和所屬類型】

                • 利用 命名實(shí)體識別方法 識別 query 中實(shí)體

                • 方法:BiLSTM-CRF等命名實(shí)體識別模型

            • 舉例說明:


          - eg:通過解析 上面的 query ,獲取里面的實(shí)體和實(shí)體類型:
          - predicted intentions:['query_period'] 高血壓要怎么治?
          - word intentions:['query_cureway'] 需要多少天?


          1.2.3. 查詢語句生成

          • 作用:根據(jù) 【問句解析】 的結(jié)果,將 實(shí)體、屬性和關(guān)系轉(zhuǎn)化為對于的 圖數(shù)據(jù)庫(eg:Neo4j圖數(shù)據(jù)庫等)查詢語句

          • 舉例說明:


          - eg:
          對于 query:高血壓要怎么治?需要多少天?
          - sql 解析結(jié)果:
          [{'intention': 'query_period', 'sql': ["MATCH (d:Disease) WHERE d.name='高血壓' return d.name,d.period"]}, {'intention': 'query_cureway', 'sql': ["MATCH (d:Disease)-[:HAS_DRUG]->(n) WHERE d.name='高血壓' return d.name,d.treatment,n.name"]}]

          1.2.4. 查詢數(shù)據(jù)庫和結(jié)果生成

          • 作用:利用 【查詢語句生成】 的結(jié)果,去 圖數(shù)據(jù)庫 中 查詢 答案,并利用預(yù)設(shè)模板 生成答案

          - eg:
          - 高血壓可以嘗試如下治療:藥物治療;手術(shù)治療;支持性治療

          二、基于信息抽取的方法

          2.1 介紹

          2.1.1 開源知識圖譜介紹

          • Knowledge Based Question Answering

          • CCKS開放域知識圖譜問答比賽數(shù)據(jù)集

            • 介紹:

              • 問題類型:簡單問題:復(fù)雜問題(多跳推理問題)=1:1

              • 訓(xùn)練集:2298

              • 驗(yàn)證集:766

              • 測試集:766

              • 資源地址:知識庫 密碼(huc8),問答集

              • 方案:ccks2019-ckbqa-4th-codes、CCKS2018 CKBQA 1st 方案、中文知識圖譜問答 CCKS2019 CKBQA - 參賽總結(jié)

          • NLPCC開放域知識圖譜問答比賽數(shù)據(jù)集

            • 介紹:

              • 問題類型:簡單問題(單跳問題)

              • 訓(xùn)練集:14609

              • 驗(yàn)證集 + 測試集:9870

              • 資源地址:知識庫,問答集

            • 方案:NLPCC2016 KBQA 1st 方案


          2.1.2 評測標(biāo)準(zhǔn)

          • Mean Reciprocal Rank (MRR)


            • |Q|代表問題總數(shù),rank_i代表第一個正確的答案在答案集合C_i中的位置

            • 如果C_i中沒有正確答案,

          • Accuracy@N


            • 當(dāng)答案集合C_i中至少有一個出現(xiàn)在gold answerA_i中,


            • ,否則為0

          • Averaged F1


            • F_i是Q_i問題產(chǎn)生答案的F1值,如果A_i和C_i無交集F1為0


          2.2 流程


          2.2.1. 分類單跳和多跳問句

          • 思路:利用 文本分類方法 對 query 進(jìn)行分類,判斷其屬于 一跳問題還是多跳問題

          • 方法:文本分類方法【TextCNN、TextRNN、Bert 等】

          • 解析

          單跳:SPARQL 只出現(xiàn)一個三元組


              q26:豌豆公主這個形象出自于哪?
          select ?x where { <豌豆公主_(安徒生童話)> <作品出處> ?x. }
          <安徒生童話>

          雙跳或多跳:SPARQL 只出現(xiàn)兩個以上三元組


              q524:博爾赫斯的國家首都在哪里?
          select ?x where { <豪爾赫·路易斯·博爾赫斯_(阿根廷作家)> <出生地> ?y. ?y <首都> ?x}
          <布宜諾斯艾利斯_(阿根廷的首都和最大城市)>


          2.2.2. 分類鏈?zhǔn)絾柧洌ǘ诸悾?/h4>
          • 思路:利用 文本分類方法 對 query 進(jìn)行分類,判斷其是否 屬于 鏈?zhǔn)絾柧?/p>

          • 介紹:鏈?zhǔn)剑篠PARQL 多個三元組呈遞進(jìn)關(guān)系,x->y->z,非交集關(guān)系


              q894:納蘭性德的父親擔(dān)任過什么官職?
          select ?y where { <納蘭性德> <父親> ?x. ?x <主要職位> ?y. }
          "武英殿大學(xué)士" "太子太傅"
          q554:宗馥莉任董事長的公司的公司口號是?
          select ?y where { ?x <董事長> <宗馥莉>. ?x <公司口號> ?y. }
          "win happy health,娃哈哈就在你身邊"


          2.2.3. 主謂賓分類(三分類)

          • 思路:利用 文本分類方法 對 query 進(jìn)行分類,判斷 問句的答案對應(yīng)三元組里面的 主謂賓

          • 問句的答案對應(yīng)三元組里面的主語,spo=0


              q70:《悼李夫人賦》是誰的作品?
          select ?x where { ?x <代表作品> <悼李夫人賦>. }
          <漢武帝_(漢朝皇帝)>
          • 問句的答案對應(yīng)三元組里面的謂語,spo=1


              q506:林徽因和梁思成是什么關(guān)系?
          select ?x where { <林徽因_(中國建筑師、詩人、作家)> ?x <梁思成>. }
          <丈夫>
          • 問句的答案對應(yīng)三元組里面的賓語,spo=2


              q458:天津大學(xué)的現(xiàn)任校長是誰?
          select ?x where { <天津大學(xué)> <現(xiàn)任校長> ?x . }
          <李家俊_(天津市委委員,天津大學(xué)校長)>


          2.2.4. 實(shí)體提及(mention)識別

          • 思路:對于 給定 query,我們需要 識別出 query 中 所含有的 實(shí)體提及(mention)

          • 問題:主辦方提供的數(shù)據(jù)中 包含 :query、sql語句,但是 sql語句中的實(shí)體并不能在 query 中被找到,如下:


              q1440:濟(jì)南是哪個省的省會城市?
          select ?x where { ?x <政府駐地> <濟(jì)南_(山東省省會)>. }
          <山東_(中國山東?。?gt;

          注:query 中 的 濟(jì)南 是 <濟(jì)南_(山東省省會)>的 簡稱、省會城市 在 知識庫中 對應(yīng) <政府駐地>

          • 解決方法:根據(jù)訓(xùn)練語料的SPARQL語句,查找實(shí)體的提及,反向構(gòu)建訓(xùn)練數(shù)據(jù)

          • 思路 1:神經(jīng)網(wǎng)絡(luò)

            • 訓(xùn)練語料構(gòu)建

              • 思路 1

                • 根據(jù) query 和 sql,查詢 實(shí)體提及 【常用做法: 尋找 query 和 sql 中 entity 的最長子串作為 query 實(shí)體提及】

                • 反向構(gòu)建訓(xùn)練數(shù)據(jù)

              • 思路 2

                • 實(shí)體鏈接詞典:實(shí)體鏈接詞典為文本中的實(shí)體提及到知識庫實(shí)體的映射【由CCKS2019 CKBQA主辦方提供】

                • 反向構(gòu)建訓(xùn)練數(shù)據(jù)

            • 命名實(shí)體識別:訓(xùn)練 命名實(shí)體識別模型 抽取 未標(biāo)注數(shù)據(jù) 中 實(shí)體信息

              • 方法:BiLSTM-CRF、Bert-CRF 等


              q6:叔本華信仰什么宗教?
          select ?y where { <亞瑟·叔本華> <信仰> ?y. }
          <佛教>

          >>>
          叔本華信仰什么宗教? ['叔本華']
          亞瑟·叔本華信仰什么宗教? ['亞瑟·叔本華']

          >>>
          叔 本 華 信 仰 什 么 宗 教 ? B-SEG I-SEG E-SEG O O O O O O O
          亞 瑟 · 叔 本 華 信 仰 什 么 宗 教 ? B-SEG I-SEG I-SEG I-SEG I-SEG E-SEG O O O O O O O
          • 思路 2:規(guī)則

            • 自定義字典(分詞,詞頻,倒排索引)識別

              • 分詞詞典:將 語料中的實(shí)體信息、知識庫中的實(shí)體信息 合并后構(gòu)建成一個 jieba 分詞詞典

              • 詞頻:狗開源的中文詞頻詞典 SogouLabDic.dic 、語料中的實(shí)體信息、知識庫中的實(shí)體信息

              • 倒排索引字典:該詞典用于識別屬性值的模糊匹配,使用知識庫中所有屬性值,構(gòu)建字到詞的映射。

            • 建立停用詞表刪去無用詞

            • 分詞后的詞與知識圖譜的實(shí)體的字符串匹配(jaccord,編輯距離)

          • 輔助工具

            • NER工具包識別問句中人名,地點(diǎn),機(jī)構(gòu)等


          2.2.5. 關(guān)系分類 (語義相似度計算,二分類問題)

          • 目標(biāo):查詢實(shí)體關(guān)系中與問句最相似的關(guān)系

          • 思路:

            • 正例:根據(jù)給定 訓(xùn)練集,獲得 實(shí)體和關(guān)系 的樣本

            • 負(fù)例:根據(jù) 該實(shí)體名 從 Neo4j 圖數(shù)據(jù)庫中隨機(jī)抽取出 5個關(guān)系作為負(fù)例


              q1:莫妮卡·貝魯奇的代表作?
          select ?x where { <莫妮卡·貝魯奇> <代表作品> ?x. }
          <西西里的美麗傳說>

          >>> 表達(dá)形式一:
          正例:
          莫妮卡·貝魯奇的代表作?代表作品 1
          負(fù)例:
          莫妮卡·貝魯奇的代表作?出生地 0
          莫妮卡·貝魯奇的代表作?類型 0
          莫妮卡·貝魯奇的代表作?制片地區(qū) 0
          莫妮卡·貝魯奇的代表作?主演 0
          莫妮卡·貝魯奇的代表作?作者 0
          • 模型選擇:

            • 關(guān)系和問題的語義相似度(bert-bilstm-fc-cosine)

            • 關(guān)系值和問題的語義相似度(bert-bilstm-fc-cosine)

            • 關(guān)系和問題的字符覆蓋率

            • 關(guān)系模型1:關(guān)系識別與排序(1/2hop)

          • 關(guān)系模型2:路徑排序

            • 將鏈接到的實(shí)體和 實(shí)體的1/2跳關(guān)系 組成路徑,通過bert-similarity模型進(jìn)行訓(xùn)練

            • 路徑與問題的jaccard,編輯距離

            • 自身定義的模板匹配度...

          • 關(guān)系模型3:規(guī)則匹配排序

            • 將問題分割為多個部分,參照word/phrases in the kb + existing word segmentation tools,將問題分為各部分都和kb中實(shí)體/屬性/關(guān)系相似的部分,按分值高低與知識圖譜對應(yīng)部分進(jìn)行鏈接。

            • 將問題分為單跳,多跳類型(共8種),記錄下各自的結(jié)構(gòu),與問題中分割出的問題結(jié)構(gòu)進(jìn)行相似度比較


          2.2.6. 實(shí)體鏈指 【實(shí)體消歧】

          • 問題:對于 問句中的實(shí)體提及在 Neo4j 圖數(shù)據(jù)庫 中可能存在多個相關(guān)實(shí)體,如何選取 將 實(shí)體提及 鏈指到 對應(yīng)的 知識庫中的實(shí)體


              q15:清明節(jié)起源于哪里?
          select ?x where { <清明_(二十四節(jié)氣之一)> <起源> ?x. }
          <綿山風(fēng)景名勝區(qū)>

          >>>
          問句中 實(shí)體提及:清明
          對應(yīng)的知識庫中的 實(shí)體:<清明_(二十四節(jié)氣之一)>、清明_(漢語詞匯)、清明_(長篇小說)、清明_(唐代杜牧詩作)等
          • 目標(biāo):查找問句中實(shí)體提及對應(yīng)的唯一實(shí)體

          • 思路:

            • 在訓(xùn)練集上,令標(biāo)注的實(shí)體標(biāo)簽為1,其余候選實(shí)體標(biāo)簽為0,使用邏輯回歸對上述特征進(jìn)行擬合。

            • 在驗(yàn)證集和測試集上,使用訓(xùn)練好的機(jī)器模型對每個實(shí)體打分,保留分?jǐn)?shù)排名前n的候選實(shí)體。

          • 特征選擇:

          1. 問題和實(shí)體提及間 特征 mention_features

            1. 該詞典用于計算實(shí)體提及和屬性值提及的詞頻特征,使用搜狗開源的中文詞頻詞典 SogouLabDic.dic 構(gòu)建;

            2. 實(shí)體提及的長度:該實(shí)體對應(yīng)的實(shí)體提及的字?jǐn)?shù);

            3. 實(shí)體提及的詞頻:該實(shí)體對應(yīng)的實(shí)體提及的詞頻;

            4. 實(shí)體提及的位置:該實(shí)體對應(yīng)的實(shí)體提及距離句首的距離;

            5. 實(shí)體類型與問題的匹配度


              # 獲取 mention 的特征 mention_features : [mention, f1, f2, f3]
          # f1 : mention的長度
          # f2 : mention 在 SogouLabDic.dic 中 的詞頻
          # f3 : mention 在 question 中 的位置
          def get_mention_feature(self,question,mention):
          f1 = float(len(mention)) #mention的長度
          try:
          f2 = float(self.word_2_frequency[mention]) # mention的tf/10000
          except:
          f2 = 1.0
          if mention[-2:] == '大學(xué)':
          f2 = 1.0
          try:
          f3 = float(question.index(mention))
          except:
          f3 = 3.0
          #print ('這個mention無法提取位置')
          return [mention,f1,f2,f3]
          1. 圖譜子圖與問題的匹配度:計算問題和主語實(shí)體及其兩跳內(nèi)關(guān)系間的相似度

            1. 實(shí)體提及及兩跳內(nèi)關(guān)系和實(shí)體與問題重疊詞數(shù)量

            2. 實(shí)體提及及兩跳內(nèi)關(guān)系和實(shí)體與問題重疊字?jǐn)?shù)量


              # similar_features : [overlap,jaccard] * {(q_tokens,e_tokens), (q_chars,e_chars), (q_tokens,p_tokens), (q_chars,p_chars)} = 8

          def extract_subject(self,entity_mentions,subject_props,question):
          ...
          #得到實(shí)體兩跳內(nèi)的所有關(guān)系
          entity = '<'+entity+'>'
          if entity in self.entity2hop_dic:
          relations = self.entity2hop_dic[entity]
          else:
          relations = kb.GetRelations_2hop(entity)
          self.entity2hop_dic[entity] = relations
          # 計算問題和主語實(shí)體及其兩跳內(nèi)關(guān)系間的相似度
          similar_features = ComputeEntityFeatures(question,entity,relations)
          ...

          def ComputeEntityFeatures(question,entity,relations):
          '''
          抽取每個實(shí)體或?qū)傩灾?hop內(nèi)的所有關(guān)系,來跟問題計算各種相似度特征
          input:
          question: python-str
          entity: python-str <entityname>
          relations: python-dic key:<rname>
          output:
          [word_overlap,char_overlap,word_embedding_similarity,char_overlap_ratio]
          '''
          #得到主語-謂詞的tokens及chars
          p_tokens = []
          for p in relations:
          p_tokens.extend(segger.cut(p[1:-1]))
          p_tokens = [token[0] for token in p_tokens]
          p_chars = [char for char in ''.join(p_tokens)]

          q_tokens = segger.cut(question)
          q_tokens = [token[0] for token in q_tokens]
          q_chars = [char for char in question]

          e_tokens = segger.cut(entity[1:-1])
          e_tokens = [token[0] for token in e_tokens]
          e_chars = [char for char in entity[1:-1]]

          qe_feature = features_from_two_sequences(q_tokens,e_tokens) + features_from_two_sequences(q_chars,e_chars)
          qr_feature = features_from_two_sequences(q_tokens,p_tokens) + features_from_two_sequences(q_chars,p_chars)
          #實(shí)體名和問題的overlap除以實(shí)體名長度的比例
          return qe_feature+qr_feature


          def features_from_two_sequences(s1,s2):
          #overlap
          overlap = len(set(s1)&(set(s2)))
          #集合距離
          jaccard = len(set(s1)&(set(s2))) / len(set(s1)|(set(s2)))
          #詞向量相似度
          #wordvecsim = model.similarity(''.join(s1),''.join(s2))
          return [overlap,jaccard]
          1. 實(shí)體提及的流行度特征

            1. 實(shí)體提及在圖譜中關(guān)系個數(shù)/出現(xiàn)頻率


              # popular_feature : GetRelationNum = 1 實(shí)體的流行度特征
          def extract_subject(self,entity_mentions,subject_props,question):
          ...
          #實(shí)體的流行度特征
          popular_feature = kb.GetRelationNum(entity)
          ...


          def GetRelationNum(self,entity):
          '''根據(jù)實(shí)體名,得到與之相連的關(guān)系數(shù)量,代表實(shí)體在知識庫中的流行度'''
          cql= "match p=(a:Entity)-[r1:Relation]-() where a.name=$name return count(p)"
          res = self.session.run(cql,name=entity)
          ans = 0
          for record in res:
          ans = record.values()[0]
          return ans
          1. 實(shí)體名稱和問題的字符串匹配度(char/word)

          2. 問題和實(shí)體提及語義相似度

          3. 問題和實(shí)體關(guān)系的最大相似度
            ...

          • 標(biāo)簽:是否為 對應(yīng)實(shí)體


              q15:清明節(jié)起源于哪里?
          select ?x where { <清明_(二十四節(jié)氣之一)> <起源> ?x. }
          <綿山風(fēng)景名勝區(qū)>

          >>>
          清明節(jié)起源于哪里?<清明_(二十四節(jié)氣之一)> 1.0 1.0 0.43 0.15978466 0.6 0.99257445 ... 0
          清明節(jié)起源于哪里?<清明_(漢語詞匯)> 0.9 1.0 0.43 0.97132427 0.58 0.99660385 ... 1
          清明節(jié)起源于哪里?<清明_(長篇小說)> 0.8 1.0 0.43 0.920861 0.38 0.0007164952 ... 0
          清明節(jié)起源于哪里?<清明_(唐代杜牧詩作)> 0.8 1.0 0.43 0.920861 0.38 0.0007164952 ... 0
          ...
          • 分類方法:

            • LR、SVM、xgboost 等


          2.2.7. 候選查詢路徑生成及文本匹配

          • 問題:根據(jù)前面的操作會得到 query 對應(yīng)的候選實(shí)體和關(guān)系信息,由于預(yù)訓(xùn)練模型是基于自然語言訓(xùn)練的,而將生成的候選查詢路徑是不符合自然語言邏輯的,那如何 轉(zhuǎn)化成自然語言處理能夠理解的形式,和判斷 所抽取的 實(shí)體提及 和 關(guān)系 是正確的呢?

          • 目標(biāo):判斷 所抽取的 實(shí)體提及 和 關(guān)系 是正確性

          • 方法:對于每個候選實(shí)體,抽取與其相連的單跳關(guān)系和兩跳關(guān)系作為候選的查詢路徑,形式如(entity,relation)或(entity,relation1,relation2)。

          • 思路:

            • 候選查詢路徑:將 (entity,relation) 轉(zhuǎn)化成 自然語言處理 能夠處理的 文本形式:eg :entity 的 relation

            • 文本匹配:利用 Bert 計算 query 和 entity 的 relation 的相似度

              • 思路:

                • 在訓(xùn)練集上,對于每個問題,隨機(jī)選擇三個候選查詢路徑作為負(fù)例,令標(biāo)注的候選查詢路徑標(biāo)簽為1,負(fù)例的標(biāo)簽為0,將自然語言問題和人工問題拼接,訓(xùn)練一個文本分類模型。

                • 在驗(yàn)證集和測試集上,使用該模型對所有的自然語言問題-人工問題對進(jìn)行打分。


              q15:清明節(jié)起源于哪里?
          select ?x where { <清明_(二十四節(jié)氣之一)> <起源> ?x. }
          <綿山風(fēng)景名勝區(qū)>

          >>> 實(shí)體提及 和 關(guān)系
          實(shí)體提及 <清明_(二十四節(jié)氣之一)>
          關(guān)系 起源

          >>> (entity,relation)
          (entity,relation):(<清明_(二十四節(jié)氣之一)>,起源 )

          >>> 候選查詢路徑:(entity,relation) => entity 的 relation
          (<清明_(二十四節(jié)氣之一)>,起源 ): 清明_(二十四節(jié)氣之一)的起源

          >>> 文本匹配:
          清明節(jié)起源于哪里?清明_(二十四節(jié)氣之一)的起源 1
          清明節(jié)起源于哪里?清明_(二十四節(jié)氣之一)的類型 0
          清明節(jié)起源于哪里?清明_(漢語詞匯)的起源地 0
          清明節(jié)起源于哪里?清明_(漢語詞匯)的類型 0


          2.2.8. 實(shí)體橋接及答案檢索

          • 動機(jī):

            • 2.2.7 節(jié) 所提方法只能處理 單實(shí)體問題,但是 樣本中 不僅 包含 單實(shí)體問題,還包含 多實(shí)體問題,那需要怎么解決呢?


              eg:北京大學(xué)出了哪些哲學(xué)家
          • 解決方法:實(shí)體橋接

          • 思路:

            • 對于每個問題,首先對2.2.7 節(jié) 打分后的候選查詢路徑進(jìn)行排序,保留前30個單關(guān)系的查詢路徑(entity1,relation1)。

            • 對于這些查詢路徑,到知識庫中進(jìn)行檢索,驗(yàn)證其是否能和其他候選實(shí)體組成多實(shí)體情況的查詢路徑(entity1,relation1,ANSWER,relation2,entity2),將其加入候選查詢路徑中。

            • 最后,本文將2.2.7 節(jié) 單實(shí)體情況排名前三的候選查詢路徑和本節(jié)得到的雙實(shí)體情況查詢路徑同時和問題計算重疊的字?jǐn)?shù),選擇重疊字?jǐn)?shù)最多的作為最終的查詢路徑,認(rèn)為其在語義和表達(dá)上最與問題相似。


          參考資料

          1. 中文知識圖譜問答 CCKS2019 CKBQA - 參賽總結(jié)

          2. ccks2019-ckbqa-4th-codes

          3. QA-Survey

          4. 中文知識圖譜問答 CCKS2019 CKBQA 參賽總結(jié)

          5. CCKS2019 測評報告


          瀏覽 102
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大鸡巴在线观看视频 | 豆花视频成人版 | 日本中文字幕有码 | 日韩在线观看视频一区二区三区 | 国产视频在线播放 |