第 1 章 引言
1.1 研究背景
1.1.1 互聯網時代的健康服務
醫療健康產業發展帶來了大量的數據。
1.1.2 數據處理技術的發展
數據庫技術、數據挖掘技術、自然語言處理技術的發展。
1.1.3 人口老齡化和慢性病現狀
即有在線健康服務的需求。
1.1.4 在線健康問答服務
1.1.4.1 在線健康問答服務的類型
- 搜索引擎
- 基於社區的問答服務
- 基於專家的問答服務
1.2 健康問答系統
1.2.1 概念
一種是基於準確的知識圖譜來回答特定類型的問題,準確度高,診斷的結果一定程度可以作爲專業診斷結果,但回答問題範圍有限。
本文的系統基於檢索和摘要的方法,歸納相似歷史問題的答案,爲用戶提供輔助的健康建議而不是準確的診斷結果,內容更加豐富。
1.2.2 挑戰
- 中文健康本體資源的匱乏
- 數據集噪聲多
- 問題的查詢
- 答案的摘要
1.3 本文貢獻
1.3.1 醫學詞典和醫學實體標註集
醫學詞典構建:疾病和症狀、藥品、食物、檢查、指標、體徵、治療詞典共7類。
醫學實體標註集:建立了一套醫學實體標註的集合,並構建了基於此標註集的面向問答數據的訓練集。
1.3.2 基於專家問答數據的中文健康問答系統
貢獻有二:
- 系統爲普通用戶提供慢性病領域的中文問答服務。
- 系統能處理一般的問答數據。
1.3.3 基於實體抽取的檢索和摘要算法
- 面向慢性病的問題結構分析和分類算法。對問題進行更加細緻的分析和分類以來了解用戶的意圖。
- 面向慢性病問題的高效文檔檢索算法。除了基於Lucene的粗檢索之外,還要做出基於句子相似度的精確檢索,以準確獲取真正與用戶問題相關的問題,提高摘要來源的精度。
- 面向問答需求的高質量多文檔摘要算法。提出了基於實體抽取和文本摘要的算法。
1.4 文章結構
第 2 章 國內外相關研究
2.1 健康問答系統的相關研究
2.1.1 開放域問答系統
- START
- QuALiM
- NSIR
2.1.2 限定域問答系統
- MedQA
- AskHERMES
2.1.3 中文問答系統
2.2 相關算法研究
2.2.1 自然語言處理
2.2.2 索引和檢索算法(略)
2.2.3 語句相似度判定算法(略)
2.2.4 摘要算法(略)
2.2.5 實體抽取
2.2.5.1 實體抽取概述
從某段文本中抽取某種類型的實體。實體抽取是一種序列標註問題,本質上還是一種對序列元素的分類問題。
2.2.5.2 實體抽取的方法
- 監督學習:隱馬爾可夫模型,決策樹,最大熵模型,支持向量機,條件隨機場。
- 半監督學習
- 無監督學習:聚類。
最大熵模型
最大熵模型目的是儘量的滿足我們所觀察到的訓練集中存在的特性,儘量滿足的過程就是一個條件熵最大化的過程。
隱馬爾科夫模型
隱馬爾科夫模型是一種生成式模型,它通過馬爾科夫鏈簡化了序列的生成過程,但是卻帶來了極大的求解和計算效率的提升。
條件隨機場 - 最大熵模型讓我們可以將很多人工的觀測經驗(語言模板)通過特徵函數的方式加入到模型中,但不能考慮標籤之間的依賴性。
- 隱馬爾科夫模型讓我們可以捕捉標籤之間的馬爾科夫鏈關係,但只能捕捉到當前標籤和當前觀測的關係。
條件隨機場融合了上述兩個模型的優點。他是一個區分式模型,其目標是求解條件概率p(y|x)
第 3 章 基礎數據和詞典描述
3.1 數據
3.1.1 數據內容和來源
- 39健康網
- 尋醫問藥網
- 快速問醫生
3.2 詞典描述
3.2.1 英文環境下的醫學詞典
處理醫療文本需要理解文本語義;
理解文本語義需要抽取文本醫學實體;
抽取文本醫學實體需要藉助醫學詞典。
英文中比較著名的是UMLS。可以用於電子病歷表,分類器,文本翻譯等。
3.2.2 中文環境下醫學本體的構建
3.2.2.1 專業醫學詞典
與醫學專業人員合作,通過整理網絡上的專業詞典和醫學權威書籍只是構建了專業醫學詞典,並存儲在數據庫的數據表中。
3.2.2.2 輔助醫學詞典
專業醫學詞典,專業性和權威性有保證,手工構建,難度大,成本高,不能滿足要求。
輔助醫學詞典只包含詞條信息,不包含其他元信息或者關係信息。
主要來自搜狗醫學類細胞詞庫,生物醫藥大詞典,尋醫問藥症狀、疾病、藥品查詢。
第 4 章 健康問答系統的框架與實現
4.1 總框架
(其實我只需要關注,本地數據庫的數據如何利用醫學詞典進行答案和問題的標註就可以了)
4.2 數據預處理
4.2.1 數據清洗
- 標點清洗
- 段落合併
- 去除廣告和通用冗餘信息
- 去處重複答案
4.2.2 中文分詞
中科院的NLPIR
4.3 問題處理
4.3.1 健康問題的特點和表示
從問題和回答中抽取出年齡、性別、疾病等等信息。分兩步,一是實體抽取,二是用結構化的信息重新表示問題。
4.3.2 實體抽取
4.3.2.1 實體分類集
4.3.2.2 實體標籤集
標註時有兩種可以選擇的算法,一種是先分詞,分詞之後然後對每個詞語進行試題標註,另一種是不提前分詞,直接對每個字進行實體標註。
由於實體抽取會發現大量的新詞,先分詞不適用。這裏採用逐字標註的方法。逐字標註指的是爲每個字打上一個標籤。
4.3.2.3 特徵生成
- 字符特徵
- 詞典特徵:利用9個輔助醫學詞典,找出問題中的詞語表上對應的類別。
- 詞性特徵
4.3.2.4 實體抽取的實現
利用CRF++
4.3.3 結構化表示
使用正則表達式來抽取結構化的信息。
4.3.4 意圖分析
讓計算機分析應該用那一類答案去回答問題,兩個步驟,一是找出問題中的疑問句,二是利用疑問句中的關鍵詞分析需要的答案。
4.3.4.1 疑問句抽取
是一個分類問題,可以通過提取特徵利用分類器進行分類的方法來做。但是本系統通過疑問詞來提取疑問句,簡單而有效=-=。
4.3.4.2 問題分類
封閉式問題
指回答是或者否的問題,但基本上可以用一句話可以回答,但可能需要其他語句進行佐證。
開放式問題
爲了瞭解開放式問題框定的答案領域範圍,首先定義了答案中的子句類型,然後從疑問句中找到一些典型的詞語映射到子句類型中。
4.4 答案處理
4.4.1 答案實體抽取
4.4.1.1 實體標註集
在答案中,我們將注意力集中在覈心實體上,這包括疾病症狀、藥物、食物、檢查、治療方法、器官和指標。相比於問題的實體文累計,我們不在關注個人基本信息和數值信息,也不再關注器官描述信息和指標描述信息,我們的目的就是發現答案中最核心的話題詞,以方便後續更加深度的分析工作。(我覺得這個和我們想要的有點類似)
4.4.1.2 實體抽取標註的優化
在進行實體抽取標註時,我們使用了詞典信息。在下例中,所有被標註爲藥物(m)的實體,一部分是因爲在詞典中出現過,或者試題中的某個字在藥物實體中出現過,或者頓號之後很可能會跟隨一個實體(這句話不懂)。
但是我們忽略了一個重要的信息,那就是頓號意味着兩個實體有極大概率是具有相同的標籤的。類似的,還有“和”、“或者”等詞彙,我們稱之爲等價連接詞。
擴展:
- 標點符號頓號(、)的標籤爲dn?,其中?由緊鄰的上一個詞的標籤決定
- 非標點等價連接詞的標籤爲l?,其中?由緊鄰的上一個詞的標籤決定
4.4.2 最小完整語義切分
4.4.2.1 概念
最小完整語義指的是給一個段落重新斷句,將段落切分成很多個句子片段。最小完整語義切分的本質是根據一些通用的句式和高頻字詞用逗號和句號對段落進行標點,從而使得所有的一句好分割的字句長度達到最小,且都具有完整的語義。
4.4.2.2 實現
這是個序列標註問題,同樣使用CRF實現。
使用前導詞特徵和字符特徵。
4.4.3 片段分類
我們成最小完整語義切分之後以句號分割的子句爲片段。爲了能夠更好的匹配問題一圖,我們需要提前將片段進行分類。
4.4.3.1 分類集定義
4.4.3.2 特徵定義
- 實體
- 片段位置
- tf-idf值較高的詞語
4.4.3.3 分類方法
使用SVM模型分類,LibSVM工具。
4.5 標註數據存儲
4.5.1 存儲需求
4.5.1.1 問題
在問題處理後,可以得到實體標註文本,結構化表示文本,疑問句列表,疑問關鍵字列表,問題類型,要求答案類型等信息。
4.5.1.2 答案
在答案處理後,我們可以得到經過實體標註文本,語義切分片段列表,片段分類等信息。
4.5.1.3 實體
實體共現
在之後的檢索和摘要過程中需要用到實體共現的信息,所謂實體共現是指多個實體在一段文本中共同出現。