Transformers之問題對答(Question Answering)

1 引言

Transformers的環境配置非常麻煩, 盡管花了幾個小時試了各種方法, 但仍然沒有完全解決問題. 本文僅試驗了Transformers之問題對答(Question Answering), 其它功能還沒有測試. 在試驗之前, 檢查了每個模塊的安裝情況, 如下圖所示。

Transformers之問題對答(Question Answering)的圖1

問題對答是信息檢索和自然語言處理NLP中的一項任務, 也是NLP中最難處理的一項內容, 該任務要求系統正確回答以人類自然語言提出的問題。在提取性問題解答方案中,通過提供一段文字,使用模型根據上下文來預測答案在段落中的位置。這是一項非常具有挑戰性的任務.

PyTextRank---文本關鍵字(keywords)的自動取出

使用Transformers確定句子之間的相似度

SentenceTransformers庫更新V2.0.0

聯合6種Transformers預訓練模型


2 模型簡介

盡管目前Question Answering模型共有307個,但本次測試使用的模型仍然是mrm8488/bert-multi-cased-finetuned-xquadv1. 該模型由谷歌創建,并在XQuAD之類的數據上進行了微調,用于多語言(11種不同的語言)的問答任務。BERT(base-multilingual-cased) fine-tuned for multilingual Q&A. 由于數據集基于SQuAD v1.1,所以數據中沒有無法回答的問題, 以便模型可以專注于跨語言的轉移。


3 調用方法

調用方法如下:

from transformers import pipeline

# pipeline模塊是一個抽象層,提供了簡單的API來執行各種任務。

question_answering = pipeline("question-answering", 

model="mrm8488/bert-multi-cased-finetuned-xquadv1",

tokenizer="mrm8488/bert-multi-cased-finetuned-xquadv1")

# 構建問答管道

context = '''內容描述'''

question = '''所提問題'''

result = question_answering(question=question, context=context)


4 英語測試

首先對模型用英語進行測試:

內容:  '''The development of a step-path failure surface is mainly controlled by the orientation and spatial characteristics of the present major rock structure including major joints sets, shear planes and fault planes. '''

根據上面的描述,提出以下四個問題:

(1) 問題: '''What kinds of factors controlled the development of a step-path failure surface?'''

回答: orientation and spatial characteristics (0.96)

給出的這個答案非常準確, 分數0.96.  

(2) 問題: '''Please describe the major rock structure.''' 

回答: step-path failure surface is mainly controlled by the orientation and spatial characteristics (0.39)

問題使用了描述形式, 本題沒有給出正確答案, 可能的原因一方面沒有使用問句形式,另一方面問題中給出的關鍵詞太少, 分數0.39.


(3) 問題: What is rock structure?

回答: step-path failure surface (0.42)

這個問題也沒有給出正確答案, 主要原因可能是問題中給出的關鍵詞太少, 分數0.42.


(4) How many kinds of present major rock structure?

回答: major joints sets, shear planes and fault planes (0.003)

這個測試擴展了上述(3)的問題,給出了更多的關鍵詞, 同時提問的方式更加正式, 確實給出了我們想要的答案, 但奇怪的是這個分數只有0.003. 似乎這個數據集還不能很好處理復雜的句型.


5 中文測試

接下來對中文進行測試:

內容: '''Jennings于1970年首次詳細討論了巖石邊坡的階梯式分析,他使用了極限平衡方法,考慮了沿節理的剪切破壞、通過完整巖石的剪切破壞以及巖橋的拉伸破壞。'''

根據上面的描述,提出以下四個問題:

(1) 問題: 誰首次進行了巖石邊坡的階梯式分析?

回答: Jennings (0.93)

回答正確, 分數0.93.


(2) 問題: Jennings使用了什么手段進行巖石邊坡的階梯式分析?

回答: 極限平衡方法 (0.59)

回答100%正確, 但分數只有0.59, 如果把"手段"換成"工具", 分數為0.67,  這顯示出在這種場景下, "工具"更是一個相對合適的詞匯.


(3) 問題: 當Jennings進行巖石邊坡分析時,他考慮了哪些因素?

回答: 沿節理的剪切破壞 (0.49)

這個回答只給出了部分答案, 頓號后面的文字沒有給出, 這顯然不是我們所想要的, 分數為0.49. 我以為是頓號引起的短句, 所以把頓號改成了"和", 這樣就變成了一個句子, 結果發現回答沒發生任何變化, 只是分數變成了0.24.


(4) 問題: 巖石破壞有哪幾種形式?

回答: 沿節理的剪切破壞 (0.17)

與(3)的回答一樣, 只給出了部分答案, 不明白為什么后面的文字沒有給出. 


登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1
1