Professional Documents
Culture Documents
碩士論文
Master Thesis
指導教授: 張玉山 博士
以 BERT 與文本詞性結構為基礎之語句判斷
Text
研究生: 蔡承哲
中華民國 111 年 8 月
August, 2022
II
III
誌謝
首先我要感謝張玉山教授這兩年來的教導,從當初接計畫、論文方向、實驗、論文的撰寫以及系
統實作,老師都很樂意花時間不厭其煩給我許多意見,讓我在實作以及完成碩士論文上遇到問題能更
快的有方向去解決問題,論文的撰寫也更能將重點有條理的表達出來。除了論文的指導外,老師的專
業知識以及嚴謹的研究精神,使我受益良多學習到老師傳授的知識以及精神,相信在日後的職場上會
有所幫助。接著要感謝國立澎湖科技大學校長黃有評教授、國立陽明交通大學資訊工程學系袁賢銘教
授、國立中央大學資訊工程學系王尉任教授以及國立臺北大學資訊管理研究所戴敏育副教授提供許多
研究上的意見以及論文呈現上的建議,讓我能掌握研究上需要注意的地方,使得本論文能更加完善。
另外,我還要感謝實驗室的黃瀚勳學長,學長除了忍著身體疾病的病痛與自己的研究外,還額外花時
間協助我在系統上遇到的問題,給予我很大的幫助。
再來就是要感謝實驗室的同學、學長、系上的同學以及學弟妹,在苦悶的碩士生活中,彼此之間
互相加油打氣,遇到問題會互相幫忙,在研究之餘也會一起出去放鬆紓解壓力,使我碩士兩年的生活
過得多采多姿,有大家的鼓勵我才能繼續努力不懈,堅持下去完成這本碩士論文。最後,我要感謝我
的家人,家是永遠的避風港,無論在外受到什麼挫折,只要一回到家卻總是覺得溫暖,原因無非是有
家人真誠的關切以及無限的全力支持,讓我在做研究的過程中不用擔心生活,謝謝家人溫暖的支持與
陪伴。這篇論文我獻給我的師長、朋友、家人以及在我人生中幫助過我的貴人,在此至上深深的謝意,
將成果與你們分享。
IV
國立臺北大學資訊工程學系 110 學年度第學期碩士學位論文提要
論文提要內容:
吶語症(Dysphasia)患者因先天上的缺陷,發出來的語音有所缺損,一般的語音辨識系統無法
使用,因此針對語言障礙的語音辨識系統逐漸受到重視。本團隊在先前研究[2,3]中提出應用深
度學習方法建構語言障礙者中文語音辨識系統,先使用中文音節辨識模組辨識各個字的音,接
著在使用語句建構模組組合出句子。目前語音辨識模組準確度不穩定,語句建構模組識是將字
與字之間關聯歷史資料作為依據,建構出句子,再加上比對法若在資料庫中曾經出現過的句子,
組出來的結果就會比較好,缺點是如果講一個全新的語句,在語句庫沒有的,則結果就無法組
率,但隨著語句變長時間複雜度也隨之提高。
合這兩個方法做語句判斷,挑出正確的詞性結構語句,若遇到詞性部分錯的句子盡可能的使用
TL-BML 去猜出詞性錯的字詞做語句修正,藉由語句判斷讓使用者的候選語句能有更符合語意
上的相似。
I
ABSTRACT
Sentence Checking based on BERT and the Structure of Part-of-Speech in Text
by
Cheng-Zhe Tsai
August 2022
DEGREE:MASTER OF SCIENCE
Due to congenital defects, patients with Dysphasia have some defects in their speech, and the general
speech recognition system cannot be used. Therefore, the speech recognition system for language
disorders has gradually received attention. In previous studies [2,3], our team proposed to apply deep
learning methods to construct a Chinese speech recognition system for people with language disabilities.
First, the Chinese syllable recognition module was used to identify the sound of each character, and then
the sentence construction module was used to compose sentences. At present, the accuracy of the speech
recognition module is unstable. The sentence construction module recognizes the historical data related
to words as the basis to construct sentences, and then compares the sentences that have appeared in the
database. The result will be better. The disadvantage is that if you speak a brand new sentence, which is
not available in the sentence library, the result will not be able to combine the correct sentence. In [4],
the N-gram method is used to assist sentence construction, and the result is that the accuracy of sentence
construction is improved, but as the sentence becomes longer, the complexity also increases.
The team continued the previous system and method, and used the pre-built historical data to
construct the N-gram relationship matrix through the N-gram Hash Table in [5]. Finally, according to the
N-gram relationship matrix, the Generate Top 50 statements. In this study, after generating the Top 50
sentences in [5], the part-of-speech structure of the text is compared with the TL-BML (Transfer Learning
approach for BERT-based Masked Language model) trained by the CKIP original Traditional Chinese
II
BERT (Bidirectional Encoder Representations from Transformers) language model, combine these two
methods to make sentence judgment, pick out the correct part of speech structure sentence, if encounter
a sentence with a wrong part of speech, use TL-BML as much as possible to guess the wrong part of
speech Sentence correction is performed on the words of the sentence, so that the user's candidate
sentences can have more semantically logical sentences to choose by sentence judgment. In the average
sentence similarity, the 25 sentences were tested with sentences of length 3, 5, 6 and 9. All are more than
80% similar.
III
目錄
目錄......................................................................................................................IV
圖目錄..................................................................................................................VI
表目錄................................................................................................................ VII
第一章 緒論.................................................................................................... 1
第二章 背景與相關研究................................................................................ 5
第三章 語句判斷.......................................................................................... 10
IV
3.4.3 新增語句及語句詞性結構 ................................................................................... 17
3.5.2 BERT..................................................................................................................... 20
第四章 實驗結果與評估方法...................................................................... 33
4.5 討論 ............................................................................................................... 41
第五章 結論與未來展望.............................................................................. 44
參考文獻.............................................................................................................. 45
附錄...................................................................................................................... 48
V
圖目錄
圖 1. 語句判斷流程圖.............................................................................. 11
圖 2. 詞性結構資料庫.............................................................................. 12
圖 4. 詞性結構比較架構圖...................................................................... 16
圖 5. 詞性結構比較流程圖...................................................................... 17
圖 6. 新增語句及語句詞性結構流程圖.................................................. 18
圖 8. BERT 原始架構圖........................................................................... 22
VI
表目錄
表 2. 語句詞頻範例 ..................................................................................... 34
表 3. 語句平均相似度比較 ......................................................................... 35
表 4. 本文方法相似度提升率與平均提升率 ............................................. 37
表 6. 句子正確性分析(百分比表示) .......................................................... 38
表 7. 句子刪除表 ......................................................................................... 40
表 8. 句子平均刪除表 ................................................................................. 41
VII
第一章 緒論
在日常生活中,說話這件事對於正常人來說是輕鬆容易的,只要透過胸腔呼
出氣流與唇舌間的變化,便可發出不同的音,說出各式各樣的語句。隨著科技日
Siri,方便了你我的日常生活。但對於吶語症者(Dysphasia) [1]而言,因患者肌肉
無力發聲,口齒含糊不清,使得溝通十分不便,幾乎無法正常說話。說出來的句
子無法字正腔圓與抑揚頓挫,一般人的耳朵聽不懂在說什麼,更何況是使用家喻
戶曉的語音辨識系統,絕對無法有效的辨識吶語症患者的語音。這些患者,為了
要與人正常溝通,若無語音辨識系統輔助,只能緩慢的一個字一個字的打出來,
非常不便利。
1.1 問題與動機
本篇論文延續[2,3]與[4],繼續研究應用深度學習技術於語言障礙的語音辨識
系統,在[2,3]中可以將語言障礙者的語音透過深度學習辨識出中文的音,再將中
者的語音辨識聲音收集不易,且標記困難,此外在錄音時有時發音與音量也不穩
定,這使得辨識出來效果不夠好。在[3]中語句建構句的部分提出句子比對,可以
讓使用者將曾經講過的話收集起來,未來只要使用者講過的語句在語句庫中,語
句辨識的準確率就會上升。在[4]中為了要將使用情況推廣到一般化,先使用網路
在以上的研究中因為目前在語音的辨識無法有效提高,我們只能靠語句的組
1
擇,將語句播放出來。在[5]中的句子是結合歷史資料與 N-gram 的方式生成候選
句,這類的語句雖然是根據固定的權重與機率去組合而出,並非完全由暴力法組
合出來,但有許多候選句並無符合我們日常說話的邏輯或是正確文法語意的修飾。
生成的候選句子與正確的句子詞性結構去做比較,剔除掉不合乎正確詞性結構的
語句,暫存在新的候選語句名單中。此外,在本文設計的演算法中,加入 Transfer
某些音辨識結果不好,輔助單純用詞性結構比較的方法。最後,收集這兩個方法
1.2 目標與貢獻
在上一個小節中有提到,目前開發的語言障礙者的語音辨識系統,在音的辨
識準確度短時間內難以提升,語句的部分使用關聯度表單建立字與字之間的關聯,
好處是若新講得語句是使用者曾經講過的話或類似的話,其構句的準確度就會提
但也因此產生的問題,就是隨著語句長度變長,時間複雜度會隨著指數成長,效
率變差。
基於以上,本團隊在單音辨識結果之後,修改原始系統新加入 N-gram,以
的語句只是以歷史資料出現的頻率當權重再乘上語音辨識結果來組合句子,比較
2
性結構比對[6]與基於 BERT 的語言模型[7]透過 Transfer Learning 訓練出來的 TL-
BML 模型作為輔助,希望能使最後產生的語句接近吶語症使用者想表達的話。
本文為了要做詞性結構比對,先將吶語症患者講過的話當作歷史文本,對這些句
列存成詞性結構庫。首先,把候選句子的文字各別做斷詞,接著斷完的詞再做詞
性標記會形成一個詞性順序的序列,將這個序列與事先建立好的文法結構去做比
對,去除對不上的,將比較的結果暫時存入新的候選語句名單中。除此之外,為
了避免中文字可能出現轉品修辭[8],在不同句子或使用情境改變了原本的詞性,
或者有些字的音辨識度不好,本文在演算法中設計,跟正確的文法去比較,找出
候選句比對不上的文法位置回頭在原句子相對位置的詞用[MASK]這個 Token 取
生成完候選句子之後加上詞性結構比較挑出詞性結構正確的語句,此外若遇到在
的字詞盡可能的去做語句修正,希望能使得新候選語句與正確答案語句的語句相
似度提升,讓最後候選語句能輸出比較有邏輯句子或符合日常生活對話提供給吶
在語句的測試評估中,雖然最後的候選句子實際使用上無法一字不差,每次都百
分之百正確,但在測試的結果中在特定的情境句子相似度能接近百分之八十,可
讓吶語症患者有好的最基本溝通體驗。
1
https://ckip.iis.sinica.edu.tw/project/ws
3
1.3 論文架構
本篇論文的架構如下,第一章介紹問題與動機以及本文目標與貢獻。第二章
介紹了相關研究,會先介紹語言障礙的語言辨識系統之架構與流程,接著介紹使
技術去訓練適合我們自己的模型,最後將詞性結構比較與語言模型去做結合的語
句判斷演算法。第四章為語句評估方法,使用句子相似度、句子正確性評量以及
句子刪除評量去檢驗實驗結果的好壞。最後在第五章是本文之結論與未來展望。
4
第二章 背景與相關研究
2.1 語言障礙中文語音辨識系統
本文接續[2,3]所創建的應用深度學習技術之語言障礙中文語音辨識系統,系
提供語言障礙者去選擇自己想表達的語句。
相鄰兩字的排名組合中,搜尋詞是否存在於詞庫中。若配對成功,則為候選句的
候選詞,最後將這些候選詞組合成句子。
整個文本資料中後文出現的機率。吶語症患者從[2,3]所開發的系統,透過 APP 接
2
http://ihower.tw/log/archives/1542
5
收至 Server 端,先做完語音辨識後,各別有每個字語音辨識的機率,再透過 N-
2.2 開發平台
2.2.1 Python
本文使用 Python 來撰寫程式,Python 是一種易閱讀、易學習、功能強大的
程式語言。它有著簡單且有效的方法實現物件導向,除此之外,Python 直譯的特
性使得它可跨足在多個平台上,快速開發應用程式。函式庫(Library)對於 Python
來說是十分重要的存在,其豐富的函示庫可以使用前人包裝好的模組,讓開發者
因。
研究中文自然語言處理的單位,主要研究方向為 : 自然語言理解、知識表達、知
識擷取、聊天機器人。CKIP 還提供國內繁體中文自然語言處理工具、資料、開
為中央社與中文維基百科這兩個大量文本資料為主。本文所使用的 Library 為
3
https://ckip.iis.sinica.edu.tw/
6
CKIP Tagger 的準確率比結巴(Jieba)系統準確率還更高,此外,這個 Library 不會
限制句子的長度,也不會自動增/刪/改輸入的文字,有較高的可靠度。
2.2.3 PyTorch
PyTorch4 在 2017 年為 Facebook AI 團隊基於 Torch 而開發而成,與 Tensorflow
一樣是一種深度學習的計算框架,支持著各種深度學習的演算法。PyTorch 有著
來會比較容易去適應,編寫上也看起來比較清晰易理解。
2.3 相關研究
在自然語言處理的領域中,語言模型在處理文本或是語句是很常被拿出來做
許多相關應用,[9]描述了基於詞性依賴結構的性質設計了一個語句實現器,這個
方法是以對數為基礎的模型,在文中提到其主要結構來自詞性文法樹狀結構,先
以樹根和節點的相對順序決定相依關係,接著再透過對數線性模型選擇與相對順
序的最佳線性化,整個詞性依賴結構樹透過線性劃分各個子樹,子樹中分為兩組,
向前關係與向後關係,可視為前後文上下關係,在實驗結果中也有不錯的結果。
根據語句中在 n 個詞共同出現的統計資料中,去預測已知文字後面可能出現的
善方法。
4
https://pytorch.org/
7
近年研究中語言模型也用在詞性標記,[6]是中研院開發的詞性標記系統,在
大量的文本資料中詞性標記是一件耗時且繁瑣的工作,以中文字來說有 40 幾種
詞性分類,更別說在修辭學中相同的詞在不同語句會有不同詞性的轉品修辭。因
此,能快速的幫繁體中文做詞性標註且可靠度高的系統是十分有必要的。在文中
效率也最好。隨著深度學習的方法提出來後,各大領域發表的論文都靠著深度學
習技術遍地開花,百花齊放,當然自然語言處理也不會缺席。論文[12]提出了基
語之前的方法相比對詞嵌入的依賴性較小。
送入 Bi-LSTM Layer,透過雙向的上下文組合這些會生成相關的詞,多個詞最終
的準確率高。除了監督式學習(Supervised Learning)的方法之外,語義分析也可以
情感分析,Word2vec 是一種非監督式學習的模型,透過大量的文本資料,將字
詞用數學向量的方法,映射到另一個空間,在這個向量空間餘弦定理的方式判斷
8
去做分類,實驗結果表示在分類正面語句與負面語句是有效的。
們可以根據這個輸出的序列,進一步丟進其他模型去使用,最後完成我們所需的
任務。在自然語言處理中,常會有不同的任務,若每次針對一個任務而去訓練其
實十分費時,甚至有一些任務的資料收集不易,人工標記也花時間。好在 BERT
還有一個優勢,因為它是由大量未標記的文本資料所訓練出來的,所以我們可以
將公開的預訓練模型(Pre-trained Model)作為一個通用的模型,再藉由遷移學習
己任務需求,轉換成適合的模型,而本文正是使用此方法來訓練我們自己的語言
模型。
基於以上的相關研究,大多為語句的詞性文法、語義分析都用在針對部分主
的 Top 50 後選語句透過語句判斷,希望讓候選句子有更有邏輯以及符合日常對
話的選擇提供給吶語症患者使用。
9
第三章 語句判斷
句透過演算法使得最後的候選句子能更符合日常說話的語義與邏輯。本節會先介
紹方法架構與原始語句的問題,接著是用詞性結構去做詞性結構比較,最後是使
3.1 架構與流程
圖 1 為本文流程架構圖,首先,在語句建構[5]中使用者的語音會先轉成
在詞性結構比較的過程中,會有些語句是不完全正確的比對,本文將這些語
10
BML 模型根據語句文字的上下文去猜出[MASK],猜出的字詞取代再取代
會在 3.6 節去做說明。
圖1. 語句判斷流程圖
3.2 建構詞性結構資料庫
本文以 Python 程式去撰寫爬蟲程式,透過網路爬蟲將網路 PTT 新聞版中的
詞性標記的部分,形成一連串的序列則每一句詞性標記的序列就是該句的詞性結
構,除此之外,本文也將吶語症患者講過的語句歷史資料經由上述方式取出語句
語句斷完詞與詞性標記後所形成的序列有長有短,只要去統計計算候選語句的詞
性標記序列長度,就可以去對應的長度尋找正確的詞性結構,如 : 「我想要吃午
11
餐」做完斷詞與詞性標註會變成[我(Nh 代名詞), 想要(VE 動作句賓動詞), 吃(VC
為 4 的列表去找詞性文法結構,這樣的好處是不用每次都從第一個詞性結構序列
開始去做比對,其好處可以加快效率。其他詳細詞性名稱與詞性結構序列皆在可
在附錄查詢。
圖2. 詞性結構資料庫
3.3 原始語句與問題
在[5]中,先從 HSWD 與 N-gram Terms 跟 N-gram Hash Table 去做結合,去
的候選句子。這些候選句皆是透過歷史資料的機率以及權重去組合而成,以詞為
12
「我準備要錄音」為例 : 結果可能組出["我準備要錄音", "我準備要我一", "我
語句是通順有邏輯的,而有一些是在句子中的部分字詞不正確,語句不通順。本
入新的候選語句並且將詞性結構不完全正確的語句透過語言模型盡可能的猜出
正確的字進而去做修正語句,使得最後剩下來的候選語句比較接近日常講話的邏
輯與語意。
'D'(副詞), 'VB'(動作類及物動詞)],這個詞性結構在我們事先建立的詞性結構庫比
判斷完成之後,輸出新候選語句結果。
13
圖3. Top 50 候選語句與最終候選語句
3.4 詞性結構比較
3.4.1 斷詞與詞性結構
在自然語言處理中,首先要做的第一個前處理一定是把一段文本或句子去做
斷詞,因為字詞是構成語言的最小單位。然而,中文字總共約 4 萬個字,其中有
是由單個字為單位所組成,不像是英文中詞與詞之間由空白所間格,因此本文選
的語句之後,將這些候選句先做斷詞的動作。斷完詞之後,我們接著要做詞性標
記。所有的語句,無論是中文還英文都會有個固定的詞性結構,以「我喝奶茶」
14
奶茶(Na)]。"我"在這邊為代名詞(Nh),在語句中代表主詞;"喝"在這個句子為動
詞(VC),在語句代表動作及物動詞;"奶茶"在句中則為名詞(Na),語句中代表受
詞。在一般日常對話的正常語句中,主詞後面可能接及物動詞,表示某人做某動
作,最後因為是及物動詞則後面會加受詞來接受這個動作,所以會形成" Nh + VC
結構。
3.4.2 詞性結構比較
圖 4 為文法比較架構圖,最左邊為本文的輸入,來自[5]生成出來 Top 50 的
候選語句。首先,先將輸入做斷詞以及詞性標記,將詞性標記完的語句取出來放
沒有比較一用卡", "我有一張信用卡"],先各別將這些語句做斷詞與詞性記,則會
變成
…,
Dictionary 去找對應的長度的詞性結構與詞性標記完的候選句子去做比對,如 :
15
[沒有(Cbb), 一(Neu), 張(Nf), 信用卡(Na)]、
句的 list,從第一個句子比對到最後一個句子,收集好正確的語句先做暫存。
圖4. 詞性結構比較架構圖
16
圖5. 詞性結構比較流程圖
3.4.3 新增語句及語句詞性結構
使用者透過語音辨識系統,在 APP 畫面會顯示 Top10 的候選語句提供選擇,
取 Top 10 中最接近使用者想表達的句子透過打字的方式去做修正或直接在輸入
列輸入正確語句,系統會將這句新增的語句新增至語料庫同時也會新增語句的詞
率。除此之外,Server 同時還會自動更新語句詞性結構,將語句做斷詞以及詞性
標記,取出詞性結構後去計算出詞性結構的長度,到對應長度下的詞性結構表新
增資料。
17
圖6. 新增語句及語句詞性結構流程圖
18
詞。在圖中假設𝑊4 為被遮蔽,用[MASK]所取代,接著會進到 Encoder 去做編碼
個句子的正確答案為「我想上廁所」,若"煩"這個字詞被遮蔽則會變為 ["我想
的可能答案是"去",以此類推。
𝑧
𝑒 𝑗
𝜎(𝐳)𝑗 = ∑𝐾 𝑧𝑘 for 𝑗 = 1, … , 𝐾 (2)
𝑘=1 𝑒
19
圖7. TL-BML model 架構圖
3.5.2 BERT
BERT[7]是基於 Google[16]中的 Transformer 架構基礎之上所提出來的模型,
向量間的關係,並且不受限於長度限制,能表現不同詞語間的相對位置。此外,
5
https://medium.com/ching-i/transformer-attention-is-all-you-need-c7967f38af14
20
𝑃𝐸(𝑝𝑜𝑠,2𝑖+1) = cos(𝑝𝑜𝑠/100002𝑖/𝑑model ) (5)
訊。
𝑄𝐾𝑇
Attention(𝑄, 𝐾, 𝑉) = softmax ( )𝑉 (6)
√𝑑𝑘
𝑄 𝑄
這裡的 head 𝑖 = 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄𝑊𝑖 , 𝐾𝑊𝑖𝐾 , 𝑉𝑊𝑖𝑉 ),而 𝑊𝑖 ∈ 𝑅 𝑑𝑚𝑜𝑑𝑒𝑙 ×𝑑𝑘 ,
21
之後送入 ReLU(Rectified Linear Unit, ReLU)(式 10),再做一次 Add & Norm 輸
出。
22
模型所需的三個不同嵌入 :
換成向量,能粗略的表現詞的特徵。
Token 就能知道是屬於哪個句子。
為了得知序列的前後順序,需要去做位置標記。
Embedding,藉由[CLS]與[SEP]的表示可得知兩段不同的序列,在圖中分為 A, B
介紹。
23
圖9. BERT Input Representation
的模型與參數,轉移到另一個新模型上,這使得我們不必很辛苦的從頭到尾去訓
6
https://medium.com/%E6%88%91%E5%B0%B1%E5%95%8F%E4%B8%80%E5%8F%A5-
%E6%80%8E%E9%BA%BC%E5%AF%AB/transfer-learning-
%E8%BD%89%E7%A7%BB%E5%AD%B8%E7%BF%92-4538e6e2ffe4
24
model,這個方法比較單純一些,就是讓 Source Domain 與 Target Domain 彼此間
訓練,而本文也正是使用此方法。
的資料與模型,解決資料不足,無法訓練好的模型。
25
3.5.4 Fine Tuning BERT Pre-trained Model
由於本文的資料收集不易,但希望能有個好的模型在語句判斷時能有好的修
練完效果不錯的模型基礎之上,加入我們的資料以及微調的方式,
習模型一樣,需透過大量資料訓練,模型從 0 開始從頭訓練。若資
Fine Tune,就能使得我們訓練出不錯的模型。
整了模型轉換成適合自己的模型,在詞性標記與關鍵句的語義分析比傳統 BERT
7
https://huggingface.co/ckiplab/bert-base-chinese
26
Token Embedding 目的是要做 Word Embedding 也就是將詞轉換成向量,那在這
[CLS]表示語句的開頭,用於標記序列的開頭,在語句的最後面插入[SEP]表示換
為了確保送進模型時每個輸入序列長度皆相同,在較短的序列中會使用 Padding,
保證在訓練的時候序列的長度一致)。
句資料沒有到很多,量也沒有到很大。除了考量到本身的硬體之外,Batch size 設
後,真正拿來使用時的模型泛化(Generalization)能力變差。Optimizer 本文參考
27
點在[21]提到說 L2 正規化8(減少特徵權重之間的差異,使得部分特徵的權重不要
訓練,其作用是我們挖空部分的詞透過上下文預測挖空的部分應該填入什麼詞。
去做取代,並訓練模型預測應該填入那些字詞,像是我們生活中做克漏字測驗一
將機率最高的那個字詞取代[MASK]。將預測的結果與實際答案去做比對,計算
性不對的字詞,修正語句。
8
https://ithelp.ithome.com.tw/articles/10219648
28
圖11. Transfer Learning from BERT
Tokenizer
Training
16 Admw 5 10−5
[MASK]的範例。如圖 12 所示,在候選語句中假設被遮蔽的結果為"我想要[MASK]
午餐",TL-BML 這個模型會根據[MASK]的上下文,再經由上述所說的使用
所以經由修正過後的句子為"我想要的午餐";第二個猜完的結果[MASK] = "吃",
其機率約為 0.154,修正過後會變為"我想要吃午餐";第三個猜完的結果[MASK]
= "中",其機率約為 0.070,修正過後會變為"我想要中午餐"。在語句判斷中,這
29
些猜出來的結果經由重新修正語句之後,我們將新的語句存進新的候選句中,其
開始是語句判斷,將所需的詞性結構表與 CS 去做比較,若詞性結構比對結果正
詞性在句中的位置找到 WS 中那句的字詞,將該字詞以[MASK]表示。
30
指錯誤的詞性佔了 40%,我們將這些[MASK]透過 TL-BML 去猜出,將結果存入
餐(Na)",會將「摸(VC)」這個字詞以[MASK]去替換,則變成"[MASK] 想要 吃
"我想要吃午餐"這個句子存入 ANS 中。
中的語句是否有重複的句子,將語句重複的句子刪除,若刪除完還有很多的候選
Input: Length L Top n candidate sentences, TL-BML model, POST Structure List
3: Statistically calculate the length of the CS and find same length in POST
4: for i = 1 to n
5: for j = 1 to L do
9: else
31
10: Assign [MASK] in 𝑊𝑆𝑖,𝑗
11: for i = 1 to n
12: for j = 1 to L do
sentence
32
第四章 實驗結果與評估方法
4.1 實驗環境介紹
系統的實驗環境是沿用[2, 3, 4],作業系統為 Linux,版本為 Ubuntu16.04。
句。
示。在自然語言中,無論何種語言在一段話中都可以看做向量表示,因此在數學
的表示下,餘弦相似度的計算表示在多維空間中有兩個 n 維度向量,而兩向量夾
角的餘弦值範圍為[0,1],因餘弦(Cosine)的夾角0°~90°的值範圍為 0~1,意指若
個非零向量 A, B 之間的餘弦相似度如下:
𝐴∙𝐵 ∑𝑛
𝑖=1 𝐴𝑖 𝐵𝑖
Cosine Similarity = Cos(θ) = = (12)
||𝐴||||𝐵||
√∑𝑛 2 𝑛 2
𝑖=1 𝐴𝑖 √∑𝑖=1 𝐵𝑖
本文以餘弦相似度的評估方法,針對我們的方法加以修正,計算方式如式 13
所示,符號定義如下:
(1) A 為正確答案的句子向量
33
(2) 在候選句 S 中, S = {𝑆𝑖 |∀i → 1 to 10},𝑆1, 𝑆2 , …, 𝑆𝑛 表示為第 1 句候
1
∑25
𝑖=1[argmax(Cosine Similary(A, S))]𝑖 (13)
25
我們用實際的例子來說明這個評估方法,假設今天使用者說的話是"這邊的
網路訊號不好",而候選語句為["這邊的網路訊號不好", "這家的網路訊號不好",
(網路) (訊號) (不好)", "(左邊) (的) (網路) (訊號) (不好)", "(在) (家) (的) (網路) (訊
如表 2 所示。
表 2. 語句詞頻範例
Ans 1 2 3 4 5
這邊 1 1 0 0 0 0
的 1 1 1 1 1 1
網路 1 1 1 1 1 1
訊號 1 1 1 1 1 1
不好 1 1 1 1 1 1
這 0 0 1 0 0 0
家 0 0 1 0 1 1
左邊 0 0 0 1 0 0
在 0 0 0 0 1 0
那 0 0 0 0 0 1
34
建完表之後,我們的 Ans = [1,1,1,1,1,0,0,0,0,0],而其他的候選語句為 S1 =
句以此類推。
們自己的任務上只提升了最多 2%。
表 3. 語句平均相似度比較
35
8 25 0.74 0.771 0.762
果顯示不一定語句的長度愈高則準確率愈低,還是要考慮到在組合句子的時候詞
詞,修正的結果好壞是來自模型本身,這些也與句子長度無關。
接著本文為了要呈現實質上提升的多少百分比,因此定義提升率與平均提升
率。首先先把平均相似度轉換為百分比表示,假設𝑂𝑠 為未使用本文方法的平均相
所示,其中式 15 中的 n 為句子長度的種類數,本文在這裡取 8。
|𝐶𝑠 − 𝑂𝑠 | (14)
1
∑𝑛𝑖=1 |𝐶𝑠 − 𝑂𝑠 |𝑖 (15)
𝑛
率約 6.4%。
36
表 4. 本文方法相似度提升率與平均提升率
3 4 5 6 7 8 9 10 Average
4.3 句子正確性評量
表 5 為句子正確性評量分析表,表 6 為以百分比為單位呈現的結果。表 5、
表 6 是根據表 3 去做進一步分析,這邊的結果為[5]與本文方法合力做出來的成
果。表格中 Wc 表示某個長度之語句的全部候選語句中,對了幾的字,Ws 表示
句子的長度。我們舉一個例子來說明表格的內容例如:
11 個句子是對 9 個字的,表格其他數字以此類推。
10 的平均語句相似度最低,所以在比較一句話中總共對幾個字的正確性評量當
高,正確性評量也比其他的長度語句高,但其實有許多候選語句在構句的時候可
外,進一步分析可得知長度為 3 的文法結構數量較少以及上下文資訊較少,TL-
37
表 5. 句子正確性分析表(25 句/組)
W𝑐 10 9 8 7 6 5 4 3 2 1 0 Total
𝑊𝑆
10 16 11 35 31 36 21 17 19 31 17 16 250
9 --- 22 32 44 42 27 17 28 14 13 11 250
表 6. 句子正確性分析(百分比表示)
W𝑐 10 9 8 7 6 5 4 3 2 1 0
𝑊𝑆
10 6.4 4.4 14 12.4 14.4 8.4 6.8 7.6 12.4 6.8 6.4
9 --- 8.8 12.8 17.6 16.8 10.8 6.8 11.2 5.6 5.2 4.4
7 --- --- --- 7.2 12.4 17.2 12.4 13.2 16.8 12.4 8.4
6 --- --- --- --- 7.2 19.6 18.4 19.6 14.4 15.6 5.2
5 --- --- --- --- --- 8.4 24.4 22 19.6 18.8 6.8
4 --- --- --- --- --- --- 6.8 22.8 15.2 19.6 35.6
3 --- --- --- --- --- --- --- 9.2 25.2 14.4 51.2
38
4.4 句子刪除效果評估
句子刪除評量為從 Top 50 的生成候選句中,透過語句判斷演算法篩選出詞
L 表示語句長度。在表格內的數字 0 表示說無論最後語句判斷刪除了多少候選語
句,在這些候選語句中皆沒有正確答案。這邊我們舉一個例子來說明表格,例如:
此類推。
均刪除評量。
1
∑25
𝑖=1 𝑠𝑖 (16)
25
我們可以觀察到使用語句判斷演算法,無論句子長度為何,若生成 Top 50 的
無符合詞性結構,在這種情況下就會篩選掉一堆語句,只有少數的句子保留。除
此之外,在其他的情況下我們透過語句判斷演算法,過濾出文法正確的句子與藉
句提供給使用者去做選擇,而非 0 的部分就是在候選語句下有正確句子的結果。
表 7 為句子平均刪除表,我們可以觀察到在長度為 3 的語句中,平均刪除
為表格中刪除最少候選語句。其實不難發現,由於長度為 3 的語句在測試 25 句
中出現 0 的數量較少,自然而然在做平均的結果整體數值會拉高,相反的在長度
39
為 10 的結果中,因為測試的 25 句中出現 0 的數量較多,因此整個 25 句測試完
之後再做平均當然數值會被拉低,計算出來的平均結果較低。
表 7. 句子刪除表
S L 3 4 5 6 7 8 9 10
1 42 0 46 0 0 48 0 41
2 47 46 43 49 39 46 45 0
3 41 0 39 48 49 0 0 0
4 46 42 43 39 46 38 44 40
5 40 39 43 48 0 48 34 38
6 33 44 43 0 49 0 43 38
7 46 0 45 49 39 38 38 0
8 43 35 0 0 0 0 48 42
9 45 43 44 46 43 32 39 0
10 0 42 42 49 38 0 49 0
11 45 33 42 49 0 39 47 38
12 38 42 45 0 0 38 44 38
13 43 0 47 38 36 45 0 0
14 43 35 0 46 46 0 38 45
15 0 43 47 49 38 49 47 45
16 42 0 48 32 44 43 43 38
17 38 49 47 0 0 49 47 38
18 45 44 44 38 0 38 42 47
19 44 0 0 49 38 38 47 38
20 42 43 0 49 49 36 38 0
40
21 47 45 49 0 40 36 38 38
22 41 0 43 42 38 0 38 0
23 30 34 46 0 38 38 49 0
24 46 46 46 45 46 46 47 38
25 46 0 45 38 49 0 38 38
表 8. 句子平均刪除表
3 4 5 6 7 8 9 10
4.5 討論
4.5.1 句子正確性評量與句子刪除效果評估
在表 5 中可視為進一步討論在全部候選語句中有多少的候選語句是一字不
差完全正確,哪些在一句話中只錯幾個字或錯誤率較高,表 6 為轉換成以百分比
為單位,更能看出各種長度語句的正確率比例,表 5 與表 6 屬於正確性評量探
語句為新的候選語句,表 8 為表 7 的平均結果,這可視為錯誤性探討。我們將表
表 5 的測試語句中有某些候選語句跟正確答案去做比較,比較的結果在候選語句
41
是最多,但同時完全錯誤率也很高,在表 6 中可觀察到在全部候選語句中完全錯
為 10 的語句中,因在表 5 的統計結果完全正確的數量是最少的,這也同時意味
一定是最低的。
4.5.2 改善語句準確度
在語句建構中,目前遇到的問題是本身的 2~4gram 的詞庫量還是不夠,無法
更加涵蓋不同的使用情境,此外因為本文的方法與[5]的詞庫共用,在詞性結構庫
中的句子數量也不夠,基於以上我們在做語句生成時遇到的問題是若某個詞因為
高整體語句建構的準確度,我們可以額外在網路上透過網路爬蟲爬大量文本資料
進到我們的資料庫,以及若候選句中皆沒有正確的語句,使用者會在 APP 畫面
中會先挑選最相近的句子,然後再透過手機鍵盤打字的方式修正錯誤的字,修正
斷錯誤。
有些情況出來的語句結果還是不正確,若想要使得吶語症使用者使用語音辨識系
",而候選句中辨識出來最接近的語句為"我想要摔倒",使用者選擇這句話後,我
42
們可以把"我想要摔倒"去做斷詞並標上順序,則會變成[我(1)想要(2)摔倒(3)],使
喝水,使用者就可以根據他想表達的意思選擇,以這裡舉的例子來說,使用者可
以選擇 3,最後就輸出"我想要睡覺",讓吶語症患者使用上更加便利。
43
第五章 結論與未來展望
在本論文中,我們基於目前語音辨識系統的架構與 N-gram word 的語句建構
能更接近日常對話的語意。首先,本文提出以文本詞性結構比較結合 BERT 語言
模型去做修正,在候選語句中做詞性結構比較,挑選出正確的,此外將詞性結構
型的平均語句相似度中,本文測試的結果雖然相似度分數沒有高很多,但長度為
3 到長度為 10 的語句測試中,整體分數有略高一點,可見在好的模型之下再做
進一步討論了語句中句子跟正確句子之間的正確性與候選語句刪除評量。
在之前的研究中,語句建構模組都是以字與字之間的機率與權重找到關聯來
到詞性與語意相關的方法,而本文加入詞性結構比較與語言模型去修飾候選語句。
用 CNN 辨識的聲學模型,使吶語症患者的語音辨識結果好,最後句子的輸出也
系統,讓使用者遇到候選語句都錯的情況下,找個最相近的句子,推薦可能正確
的字詞給使用者,使用上起來更加便利。
44
參考文獻
[1] Department of Rehabilitation and Assistive Technology, School of Health and
communication: dysarthria"
[2] Bo-Yu Lin, "Speech Recognition for People with Dysphasia in Chinese", 國立臺
[6] GYu-Fang Tsai, Keh-Jiann Chen, “Reliable and Cost-Effective Pos-Tagging”, The
[9] Wei He1, Haifeng Wang, Yuqing Guo and Ting Liu, "Dependency Based Chinese
Annual Meeting of the ACL and the 4th International Joint Conference on Natural
45
Association for Computational Linguistics.
[10] Peter F. Brown, Vincent J. Della Pietra, Peter V. deSouza, Jenifer C. Lai and
[11] Lalit R. Bahl, Member, Peter F. Brown, Peter V. De Souza and Robert L. Mercer.
"A tree-based statistical language model for natural language speech recognition."
1989.
[12] Zhiheng Huang, Wei Xu, Kai Yu, "Bidirectional LSTM-CRF Models for Sequence
[13] Sunanda Das, Sajal Basak Partha and Kazi Nasim Imtiaz Hasan, "Sentence
[14] Yuandong Luan and Shaofu Lin, "Research on Text Classification Based on CNN
10.1109/ICAICA.2019.8873454.
[16] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszoreit, Llion Jones,
AidanN. Gomez, Lukasz Kaiser and Illia Polosukhin, "Attention is all you need."
Aug. 1998.
[18] Sinno Jialin Pan and Qiang Yang, "A Survey on Transfer Learning.", IEEE
Transactions on Knowledge And Data Engineering, vol. 22, No. 10, October 2010.
46
[19] Xingce Bao and Qianqian Qiao, "Transfer Learning from Pre-trained BERT for
[20] Seo Yeon Park and Cornelia Caragea, "Scientific Keyphrase Identification and
[21] Ilya Loshchilov and Frank Hutter, "Decoupled Weight Decay Regularization.",
[22] Chi Sun, Xipeng Qiu, Yige Xu and Xuanjing Huang, "How to Fine-Tune BERT
47
附錄
附錄A 中研院詞性標記表9
9
https://ckip.iis.sinica.edu.tw/
48
附錄B 詞性標記表
長度為 2 結構 長度為 3 結構
49
長度為 4 結構
50
長度為 5 結構
51
長度為 6 結構
52
長度為 7 結構 長度為 8 結構
53
長度為 9 結構 長度為 10 結構
54
著作權聲明
55