中醫症狀詞庫的研製 研究生 : 郭慧翔 指導教授 : 林迺衛博士 國立中正大學資訊工程研究所 摘要 中醫的診斷治療是以 辨證論治 的方式進行 中醫師會先根據望 聞 問 切四診收集病患的症狀及體徵資料, 再根據收集到的症狀及體徵資料進行詳盡地分析, 最後歸納出疾病的病因 病位 及病機, 此即為 辨證

Similar documents
(1) ( ) : (3), (12) (7) (10)

Microsoft Word - MP2018_Report_Chi _12Apr2012_.doc

南華大學數位論文

李天命的思考藝術

皮肤病防治.doc

性病防治

中国南北特色风味名菜 _一)

全唐诗24

509 (ii) (iii) (iv) (v) 200, , , , C 57

尿路感染防治.doc

Microsoft Word - Paper on PA (Chi)_ docx

全唐诗28

穨學前教育課程指引.PDF


眼病防治

中国南北特色风味名菜 _八)

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

緒 言 董 事 會 宣 佈, 為 能 更 具 效 率 調 配 本 集 團 內 的 資 金 有 效 降 低 集 團 的 對 外 貸 款, 並 促 進 本 集 團 內 公 司 間 的 結 算 服 務, 於 2016 年 9 月 30 日, 本 公 司 中 糧 財 務 與 管 理 公 司 訂 立 財 務

39898.indb

穨ecr2_c.PDF

電腦相關罪行跨部門工作小組-報告書

i

发展党员工作手册

i

<4D F736F F D20A4A4B0EAB371AB4FB3E65FA4A4A4E5AAA95F5F >



一、

-i-

Microsoft Word - 强迫性活动一览表.docx

Microsoft Word - Panel Paper on T&D-Chinese _as at __final_.doc

江苏宁沪高速公路股份有限公司.PDF

绝妙故事

榫 卯 是 什 麼? 何 時 開 始 應 用 於 建 築 中? 38 中 國 傳 統 建 築 的 屋 頂 有 哪 幾 種 形 式? 40 大 內 高 手 的 大 內 指 什 麼? 42 街 坊 四 鄰 的 坊 和 街 分 別 指 什 麼? 44 北 京 四 合 院 的 典 型 格 局 是 怎 樣 的

2. 我 沒 有 說 實 話, 因 為 我 的 鞋 子 其 實 是 [ 黑 色 / 藍 色 / 其 他 顏 色.]. 如 果 我 說 我 現 在 是 坐 著 的, 我 說 的 是 實 話 嗎? [ 我 說 的 對 還 是 不 對 ]? [ 等 對 方 回 答 ] 3. 這 是 [ 實 話 / 對 的

心理障碍防治(下).doc

Page i

穨_2_.PDF

14A 0.1%5% 14A 14A

(Chi)_.indb

<4D F736F F D203938BEC7A67EABD7B942B0CAC15AC075B3E6BF57A9DBA5CDC2B2B3B92DA5BFBD542E646F63>

捕捉儿童敏感期

世界名画及画家介绍(四).doc

I

樹 木 管 理 專 責 小 組 報 告 人 樹 共 融 綠 滿 家 園

Teaching kit_A4_part4.indd

目 录 院 领 导 职 责... 1 院 长 职 责... 1 医 疗 副 院 长 职 责... 1 教 学 副 院 长 职 责... 2 科 研 副 院 长 职 责... 2 后 勤 副 院 长 职 责... 3 主 管 南 院 区 副 院 长 职 责... 3 党 委 书 记 职 责... 4

~m~li~* ~ ± ~ 1Jz. IDfU Y:.. a~~.~.oor.~~b~.~fi~~p A Study of Developing a Mobile APP for Supporting the Chinese Medicine Pulse Diagnosis Based on Pul

(i) (ii) (iii) (iv) (v) (vi) (vii) (viii) (ix) (x) (xi) 60.99%39.01%

中医疗法(下).doc

群科課程綱要總體課程計畫書

II II

vi 黃 帝 內 經 即 學 即 用 別 做 反 自 然 的 事 053 成 年 人 應 該 斷 奶 055 吃 肉 吃 素 因 人 而 異 057 要 分 清 飢 和 餓 058 生 活 現 代 化 與 本 能 退 化 061 調 神 就 是 調 節 奏 063 想 冬 泳, 先 問 問 自 己


國立中山大學學位論文典藏.pdf

第 2 頁 (a) 擔 任 機 場 擴 建 統 籌 辦 總 監 的 首 席 政 府 工 程 師 職 位 第 3 點 ) ; (b) 擔 任 ( 機 場 擴 建 統 籌 辦 ) 的 首 長 級 丙 級 政 務 官 職 位 ; 以 及 (c) 擔 任 總 助 理 ( 機 場 擴 建 統 籌 辦 ) 的

cgn


untitled

南華大學數位論文

Microsoft Word - report final.doc

中医疗法(上).doc

香 港 舞 蹈 總 會    北 京 舞 蹈 學 院

(As at 28

_Chi.ps, page Preflight ( _Chi.indd )

九龍城區議會

Microsoft Word - EDB Panel Paper 2016 (Chi)_finalr

2016數位生活科技研討會論文格式說明

Microsoft Word - Entry-Level Occupational Competencies for TCM in Canada200910_ch _2_.doc

二零零六年一月二十三日會議

厨房小知识(四)

妇女更年期保健.doc

小儿传染病防治(上)

<4D F736F F D B875B9B5A448ADFBBADEB27AA740B77EA4E2A5555FA95EAED6A641ADD75F2E646F63>

女性青春期保健(下).doc

避孕知识(下).doc

孕妇饮食调养(下).doc

禽畜饲料配制技术(一).doc

中老年保健必读(十一).doc

怎样使孩子更加聪明健康(七).doc

i

马太亨利完整圣经注释—雅歌


建築物拆卸作業守則2004年

Practical Guide For Employment Of Foreign Domestic Helpers

國立中山大學學位論文典藏.PDF

(b) 3 (a) (b) 7 (a) (i) (ii) (iii) (iv) (v) (vi) (vii) 57

智力测试故事

Construction of Chinese pediatric standard database A Dissertation Submitted for the Master s Degree Candidate:linan Adviser:Prof. Han Xinmin Nanjing

01repc_gb.doc

商丘职业技术学院

奇闻怪录

Transcription:

國立中正大學 資訊工程研究所碩士論文 中醫症狀詞庫的研製 Design and Implementation of Traditional Chinese Medicine Symptoms Thesaurus 研究生 : 郭慧翔 指導教授 : 林迺衛博士 中華民國一百零二年八月

中醫症狀詞庫的研製 研究生 : 郭慧翔 指導教授 : 林迺衛博士 國立中正大學資訊工程研究所 摘要 中醫的診斷治療是以 辨證論治 的方式進行 中醫師會先根據望 聞 問 切四診收集病患的症狀及體徵資料, 再根據收集到的症狀及體徵資料進行詳盡地分析, 最後歸納出疾病的病因 病位 及病機, 此即為 辨證 中醫師最後根據辨證結果對病人進行適當的治療及用藥, 此即為 論治 我們希望研製一套中醫自動辨證系統, 做為中醫的研究平台 當我們開始研製系統時, 首先遇到了中醫症狀未標準化的困難, 因此在研製中醫自動辨證系統前, 應該先處理症狀標準化的問題 本研究建立了一套中醫症狀詞庫系統, 用來解決中醫症狀標準化的問題 我們除了使用 症狀字詞比對 的方式進行症狀標準化, 還增加了使用 關鍵字詞比對 的方式進行症狀標準化 如果原始症狀已經過標準化, 存在資料庫中, 系統可透過症狀字詞比對正確地查詢到對應的標準症狀 如果原始症狀尚未經過標準化, 不在資料庫中, 系統會先將原始症狀拆成一串關鍵字詞, 再透過關鍵字詞比對的方式, 查詢這些關鍵字詞的語義 最後系統依據這些關鍵字詞的語義, 查詢語義最接近的標準症狀 本研究顯示, 運用語義資訊, 可以明顯地提昇系統查詢標準症狀的正確率 ii

Design and Implementation of Traditional Chinese Medicine Symptoms Thesaurus Student:Hui-Hsiang Kuo Dr. Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University Abstract The diagnosis and therapy of traditional Chinese medicine follows the approach of syndrome differentiation and treatment. For syndrome differentiation, the doctor first gathers the symptoms and signs of patients through the four examinations: inspection, listening and smelling, inquiry, and palpation. The doctor then performs a comprehensive analysis of the symptoms and signs to identify the cause, location, and nature of the illness. Finally, the doctor determines the treatment according to the identified syndrome. We planned to develop an automatic syndrome differentiation system as a research platform for traditional Chinese medicine. However, we discovered that we first need to standardize the symptoms and signs before we develop an automatic syndrome differentiation system. This research develops a traditional Chinese medicine symptom thesaurus to solve the issue of the standardization of the symptoms and signs. In addition to string pattern matching of symptoms and signs, we also perform string pattern matching of keywords. If a symptom or sign description has been standardized and is in the symptom thesaurus, the system will map this symptom or sign description to its corresponding standardized symptom or sign. If a symptom or sign description has not been standardized and is not in the symptom thesaurus, the system will first split the symptom or sign description into a sequence of keywords. The system then performs string pattern matching of these keywords and enquires the semantics of these keywords. Finally, the system maps this symptom or sign description to a standardized symptom or sign with the closest semantics. This research demonstrates that applying sematic information can significantly improve the correctness of the mapping to the standardized symptom or sign. iii

誌謝 感謝迺衛老師兩年的教導, 老師除了在研究上給予許多幫助以及思考方向, 也傳授許多人生以及學習態度的想法, 更關心我們的學習狀況, 在老師身上學習到很多, 很高興在老師的幫助下順利完成這篇論文 謝謝葉明憲在中醫的領域給與許多指導, 讓我即使在缺乏中醫專業知識下, 還能夠順利的做研究, 完成論文, 醫師也時常分享許多研究方向以及一些有趣的科技新知, 讓我學習到與不同專業領域的人合作 感謝育欣同學 麒慶同學以及彥緒同學這兩年來給我的幫助, 不管是課業上, 平時的生活都受到你們的許多照顧, 很高興能夠一起來到同一個實驗室做研究 同時感謝建宏學長 宜泓學長以及實驗室的所有學長們, 給與我在課業上的 許多幫助, 讓我可以順利修完所有課程 也感謝玟伶學妹 淑晴學妹 志豪學弟 以及渝翔學弟, 雖然只有一年的相處, 平時生活上也受到你們許多照顧 最後要感謝我的家人們, 在我的研究所生涯給與我許多鼓勵及支持, 讓我完 成我的碩士學位 謝謝幫助過我以及給我鼓勵的所有人 iv

目錄 圖次... vii 表次... ix 第一章簡介... 1 1-1 研究動機... 1 1-2 研究目的... 2 1-3 相關研究... 2 1-4 研究貢獻... 3 第二章系統架構... 4 2-1 系統環境... 4 2-2 系統架構圖... 4 2-3 資料庫架構圖... 5 2-4 程式架構圖... 6 第三章系統設計... 7 3-1 原始症狀搜尋... 7 3-1-1 對應任意原始症狀到標準症狀... 8 3-1-2 對應標準症狀到同義原始症狀... 9 3-2 原始症狀對應表維護... 10 3-2-1 新增原始症狀... 11 3-2-2 修改原始症狀... 12 3-2-3 刪除原始症狀... 14 3-3 標準症狀對應表維護... 14 3-3-1 新增標準症狀... 15 3-3-2 修改標準症狀... 16 3-3-3 刪除標準症狀... 17 3-4 關鍵字詞對應表維護... 18 3-4-1 新增關鍵字詞... 18 3-4-2 修改關鍵字詞... 19 3-4-3 刪除關鍵字詞... 21 3-5 症狀語義網維護... 21 3-5-1 新增語義關係... 22 3-5-2 修改語義關係... 23 3-5-3 刪除語義關係... 23 第四章系統實作... 25 4-1 原始症狀搜尋... 25 4-2 原始症狀對應表維護... 32 4-3 標準症狀對應表維護... 33 v

4-3 關鍵字詞對應表維護... 33 4-4 症狀語義網維護... 34 第五章系統評估... 35 第六章結論與未來展望... 42 6-1 結論... 42 6-2 未來展望... 42 參考文獻... 43 vi

圖次 圖 1 系統架構圖... 4 圖 2 原始症狀搜尋頁面... 7 圖 3 匯出的 EXCEL 檔案格式... 8 圖 4 原始症狀搜尋標準症狀... 8 圖 5 原始症狀搜尋標準症狀結果... 9 圖 6 標準症狀搜尋同義原始症狀... 10 圖 7 標準症狀搜尋同義原始症狀結果... 10 圖 8 原始症狀對應表維護頁面... 10 圖 9 新增原始症狀... 11 圖 10 新增原始症狀... 11 圖 11 新增原始症狀前搜尋結果... 12 圖 12 新增原始症狀後搜尋結果... 12 圖 13 修改原始症狀前搜尋結果... 13 圖 14 修改原始症狀後搜尋結果... 13 圖 15 刪除原始症狀後搜尋結果... 14 圖 16 標準症狀對應表維護頁面... 15 圖 17 症狀類別按鈕... 15 圖 18 新增標準症狀... 15 圖 19 新增標準症狀前頁面... 16 圖 20 新增標準症狀後頁面... 16 圖 21 修改標準症狀... 16 圖 22 修改標準症狀前... 16 圖 23 修改標準症狀... 17 圖 24 修改標準症狀後結果... 17 圖 25 刪除標準症狀前... 17 圖 26 刪除標準症狀後結果... 18 圖 27 關鍵字詞對應表維護頁面... 18 圖 28 關鍵字詞詞類的按鈕... 18 圖 29 新增關鍵字詞... 19 圖 30 新增關鍵字詞前... 19 圖 31 新增關鍵字詞後結果... 19 圖 32 修改關鍵字詞前... 20 圖 33 修改關鍵字詞後... 20 圖 34 刪除關鍵字詞前... 21 圖 35 刪除關鍵字詞後... 21 vii

圖 36 症狀語義網維護頁面... 22 圖 37 關鍵字詞詞類的按鈕... 22 圖 38 新增語義關係... 22 圖 39 新增語義關係前... 23 圖 40 新增語義關係後... 23 圖 41 修改語義關係後... 23 圖 42 刪除語義關係前... 24 圖 43 刪除語義關係後... 24 圖 44 症狀語義網... 27 圖 45 標準關鍵字詞依詞類做分類... 29 圖 46 標準關鍵字詞對應之 症狀屬性... 30 viii

表次 表 1 症狀多詞一義... 2 表 2 症狀一詞多義... 2 表 3 關鍵字詞對應表... 26 表 4 症狀語義網... 28 表 5 標準關鍵字詞與詞類對應... 28 表 6 標準症狀對應表... 31 表 7 系統可搜尋到的症狀... 37 表 8 有提供建議標準症狀... 40 表 9 無提供建議標準症狀... 41 ix

x

第一章簡介 1-1 研究動機 疾病在中醫被稱為 證, 所謂 證 就是由一定的 病因 作用於一定的 病位, 而發生一系列動態的演變過程 [1] 中醫的診斷治療是以辨證論治的方式進行, 與西醫不同的是, 西醫會著重在疾病本身的症狀, 對其作治療 然而中醫會先根據四診後得到的症狀資料, 對症狀進行分析, 歸納出可能的原因, 即為 辨證, 再根據辨證結果對病人進行治療以及用藥, 即為 論治 在 臨證指南醫案 提到 : 醫道在乎識證, 立法, 用方, 此為三大關鍵 然三者之中, 識證為要緊 而在 中醫證候學 中則提到 : 通過四診所得的症 脈 舌象, 均是罹患疾病, 或病情變化的明證 ; 根據這些病變依據, 作出明確分析 診斷, 即是明證, 亦即 辯證 ; 以辨證為依據, 審因求治, 則是對證, 亦是 論治 過程 辨證的結果對於後面的治療影響非常大, 假如辨證的結果與實際情況完全相反, 而導致用藥完全不同, 病情不止無法好轉, 反而會加重 因此如何成功的辨證對於中醫診斷非常重要 我們長久以來一直希望研製一套中醫自動辨症系統, 用來提供中醫研究的平台, 然而當我們開始著手研製系統時, 首先遇到了中醫症狀未標準化的困難 在辨證的過程中, 根據四診所得的症狀資料, 就是影響辨證的關鍵因素 但是由於中醫的歷史發展長久, 大部份的古籍資料根據朝代的不同 地域氣候的不同 或是傳授的師傅不同, 對於症狀的用語 描述便會有所不同 因此目前的古籍資料對於症狀的描述以及意義解釋存在不一致的情形 我們若是想研製一套中醫自動辨症系統, 假使症狀存在不一致, 電腦將會無法區分或判斷差異性, 造成辨證的困難 因此症狀標準化為我們研製中醫自動辨症系統前, 首先必須做的事, 有了統一的標準化症狀後, 中醫自動辨症系統就能夠利用這些標準化症狀的資訊, 進行辯證, 進而提供處方治療 當我們著手要做症狀標準化時, 遭遇到兩個主要困難 : 症狀多詞一義 [2][3] 以及症狀一詞多義 [2][3] 症狀多詞一義為, 有多個不同的症狀描述, 但是它們所表達的症狀意義是完全相同的 如表 1 所示, 原始症狀 大便不利 大便艱澀 大便不通 都是表達大便有困難的涵義, 我們希望可以將這三個原始症狀標準化成標準症狀 大便不暢 1

原始症狀標準症狀大便不利大便艱澀大便不暢大便不通表 1 症狀多詞一義症狀一詞多義為一個症狀描述但是卻表達多個症狀意義 如表 2 所示, 原始症狀 二便不利 表達大便有困難以及小便有困難兩種涵義, 我們希望可以將這個原始症狀標準化成標準症狀 大便不暢 小便不暢 原始症狀標準症狀大便不暢二便不利小便不暢表 2 症狀一詞多義我們做症狀標準化最主要就是想讓症狀描述可以達到一詞一義以及一義一詞, 以提供中醫自動辨症系統不會因為症狀多詞一義以及症狀一詞多義的問題, 而在進行辯證時遇到困難 1-2 研究目的 本論文的研究目的就是研製一個中醫症狀詞庫系統 此系統能夠對應任意原始症狀到標準症狀, 也能夠對應標準症狀到同義原始症狀 利用此系統, 我們就能夠自動的進行症狀標準化, 減少人工進行標準化所花費的時間, 也可避免相同症狀被重複標準化成不同標準症狀, 盡可能達到症狀一詞一義以及一義一詞的結果 1-3 相關研究 中醫症狀標準化 在林劉育, 中醫症狀標準化與初探 [4] 的研究中, 是以人工方式將 中醫證候學 中的原始症狀以人工的方式進行症狀的標準化, 並且建立一套使用完整字詞比對的中醫症狀詞庫系統, 在此系統中, 只要是在資料庫已標準化之原始症狀, 都可以提供對應之標準症狀 但若是不在資料庫之原始症狀則無法提供對應之標準症狀, 也就無法自動進行症狀標準化 例如 : 大便不利 大便艱澀 這兩個原始症狀, 已經在資料庫有對應之標準症狀 大便不暢, 而 大便不通 不在資料庫中, 即使 大便不通 表達的意義與 大便不利 大便艱澀 完全相同, 我們還是無法在此系統找到對應之標準症狀 2

在李宜泓, 以近似字詞比對方法輔助中醫症狀標準化 [5] 的研究中, 根據林劉育的研究基礎, 他所建立的中醫症狀詞庫系統, 除了使用完整字詞比對來做症狀標準化, 還增加了使用近似字詞比對的方式來做症狀標準化 除了資料庫已標準化之原始症狀, 可以提供對應之標準症狀, 若是不在資料庫之原始症狀, 他的系統還會透過近似字詞比對的方法, 提供建議的標準症狀, 但是他的系統是利用字詞的相似程度做搜尋, 因此無法提供精確的標準症狀 例如 : 大便不通 這個原始症狀不在資料庫中, 使用他的系統做近似字詞比對會提供建議的標準症狀 大便不暢 大便不盡 與 大便不臭, 但是無法精確的選出標準症狀, 必須以人工方式做確認 1-4 研究貢獻 本研究根據林劉育以及李宜泓的研究基礎上, 建立了一套中醫症狀詞庫系統, 除了使用完整字詞比對來做症狀標準化, 還增加了使用關鍵字詞比對的方式來做症狀標準化 除了資料庫已標準化之原始症狀, 可以提供對應之標準症狀, 若是不在資料庫之原始症狀, 本研究之系統還會透過關鍵字詞比對的方法, 提供建議的標準症狀, 由於我們是將原始症狀拆成幾個關鍵字詞, 依據關鍵字詞的語義關係, 到我們的系統去搜尋相同語義關係的標準症狀, 因此提供建議的標準症狀是更能符合語義的標準症狀 例如 : 大便不通 這個原始症狀不在資料庫中, 在我們系統中會將這個原始症狀拆成 大便 不通 兩組關鍵字詞, 再根據這兩組關鍵字詞的語義關係, 搜尋到相同語義關係的標準症狀 大便不暢 另一個原始症狀 便難 即使與原始症狀 大便不通 完全不相似, 但是拆成 便 難 兩組關鍵字詞後, 這兩組關鍵字詞的語義關係所搜尋到相同語義關係的標準症狀也是為 大便不暢 因此即使字詞的相似程度不高, 但是具有相同語義關係, 我們的系統也能夠提供精確的標準症狀 3

第二章系統架構 2-1 系統環境 系統語言 Java 程式開發工具 Eclipse 伺服器 Tomcat7.0.8 介面開發工具 DreamWeaver 資料庫 MySql 版本管理器 GoogleCode 2-2 系統架構圖 我們在本論文中所提出之系統功能分為五部分 : 原始症狀對應表維護 關鍵字詞對應表維護 症狀語義網維護 標準症狀對應表維護以及原始症狀搜尋 資料庫儲存五個資料表 : 原始症狀對應表 關鍵字詞對應表 症狀語義網 標準症狀對應表以及未標準化原始症狀集 系統架構圖如圖 1 所示 圖 1 系統架構圖 4

原始症狀對應表記錄了原始症狀與標準症狀的對應關係 原始症狀對應表維護功能以新增 修改 刪除的方式來維護原始症狀對應表 關鍵字詞對應表記錄了關鍵字詞與標準關鍵字詞的對應關係 關鍵字詞對應表維護功能以新增 修改 刪除的方式來維護關鍵字詞對應表 症狀語義網記錄了標準關鍵字詞之間的語義關係 症狀語義網維護功能以新增 修改 刪除的方式來維護症狀語義網 標準症狀對應表記錄了標準症狀與標準關鍵字詞 ( 即階層式標準症狀 ) 的對應關係 標準症狀對應表維護功能以新增 修改 刪除的方式來維護標準症狀對應表 原始症狀搜尋使用原始症狀對應表作為搜尋依據, 找出已標準化之原始症狀 若是在原始症狀對應表搜尋不到的症狀, 會使用關鍵字詞對應表 症狀語義網以及標準症狀對應表來做關鍵字詞搜尋, 提供建議的標準症狀, 這些症狀將會存到未標準化原始症狀集, 使用者將利用原始症狀對應表維護功能來對未標準化原始症狀集的症狀做標準化, 並且新增到原始症狀對應表中 2-3 資料庫架構圖 thesaurus SymptomsTable id Symptoms standardizedsymptoms keywordtable id keyword standardizedkeyword semanticnetworktable id standardizedkeyword parentid class standardizedsymptomstable id standardizedsymptoms hierarchystandardizedsymptoms nonstandardizedsymptomstable id 5

nonstandardizedsymptoms StandardizedSymptoms 2-4 程式架構圖 symptomsmaintain.jsp symptomsmaintain.js symptomsmaintain.java symptomsmaintaindata.jsp nonstandardizedsymptoms.java keywordmaintain.jsp keywordmaintain.js keywordmaintain.java keywordmaintaindata.jsp semanticnetworkmaintain.jsp semanticnetworkmaintain.js semanticnetworkmaintain.java semanticnetworkmaintaindata.jsp standardizedsymptomsmaintain.jsp standardizedsymptomsmaintain.js standardizedsymptomsmaintain.java standardizedsymptomsmaintaindata.jsp symptomssearch.jsp symptomssearch.js symptomssearch.java Segmentation.java AttributeQuery.java KeywordAttributeClassification.java PossibleSymptoms.java 6

第三章系統設計 本系統分成五大功能, 原始症狀對應表維護 關鍵字詞對應表維護 症狀語 義網維護 標準症狀對應表維護以及原始症狀搜尋 3-1 原始症狀搜尋 原始症狀搜尋頁面如圖 2 所示 其主要功能分成兩個部分, 對應任意原始症狀到標準症狀與對應標準症狀到同義原始症狀 頁面左上方為連結到其他功能頁面之按鈕, 使用者可以透過這些按鈕在各個頁面功能作切換使用 頁面中的匯出檔案按鈕, 按下後可以將搜尋的結果匯出成 Excel 檔, 如圖 3 所示, 讓使用者做後續利用 圖 2 原始症狀搜尋頁面 7

圖 3 匯出的 Excel 檔案格式 3-1-1 對應任意原始症狀到標準症狀 如圖 4 所示, 使用者以原始症狀搜尋標準症狀時, 輸入原始症狀到系統的 原始症狀輸入區, 原始症狀之間以句號作分隔, 按下兩輸入區中間箭頭向右的按 鈕, 開始作搜尋 圖 4 原始症狀搜尋標準症狀 如圖 5 所示, 經過搜尋之後, 搜尋到的原始症狀以及對應的標準症狀會列 在各自的輸入區內 而搜尋不到的原始症狀, 系統將會使用關鍵字詞搜尋, 建議 可能的標準症狀 搜尋不到的原始症狀以及建議的標準症狀會列在各自的輸入區 8

內, 讓使用者參考 系統會儲存搜尋不到的原始症狀以及建議的標準症狀在資料 庫的未標準化原始症狀集, 之後在原始症狀維護功能中, 由使用者做標準化, 增 加更多已標準化症狀到我們的資料庫中 圖 5 原始症狀搜尋標準症狀結果 3-1-2 對應標準症狀到同義原始症狀 如圖 6 所示, 使用者以標準症狀搜尋同義原始症狀時, 輸入標準症狀到系統的標準症狀輸入區, 標準症狀之間以句號作分隔, 按下兩輸入區中間箭頭向左的按鈕, 開始作搜尋 如圖 7 所示, 經過搜尋之後, 系統會將所有包含此標準症狀的原始症狀列在各自的輸入區內, 讓使用者參考 9

圖 6 標準症狀搜尋同義原始症狀 圖 7 標準症狀搜尋同義原始症狀結果 3-2 原始症狀對應表維護 原始症狀對應表維護功能分成三個部分, 新增 修改 刪除的原始症狀對應表的原始症狀 頁面如圖 8 所示, 系統會列出先前儲存在未標準化原始症狀集的症狀在頁面下方, 讓使用者了解還有幾筆症狀未標準化, 並且標準化這些還未標準化原始症狀, 新增原始症狀到資料庫中 系統也提供使用者修改以及刪除原始症狀資料 讓使用者也能對已確認的原始症狀作維護 圖 8 原始症狀對應表維護頁面 10

3-2-1 新增原始症狀 如圖 9 所示, 系統會列出先前未標準化原始症狀在頁面下方, 使用者可以 選擇需要做標準化的症狀, 選定了症狀後, 系統會把此症狀的資料顯示在頁面上 的輸入區, 讓使用者做確認 圖 9 新增原始症狀 如圖 10 所示, 使用者若是對建議的標準症狀要做修改, 系統也提供標準症狀選單, 讓使用者可以新增標準症狀到輸入區中, 使用者也可以直接在標準症狀輸入區中做編輯 當使用者完成了此原始症狀的標準化, 按下新增按鈕, 就可以把此症狀新增到資料庫中 圖 10 新增原始症狀 11

以 二便不利 為例 當使用者還未新增 二便不利 到資料庫時, 我們以 二便不利 搜尋會得到 不存在資料庫, 如圖 11 所示 當使用者新增到資料庫後, 頁面上的未確認症狀不會再出現 二便不利 症狀, 表示使用者已經確認並新增症狀到資料庫中 當我們再次以 二便不利 搜尋會得到標準症狀 小便不暢 大便不暢, 如圖 12 所示 圖 11 新增原始症狀前搜尋結果 圖 12 新增原始症狀後搜尋結果 3-2-2 修改原始症狀 使用者可以在此頁面中的輸入區搜尋原始症狀, 搜尋方式與原始症狀搜尋頁 面中的搜尋到的原始症狀功能相同 搜尋結果會列在此頁面的輸入區, 使用者可 12

以使用我們提供的選單或是在輸入區修改對應的標準症狀 按下修改按鈕, 就可以把修改後的標準症狀更新到資料庫中 以 小溲赤少 為例 當使用者搜尋 小溲赤少, 會得到標準症狀 小便色棕 小便量少, 如圖 13 所示 假設我們修改其標準症狀為 小便量少 小便色紅 當我們修改完成後, 再次搜尋 小溲赤少, 會得到修改後的標準症狀 小便量少 小便色紅, 如圖 14 所示 圖 13 修改原始症狀前搜尋結果 圖 14 修改原始症狀後搜尋結果 13

3-2-3 刪除原始症狀 使用者若是需要刪除原始症狀資料, 可以在輸入區輸入一條症狀, 按下刪除 按鈕, 就可以將此原始症狀資料從資料庫中刪除 以 小溲赤少 為例 當使用者搜尋 小溲赤少, 會得到標準症狀 小便色棕 小便量少, 如圖 13 所示, 代表此原始症狀存在於資料庫中 當我們刪除此症狀後, 再次搜尋 小溲赤少, 會得到 不存在資料庫, 如圖 15 所示, 代表此原始症狀目前已經不存在於資料庫中 圖 15 刪除原始症狀後搜尋結果 3-3 標準症狀對應表維護 標準症狀對應表維護頁面如圖 16 所示, 其功能分成三個部分, 新增 修改 刪除資料庫的標準症狀以及階層式標準症狀 在此頁面上方按鈕為各個症狀類別按鈕, 按下某一症狀類別按鈕後, 會列出所有與此症狀類別相關的標準症狀以及對應之階層式標準症狀 因為目前資料庫中的標準症狀, 並無法確定包含所有的標準症狀, 所以使用者可以透過新增 修改 刪除功能, 對標準症狀作維護 14

圖 16 標準症狀對應表維護頁面 3-3-1 新增標準症狀 頁面上方列有症狀類別的按鈕, 如圖 17 所示, 使用者可以依照類別查看相關類別有哪些標準症狀, 若是使用者想要新增一筆標準症狀到資料庫中, 使用者只需要在頁面上的文字輸入區, 分別輸入欲新增之標準症狀以及對應的階層式標準症狀, 如圖 18, 按下新增按鈕, 就可以把此標準症狀新增到資料庫中, 新增後的標準症狀會顯示在頁面上 圖 17 症狀類別按鈕 圖 18 新增標準症狀 假設資料庫中無標準症狀 矢氣味香 與對應之階層式標準症狀 排泄物 : 矢氣 : 氣味 : 香, 我們在未新增前, 頁面並無此標準症狀資料, 如圖 19 所示 15

新增完成後, 頁面出現了剛才增加的症狀資料, 如圖 20 所示 圖 19 新增標準症狀前頁面 圖 20 新增標準症狀後頁面 3-3-2 修改標準症狀 使用者可以在頁面上選擇欲修改症狀, 選定了症狀後, 系統會把此症狀的資 料列在頁面上的文字輸入區, 如圖 21 所示, 讓使用者做修改, 使用者修改完後, 按下修改按鈕, 就可以把修改後的標準症狀資料更新到資料庫中 圖 21 修改標準症狀 如圖 22 所示, 假設修改前的標準症狀 矢氣味香 對應之階層式標準症狀為 排泄物 : 矢氣 : 氣味 : 香, 我們欲修改為 排泄物 : 矢氣 : 氣味 : 不臭, 如圖 23 所示, 在文字區做修改 修改完成後, 頁面顯示標準症狀 矢氣味香 對應之階層式標準症狀為 排泄物 : 矢氣 : 氣味 : 不臭, 如圖 24 所示 圖 22 修改標準症狀前 16

圖 23 修改標準症狀 圖 24 修改標準症狀後結果 3-3-3 刪除標準症狀 使用者若是需要刪除標準症狀資料, 只要在頁面上選定此症狀, 按下刪除按 鈕, 如圖 25 所示, 就可以將此標準症狀從資料庫中刪除 刪除後如圖 26 所示, 此標準症狀不顯示於頁面上 圖 25 刪除標準症狀前 17

圖 26 刪除標準症狀後結果 3-4 關鍵字詞對應表維護 關鍵字詞對應表維護頁面如圖 27 所示, 其功能分成三個部分, 新增 修改 刪除資料庫的關鍵字詞 在此頁面, 會列出所有儲存在資料庫的關鍵字詞以及對應之標準關鍵字詞 因為目前資料庫中的關鍵字詞, 無法包含所有可能的關鍵字詞, 所以使用者可以透過此頁面進行關鍵字詞的變更 圖 27 關鍵字詞對應表維護頁面 3-4-1 新增關鍵字詞 頁面上方列有關鍵字詞詞類的按鈕, 如圖 28 所示, 使用者可以依照關鍵字詞的詞類查看相關詞類有哪些關鍵字詞, 若是使用者想要新增一筆關鍵字詞到資料庫中, 使用者只需要在頁面上的文字輸入區, 分別輸入欲新增之關鍵字詞以及對應的標準關鍵字詞, 如圖 29, 按下新增按鈕, 就可以把此關鍵字詞新增到資料庫中, 新增後的關鍵字詞會顯示在頁面上 圖 28 關鍵字詞詞類的按鈕 18

圖 29 新增關鍵字詞 假設資料庫中無原始關鍵字詞 糞 與對應之標準關鍵字詞 大便, 我們 在未新增前, 頁面並無此標準症狀資料, 如圖 30 所示 新增完成後, 頁面出現 了剛才增加的症狀資料, 如圖 31 所示 圖 30 新增關鍵字詞前 圖 31 新增關鍵字詞後結果 3-4-2 修改關鍵字詞 使用者可以在頁面上選擇欲修改的關鍵字詞, 選定後, 系統會把此關鍵字詞 的資料列在頁面上的文字輸入區, 如圖 32, 讓使用者做修改, 使用者修改完後, 19

按下修改按鈕, 就可以把修改後的關鍵字詞資料更新到資料庫中 圖 32 修改關鍵字詞前 如圖 32 所示, 假設修改前的原始關鍵字詞 尿 對應之標準關鍵字詞為 小 便, 我們欲修改原始關鍵字詞為 尿液 修改完成後, 頁面顯示標準症狀 尿 液 對應之標準關鍵字詞為 小便, 如圖 33 所示 圖 33 修改關鍵字詞後 20

3-4-3 刪除關鍵字詞 使用者若是需要刪除關鍵字詞資料, 只要在頁面上選定此關鍵字詞, 按下刪 除按鈕, 如圖 34, 就可以將此關鍵字詞從資料庫中刪除 刪除後如圖 35, 此關 鍵字詞不再顯示於頁面上 圖 34 刪除關鍵字詞前 圖 35 刪除關鍵字詞後 3-5 症狀語義網維護 症狀語義網維護頁面如圖 36 所示, 其功能分成三個部分, 新增 修改 刪 除資料庫的語義關係 在此頁面, 會列出所有儲存在資料庫的語義關係 因為目 21

前資料庫中的語義關係, 沒有包含所有的語義關係, 所以使用者可以透過此頁面 進行語義關係的變更 圖 36 症狀語義網維護頁面 3-5-1 新增語義關係 頁面上方列有關鍵字詞詞類的按鈕, 如圖 37 所示, 使用者可以依照關鍵字詞的詞類查看相關詞類有哪些語義關係, 若是使用者想要新增一筆語義關係到資料庫中, 使用者只需要在頁面上的文字輸入區, 分別輸入欲新增之語義關係資料, 如圖 38, 按下新增按鈕, 就可以把此語義關係新增到資料庫中, 新增後的語義關係會顯示在頁面上 圖 37 關鍵字詞詞類的按鈕 圖 38 新增語義關係 假設資料庫中並沒有與 速度 相關的語義關係, 我們在未新增前, 頁面並 無此語義關係資料, 如圖 39 所示, 我們增加一筆關鍵字詞為 速度 的語義關 22

係資料, 它在語義關係中屬於 症狀屬性 這個詞類, 在資料庫中以 property 儲存, 它為 症狀類別 小便 下的一個屬性, 所以在語義網中有一父親節點 小便, 在資料庫中以 Parent Id 為 1 儲存 新增完成後, 頁面出現了剛才增加的語義關係資料, 如圖 40 所示 圖 39 新增語義關係前 圖 40 新增語義關係後 3-5-2 修改語義關係 使用者可以在頁面上選擇欲修改的語義關係資料, 選定後, 系統會把此語義 關係資料列在頁面上的文字輸入區, 讓使用者做修改, 使用者修改完後, 按下修 改按鈕, 就可以把修改後的關鍵字詞資料更新到資料庫中 如圖 40 所示, 假設修改前 速度 的 Parent Id 為 1, 我們欲修改為 Parent Id 為 1,2, 表示它為 症狀類別 小便 及 大便 下的一個屬性 修改完 成後, 頁面顯示 速度 的 Parent Id 為 1,2, 如圖 41 所示 圖 41 修改語義關係後 3-5-3 刪除語義關係 使用者若是需要刪除語義關係資料, 只要在頁面上選定此語義關係資料, 按 23

下刪除按鈕, 圖 42, 就可以將此語義關係資料從資料庫中刪除 刪除後如圖 43, 此語義關係資料不再顯示於頁面上 圖 42 刪除語義關係前 圖 43 刪除語義關係後 24

第四章系統實作 4-1 原始症狀搜尋 symptomssearch.jsp symptomssearch.jsp 為原始症狀搜尋前端頁面, 系統將使用者輸入之症狀, 透過 symptomssearch.js, 將資料傳到 symptomssearch.java 中作後端的處理 symptomssearch.js symptomssearch.js 為原始症狀搜尋之 JavaScript 程式, 用來接收使用者輸入 之症狀, 並傳送到 symptomssearch.java 處理, 以及接收 symptomssearch.java 回 傳的資料, 並將其傳到 symptomssearch.jsp, 顯示查詢結果給使用者了解 symptomssearch.java symptomssearch.java 為原始症狀搜尋之後端程式, 包含四個函式, 用來實 作原始症狀搜尋的四個主要功能 String ExportToExcel(String a, String b) 為匯出檔案功能之主函式 String SymptomsSearch_OriToStd(String original_text) 為可搜尋到的原始症 狀中, 對應任意原始症狀到標準症狀功能的函式, 使用完整字詞比對 [6][7][8] 作 搜尋 函式 String SymptomsSearch_StdToOri(String test_text) 為可搜尋到的原始症狀中, 對應標準症狀到同義原始症狀功能的函式 函式 String SymptomsSearch_keyword(String OriginalSymptomsList) 為未搜尋到的原始症狀中, 關鍵字詞搜尋功能之主函式 參數 OriginalSymptomsList 為多個原始症狀字串, 以句號作為症狀之間的分隔 ( 例 : 小便大便痛 尿赤 ) 函式結束後回傳所有原始症狀和建議的標準症狀 此函式使用了下列 4 個 Class 中的函式 Class : Segmentation 中的 OutputSegmentationSymptoms() 函式, 主要用來做為原 始症狀的斷詞 KeywordAttributeClassification 中的 KeywordAttributeClassification() GetObjectList() GetValueList() 函式, 主要用來作為關鍵字詞的標準化 以及關鍵字詞的詞類的分類 25

AttributeQuery 中的 ValueAttributeQuery() 和 ObjectAttributeQuery() 函式, 主要用來查詢詞類為 症狀類別 與 症狀屬性值 的關鍵字詞, 其所相對應的 症狀屬性 PossibleSymptoms 中的 PossibleSymptomsQuery() 函式, 主要用來找出所有可能的標準症狀 Class 介紹 : Segmentation.java 我們需要在原始症狀中找出一些特定的關鍵字詞, 作為搜尋的基準, 因此我們必須對原始症狀做斷詞, 來找出這些關鍵字詞 我們在資料庫中建立了關鍵字詞對應表, 用來作為原始症狀斷詞的依據 表 3 為關鍵字詞對應表, 關鍵字詞欄位為我們所整理出的症狀關鍵字詞, 其中有包含許多同義字詞 標準關鍵字詞欄位把所有同義詞都統一對應為標準化的關鍵字詞 原始關鍵字詞 標準關鍵字詞 大便 大便 小便 小便 臭 臭 不利 不暢 表 3 關鍵字詞對應表我們使用長詞優先法來對原始症狀進行斷詞 長詞優先法就是在進行斷詞時, 使用資料庫中長度最長的原始關鍵字詞作比對 [9] 長詞優先法分成兩種比對方式, 正向長詞優先法以及反向長詞優先法 本系統使用正向長詞優先法, 即我們會從原始症狀的第一個字開始對資料庫的原始關鍵字詞作比對, 逐字往後做比對, 直到找出最長的關鍵字詞, 之後再從下一個字開始做比對, 直到症狀的句尾為止 假如原始症狀為 大便不通, 本系統將會斷出 大便 不通 雖然 在資料庫中也有 大 便 這兩個關鍵字詞, 但是因為 大便 的長度較長, 因此成為斷詞的優先選擇 OutputSegmentationSymptoms(String OriginalSymptoms) 26

主函式 SymptomsSearch_keyword() 會呼叫此函式來作斷詞 參數 OriginalSymptoms 為單一原始症狀字串 ( 例 : 小便大便痛 ) 函式結 束後回傳一個斷詞後字串 SplitSymptoms( 例 : 小便 - 大便 - 痛 ) KeywordAttributeClassification.java 在原始症狀做完斷詞後, 我們再根據關鍵字詞對應表, 把關鍵字詞作標準化 因為同義字即代表著相同的概念, 所以我們只需用一個標準關鍵字詞就能代表這個概念, 用來作為之後搜尋的基準 關鍵字詞若為 大便 尿 臭 不利, 本系統將會標準化成 大便 小便 臭 不暢 因為語義網路 [10] 能夠表達出概念與概念間的語義關係, 我們希望能夠建立一個中醫症狀的語義網路, 使得症狀不只是文字的描述, 而是包含了語義關係 我們先前在以人工方式做標準化時, 整理出一套完整的階層式標準症狀資料, 但由於其中有些症狀定義模糊 或是定義相近, 因此我們再做一次的整理, 減少了一些症狀, 使症狀較簡潔清楚 我們再利用階層式標準症狀的特性, 建立語義網路 我們透過階層式標準化症狀, 將單一症狀分為 症狀類別 症狀屬性 與 症狀屬性值 的概念, 我們很清楚可以觀察到, 它們有包含關係 症狀類別 ( 例 : 小便 大便 ) 包含了許多不同的 症狀屬性 ( 例 : 氣味 顏色 ), 有些相同, 有些相異, 而 症狀屬性 又包含了許多不同的 症狀屬性值 ( 例 : 臭 黃 ) 我們只要利用少許的關鍵字詞, 就能透過它們所形成的語義關係, 找出所有可能的標準化症狀 只要這個症狀的語義網路越完整, 我們系統所能找到的標準症狀將會越精確 如圖 44, 為一個症狀語義網 圖 44 症狀語義網 27

表 4 為在資料庫中的症狀語義網路的儲存方式 每項標準關鍵字詞都有一個 id 代表著關鍵字詞在語義網路中的位置 Parent_id 為標準關鍵字詞的父親節點 id, 透過 Parent_id 的建立, 我們可以建立起各個關鍵字詞之間的語義關係, 形成語義網路 詞類是用來定義標準關鍵字詞的詞類 id 標準關鍵字詞 Parent_id 詞類 1 小便 0 症狀類別 4 氣味 1,2 症狀屬性 8 臭 4 症狀屬性值 表 4 症狀語義網 每個標準關鍵字詞即代表著一個概念, 每個標準關鍵字詞都有其代表的詞類 例如 : 標準關鍵字詞 臭 在我們的症狀語義網路中, 有 症狀屬性值 的詞類, 其為 症狀屬性 的詞類下之其中一個值 表 5 為標準關鍵字詞與詞類對應, 詞類欄位為每個標準關鍵字詞所對應之詞類 標準關鍵字詞 詞類 大便 症狀類別 小便 症狀類別 臭 症狀屬性值 不暢 症狀屬性值 表 5 標準關鍵字詞與詞類對應我們系統會根據標準關鍵字詞與詞類之對應, 將標準關鍵字詞作詞類的分類, 然後將相同詞類的標準關鍵字詞儲存在一起 圖 45 為標準關鍵字詞根據相同詞類作分類之示意圖 28

症狀類別 大便 症狀屬性值 臭 小便 不暢 圖 45 標準關鍵字詞依詞類做分類 QueryKeywordAttribute(String SplitSymptoms) 函式 KeywordAttributeClassification () 會呼叫此函式, 用來做關鍵字標準化及關鍵字詞之詞類查詢 參數 SplitSymptoms 為斷詞後原始症狀字串 ( 例 : 小便 - 大便 - 痛 ) 函式結束後會將標準關鍵字詞及其對應之詞類資料儲存於 StandardKeywordAndAttributeMapping 中, 讓 KeywordAttributeClassification () 函式使用 KeywordAttributeClassification(String SplitSymptoms) 主函式 SymptomsSearch_keyword() 會呼叫此函式, 讓關鍵字詞作詞類的分類 此函數會呼叫 QueryKeywordAttribute() 函數, 作關鍵字詞標準化及關鍵字詞之詞類查詢 再利用 StandardKeywordAndAttributeMapping 中的關鍵字詞與其對應詞類, 把相同詞類的關鍵字詞儲存於 List object 與 attribute_value 中讓 GetValueList() 以及 GetObjectList() 函式作使用 參數 SplitSymptoms 為斷詞後原始症狀字串 ( 例 : 小便 - 大便 - 痛 ), 作為呼叫 QueryKeywordAttribute() 的參數使用 GetValueList() 主函式 SymptomsSearch_keyword() 會呼叫此函式, 取得屬於 症狀屬性值 詞類的關鍵字詞 GetObjectList() 主函式 SymptomsSearch_keyword() 會呼叫此函式, 取得屬於 症狀類別 詞類的關鍵字詞 AttributeQuery.java 因為在我們的症狀語義網路中, 分為 症狀類別 症狀屬性 及 症狀 29

屬性值 三種詞類, 每種 症狀類別 包含著不同的 症狀屬性, 而各種的 症狀屬性 又包含不同的 症狀屬性值, 因此我們想要利用此想法, 在此一症狀所包含的關鍵字詞中, 找出所有可能的症狀組合 我們將症狀中有包含 症狀屬性值 的關鍵字詞, 找出其為何種 症狀屬性 例如 : 臭 屬於 氣味 這個 症狀屬性 的一個 症狀屬性值 之後我們再找出此一症狀中所有 症狀類別 所有包含之 症狀屬性 是否有包含 症狀屬性值 所對應之 症狀屬性 若有某個 症狀類別 包含之 症狀屬性, 有 症狀屬性值 所對應之 症狀屬性, 代表它們在我們的症狀語義網路中有語義關係, 我們有機會找出其所代表的標準症狀, 如無, 則代表它們在我們的症狀語義網路中是無關係存在, 標準症狀也就不存在 我們系統會根據資料庫中的症狀語義網, 找出屬於 症狀屬性值 的關鍵字詞所對應之 症狀屬性值, 以及找出屬於 症狀類別 的關鍵字詞包含之 症狀屬性值 以表 4 症狀語義網中的症狀語義網為例, 症狀屬性值 的關鍵字詞所對應之 症狀屬性 即是與關鍵字詞之 Parent_id 相同的 id 之關鍵字詞資料 而 症狀類別 的關鍵字詞包含之 症狀屬性 即包含與關鍵字詞之 id 相同 Parent_id 之關鍵字詞資料 圖 46 為標準關鍵字詞對應之 症狀屬性 示意圖 obje ct 屬性 值 圖 46 標準關鍵字詞對應之 症狀屬性 ValueAttributeQuery(LinkedList<String> attribute_value) 主函式 SymptomsSearch_keyword() 會呼叫此函式, 找出所有詞類為 症狀屬性值 的關鍵字詞是屬於哪一種 症狀屬性 參數 attribute_value 是詞類為 症狀屬性值 的所有關鍵字詞之 List 函式結束後回傳一個包含關鍵字詞與其對應的 症狀屬性值 的 List AttributeAndValueList ObjectAttributeQuery(LinkedList<String> object) 30

主函式 SymptomsSearch_keyword() 會呼叫此函式, 找出所有詞類為 症狀類別 的關鍵字詞有哪些 症狀屬性 參數 object 為詞類為 症狀類別 的所有關鍵字詞之 List 函式結束後回傳一個包含關鍵字詞與其包含的所有 症狀屬性 之 List ObgectAndAttributeList PossibleSymptoms.java 在做完關鍵字詞的 症狀屬性 的對應後, 會找出所有存在症狀語義網路關係中的關鍵字詞組合, 我們利用這些組合, 在資料庫搜尋相符的標準症狀 若有, 代表我們在資料庫已有定義此一標準症狀, 它即為此一症狀中, 有可能的一個標準症狀 若無, 代表我們在資料庫並無定義此一標準症狀, 有可能是因為此一症狀實際上是不存在的, 或是我們沒有定義到, 我們將在後續請使用者做修正 假設關鍵字詞組合為 小便 氣味 臭, 我們根據資料庫中的標 準症狀對應表, 如表 6, 找出此一關鍵字詞組合所對應之標準症狀為 小便味臭 我們依序從前面所找出的關鍵字詞組合, 找出此一症狀所有可能的標準症狀 標準症狀 階層式標準症狀 大便味臭 大便 : 氣味 : 臭 小便味臭 小便 : 氣味 : 臭 大便不暢 大便 : 狀態 : 不暢 小便不暢 小便 : 狀態 : 不暢 表 6 標準症狀對應表 PossibleSymptomsList(List<List<String>> AttributeAndValueList, List<List<String>> ObgectAndAttributeList) 函式 PossibleSymptomsQuery() 會呼叫此函數, 用來組合出所有可能的症狀之關鍵字詞, 搜尋可能的標準症狀 參數 AttributeAndValueList 以及 ObgectAndAttributeList 為函式 ValueAttributeQuery() 以及 ObjectAttributeQuery() 所產生之 List 31

PossibleSymptomsQuery(List<List<String>> AttributeAndValueList, List<List<String>> ObgectAndAttributeList) 主函式 SymptomsSearch_keyword() 會呼叫此函式, 查詢所有可能的標準症狀 此函數會呼叫 PossibleSymptomsList() 函式, 用來組合出所有可能的症狀之關鍵字詞, 搜尋可能的標準化症狀 參數 AttributeAndValueList 以及 ObgectAndAttributeList 為函式是用來作為呼叫 PossibleSymptomsList() 的參數使用 4-2 原始症狀對應表維護 symptomsmaintain.jsp symptomsmaintain.jsp 為原始症狀對應表維護前端頁面, 所有原始症狀對應表維護功能運作是透過 symptomsmaintain.js, 將欲處理的資料傳到 symptomssearch.java 中作後端的處理 symptomsmaintain.js symptomsmaintain.js 為原始症狀對應表維護之 JavaScript 程式, 用來接收使用者欲處理的資料, 傳送到 symptomsmaintain.java 處理, 以及接收 symptomssearch.java 回傳的資料, 並將處理結果傳到 symptomsmaintain.jsp, 讓使用者了解 symptomsmaintain.java String AddNewSymptoms(String a, String b) 為新增原始症狀功能函式 String ModifiedSymptoms(String a, String b) 為修改原始症狀功能函式 String DeleteSymptoms(String a, String b) 為刪除原始症狀功能函式 symptomsmaintaindata.jsp symptomsmaintaindata.jsp 是用來提供製作 symptomsmaintain.jsp 裡的動態症狀類別選單所需的選單值資料 nonstandardizedsymptoms.java nonstandardizedsymptoms.java 是 symptomsmaintain.jsp 頁面用來顯示未標 準化化原始症狀集的一個類別程式 32

4-3 標準症狀對應表維護 standardizedsymptomsmaintain.jsp standardizedsymptomsmaintain.jsp 為標準症狀對應表維護前端頁面, 所有為標準症狀對應表維護功能運作是透過 standardizedsymptomsmaintain.js, 將欲處理的資料傳到 standardizedsymptomsmaintain.java 中作後端的處理 standardizedsymptomsmaintain.js standardizedsymptomsmaintain.js 為為標準症狀對應表維護之 JavaScript 程式, 用來接收使用者欲處理的資料, 傳送到 standardizedsymptomsmaintain.java 處理, 以及接收 standardizedsymptomsmaintain.java 回傳的資料, 並將處理結果傳到 standardizedsymptomsmaintain.jsp, 讓使用者了解 standardizedsymptomsmaintain.java String AddNewstandardizedSymptoms (String a, String b) 為新增標準症狀功能函式 String ModifiedstandardizedSymptoms (String a, String b) 為修改標準症狀功能函式 String DeletestandardizedSymptoms (String a, String b) 為刪除標準症狀功能函式 standardizedsymptomsmaintaindata.jsp standardizedsymptomsmaintaindata.jsp 是用來提供製作 standardizedsymptomsmaintain.jsp 裡的動態顯示不同症狀類別的標準症狀所需的資料 4-3 關鍵字詞對應表維護 keywordmaintain.jsp keywordmaintain.jsp 為關鍵字詞對應表維護前端頁面, 所有關鍵字詞對應表維護功能運作是透過 keywordmaintain.js, 將欲處理的資料傳到 keywordmaintain.java 中作後端的處理 keywordmaintain.js keywordmaintain.js 為關鍵字詞對應表之 JavaScript 程式, 用來接收使用者欲 處理的資料, 傳送到 keywordmaintain.java 處理, 以及接收 keywordmaintain.java 33

回傳的資料, 並將處理結果傳到 keywordmaintain.jsp, 讓使用者了解 keywordmaintain.java String AddNewKeyword (String a, String b) 為新增關鍵字詞功能函式 String ModifiedKeyword (String a, String b) 為修改關鍵字詞功能函式 String DeleteKeyword (String a, String b) 為刪除關鍵字詞功能函式 keywordmaintaindata.jsp keywordmaintaindata.jsp 是用來提供製作 keywordmaintain.jsp 裡的動態顯示 不同詞類的關鍵字詞所需的資料 4-4 症狀語義網維護 semanticnetworkmaintain.jsp semanticnetworkmaintain.jsp 為症狀語義網維護前端頁面, 所有症狀語義網維護功能運作是透過 semanticnetworkmaintain.js, 將欲處理的資料傳到 semanticnetworkmaintain.java 中作後端的處理 semanticnetworkmaintain.js semanticnetworkmaintain.js 為症狀語義網維護之 JavaScript 程式, 用來接收使用者欲處理的資料, 傳送到 semanticnetworkmaintain.java 處理, 以及接收 semanticnetworkmaintain.java 回傳的資料, 並將處理結果傳到 semanticnetworkmaintain.jsp, 讓使用者了解 semanticnetworkmaintain.java String AddNewSemanticRelation (String a, String b) 為新增語義關係功能函式 String ModifiedSemanticRelation (String a, String b) 為修改語義關係功能函式 String DeleteSemanticRelation (String a, String b) 為刪除語義關係功能函式 semanticnetworkmaintaindata.jsp semanticnetworkmaintaindata.jsp 是用來提供製作 semanticnetworkmaintain.jsp 裡的動態顯示不同詞類的語義關係所需的資料 34

第五章系統評估 我們根據 中醫證候學, 在資料庫中建立了 1487 個已標準化的原始症狀 中醫症狀鑑別診斷學 [11] 總共包含 500 個症狀, 我們選用其中 190 個相關症狀作測試 本系統可搜尋到的症狀共有 66 個, 如表 7 所示, 比例為 35%, 而未搜尋到的症狀共有 124 個, 比例為 65% 在未搜尋到的 124 個症狀中, 透過關鍵字詞搜尋, 有 75 個症狀有提供建議標準症狀, 如表 8 所示, 比例為 60%, 有 49 個症狀無提供建議標準症狀, 如表 9 所示, 比例為 40% 在有提供建議標準症狀的 75 個症狀中, 有 66 個症狀建議正確的標準症狀, 比例為 88%, 有 9 個症狀建議錯誤的標準症狀, 比例為 12% 本系統以 中醫症狀鑑別診斷學 的 190 個相關症狀作測試, 提供正確標 準症狀 66 個, 建議正確標準症狀 66 個, 共 132 個, 正確率為 69% 我們在未使用關鍵字詞搜尋時, 正確率為 35%, 但是利用關鍵字詞語意資訊 作搜尋, 我們的正確率提升到 69%, 提升了原始症狀搜尋能力 原始症狀惡風惡寒畏寒惡寒發熱寒熱往來但熱不寒潮熱無汗自汗盜汗汗出偏沮 標準症狀畏風惡寒畏寒惡寒 發熱寒熱往來發熱潮熱無汗自汗盜汗右半身汗出 左半身汗出 35

36 疲乏神疲發狂發狂神昏恍惚譫語譫語煩躁煩躁健忘健忘少氣呼吸微弱頭脹頭脹頭重頭重頭痛頭痛偏頭痛偏頭痛鬚髮早白鬚髮早白面色黧黑面色黧黑面色萎黃面色萎黃面浮面浮腫口苦口苦口甜口甜口酸口酸口膩口膩口臭口臭口淡無味口淡口渴口渴口角流涎口角流涎唇裂唇裂唇青紫唇色紫牙痛牙齒痛項強頸項僵背痛背痛背冷背冷腰脊痛腰痛腰痠腰酸喉中痰鳴呼吸痰鳴咳嗽咳嗽

37 咳血咳血氣喘呼吸急促腹瀉大便泄瀉里急後重大便墜重 大便急促大便秘結大便秘結小便黃赤小便色棕小便清長小便色清 小便量多小便不利小便不暢小便頻數小便次多小便失禁小便失禁遺尿小便失禁尿血小便挾血脫髮鬚髮脫落耳聾耳聾耳鳴耳鳴耳痛耳痛鼻塞鼻塞鼻乾鼻乾鼻衄鼻衄嗜睡嗜睡多夢多夢不寐難眠表 7 系統可搜尋到的症狀原始症狀標準症狀口眼喎斜口角歪斜口中生瘡口瘡口噤口噤大便艱難大便不暢大便失禁大便失禁大便下血大便挾血大便膿血大便挾膿 大便挾血

38 小便不通小便不暢尿後餘瀝小便不盡小便挾精小便挾精小便渾濁小便挾膿小便疼痛小便疼痛絕汗少汗 自汗心胸汗出心胸汗出 自汗善驚心驚手足汗出手足汗出 自汗牙齒焦黑牙齒乾 牙齒黑牙齒痠弱牙齒酸牙齦出血牙齦出血牙齦萎縮牙齦萎縮牙齦腐爛牙齦瘡赤白帶白帶色棕黃帶白帶色黃喜太息多嘆耳衄耳內出血耳內長肉耳內長肉耳內流膿耳內流膿耳癢耳癢戰汗自汗腋汗自汗尾閭痛尾閭痛夜間多尿夜時小便 小便次多 小便量多暈厥昏迷肩痛肩痛咳痰咳痰背熱背熱 發熱面色白面色白面色青面色青面色紅面色紅頭面紅腫面色紅 面腫脹

39 顏面抽搐面抽搐唇腫唇腫囗唇濕爛唇瘡唇顫動唇顫善恐恐懼咽乾喉乾善悲悲傷寒戰惡寒精液清冷惡寒陰冷惡寒身熱肢寒發熱 惡寒黃汗黃汗 自汗心中懊憹煩躁五心煩熱煩躁 發熱痴呆痴呆腰如繩束腰如繩束腰冷重腰冷 惡寒 腰重腰膝無力腰無力鼻流涕鼻流涕鼻臭鼻臭鼻痛鼻痛鼻腫鼻腫鼻痠鼻酸鼻癢鼻癢善憂思憂鬱善怒憤怒頭皮麻木頭皮麻木頭冷頭冷 惡寒頭汗頭面汗出 自汗頭傾頭傾頭搖頭搖頭暈頭暈頭熱頭熱 發熱

40 頸項痛頸項痛噴嚏喷嚏表 8 有提供建議標準症狀原始症狀標準症狀善喜沒有建議症狀鄭聲沒有建議症狀言語錯亂沒有建議症狀腦鳴沒有建議症狀面部疼痛沒有建議症狀口鹹沒有建議症狀多唾沒有建議症狀牙齒浮動沒有建議症狀囓齒沒有建議症狀頸粗沒有建議症狀肩不舉沒有建議症狀哮沒有建議症狀上吐下瀉沒有建議症狀血精沒有建議症狀不射精沒有建議症狀早泄沒有建議症狀遺精沒有建議症狀陽萎沒有建議症狀陰舉不衰沒有建議症狀陰縮沒有建議症狀莖中痛癢沒有建議症狀睪丸脹痛沒有建議症狀陰囊瘙癢沒有建議症狀白帶沒有建議症狀五色帶沒有建議症狀頭皮癤腫沒有建議症狀囗頰潰爛沒有建議症狀頸後生癰沒有建議症狀頸間生瘡沒有建議症狀

頭皮脫屑 沒有建議症狀 頭白禿 沒有建議症狀 毛髮變異 沒有建議症狀 紅鼻子 沒有建議症狀 腰部皰疹 沒有建議症狀 掌跖發疱 沒有建議症狀 指甲變形 沒有建議症狀 指縫濕爛 沒有建議症狀 痱子 沒有建議症狀 痤瘡 沒有建議症狀 白疕 沒有建議症狀 皮膚疣 沒有建議症狀 失嗅 沒有建議症狀 喉癢 沒有建議症狀 咽腫 沒有建議症狀 咽喉痛 沒有建議症狀 聲音嘶啞 沒有建議症狀 咽喉白腐 沒有建議症狀 喉中梗阻 沒有建議症狀 懸雍下垂 沒有建議症狀 表 9 無提供建議標準症狀 41

第六章結論與未來展望 6-1 結論 本研究建立了一套中醫症狀詞庫系統, 除了使用完整字詞比對來做症狀標準化, 還增加了使用關鍵字詞比對的方式來做症狀標準化 除了資料庫已標準化之原始症狀, 可以提供對應之標準症狀, 若是不在資料庫之原始症狀, 本研究之系統還會透過關鍵字詞比對的方法, 提供建議的標準症狀, 由於我們是將原始症狀拆成幾個關鍵字詞, 依據關鍵字詞的語義關係, 到我們的系統去搜尋相同語義關係的標準症狀, 因此提供建議的標準症狀是更能符合語義的標準症狀 我們在未使用關鍵字詞搜尋時, 原始症狀搜尋正確率為 35%, 但是利用關鍵字詞語意資訊作搜尋, 我們的正確率提升到 69%, 確實提升了原始症狀搜尋能力 6-2 未來展望 在本研究中, 我們在資料庫中建立了許多對應表, 對應表彼此之間有著關聯, 但是我們並沒有對於各個對應表之間的資料作一致性的維護 對應表有可能在各個對應表維護功能中, 做了修改, 造成各個對應表之間的資料出現不一致的情形, 因此後續研究人員可以針對此問題, 建立一個機制來維護對應表之間的資料一致性問題 目前本系統資料庫, 各個對應表的資料中, 有些症狀類別的資料尚未建立完全, 而建立這些資料需要耗費一段時間, 因此後續研究人員可以針對此問題, 找出一個研究方法來快速地建立這些資料, 不需要再為了蒐集整理資料而耗費大量時間 42

參考文獻 [1] 李洪成 李新平 李新曄 : 中醫證候學, 中國醫藥科技出版社, 大陸,2008 [2] 柯廷諭 : 中醫症狀的結構化分析與標準化系統設計, 碩士論文, 國立中正大 學資訊工程學系暨研究所, 臺灣,2011 [3] 李兵 劉國正 符永馳 裘儉 張偉娜 : 從中醫古籍數據庫建設看中醫古籍 數字化, 中國中醫藥信息雜誌, 大陸,2009;16(3):92-93 [4] 林劉育 : 中醫症狀的標準化初探與應用, 碩士論文, 國立中正大學資訊工程 學系暨研究所, 臺灣,2011 [5] 李宜泓 : 以近似字詞比對方法輔助中醫症狀標準化, 碩士論文, 國立中正大 學資訊工程學系暨研究所, 臺灣,2012 [6] D. E. Knuth, J. H. Morris, V. R. Pratt, Fast pattern matching in strings. SIAM Journal on Computing, USA, 1977, 6(2): 323-350. [7] R. S. Boyer, J. S. Moore, A fast string searching algorithm. Communications of ACM, USA, 1977, 20(10):762-772. [8] R. Baeza-Yates, G. H. Gonnet, A new approach to text searching. Communications of ACM, USA, 1992, 35(10):74-82. [9] K.-J. Chen, S.-H. Liu, Word identification for Mandarin Chinese sentences. Proceedings of the 14th COLING, USA, 1992, 101-107. [10] J. F. Sowa, Semantic Networks, In Stuart C Shapiro. Encyclopedia of Artificial Intelligence, 1987. [11] 姚乃禮 朱建貴 高榮林 : 中醫症狀鑒別診斷學, 人民衛生出版社, 大陸, 2004 43