Transformers之問題對答(Question Answering)
1 引言
Transformers的環境配置非常麻煩, 盡管花了幾個小時試了各種方法, 但仍然沒有完全解決問題. 本文僅試驗了Transformers之問題對答(Question Answering), 其它功能還沒有測試. 在試驗之前, 檢查了每個模塊的安裝情況, 如下圖所示。
問題對答是信息檢索和自然語言處理NLP中的一項任務, 也是NLP中最難處理的一項內容, 該任務要求系統正確回答以人類自然語言提出的問題。在提取性問題解答方案中,通過提供一段文字,使用模型根據上下文來預測答案在段落中的位置。這是一項非常具有挑戰性的任務.
PyTextRank---文本關鍵字(keywords)的自動取出
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)的回答一樣, 只給出了部分答案, 不明白為什么后面的文字沒有給出.
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















