国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于命名實(shí)體識(shí)別的醫(yī)療文本零水印方案*

2020-11-06 08:29龔禮春唐觀根吳國(guó)華
密碼學(xué)報(bào) 2020年5期
關(guān)鍵詞:字符醫(yī)患實(shí)體

龔禮春, 姚 曄, 唐觀根, 吳國(guó)華

1. 杭州電子科技大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院, 杭州310018

2. 杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院, 杭州310018

1 引言

隨著醫(yī)療技術(shù)的進(jìn)步與人們生活水平的提高, 人們?cè)絹?lái)越重視自己的身體狀況. 無(wú)論是患普通感冒的病人, 或者是身染重癥的患者, 大多數(shù)人都希望通過(guò)醫(yī)生的診斷與治療, 使自己的身體能夠早日康復(fù). 患者對(duì)醫(yī)院/醫(yī)生能夠治療其疾病寄予了較高期望. 然而, 患者抱有的期望越高, 導(dǎo)致醫(yī)患之間產(chǎn)生矛盾時(shí), 兩者的關(guān)系越發(fā)緊張.

如何有效解決醫(yī)療糾紛問(wèn)題、緩解緊張的醫(yī)患關(guān)系是始終值得被關(guān)注地話題. 醫(yī)療文本記錄著醫(yī)生為患者治療的全部過(guò)程. 文本內(nèi)容中包含不少與醫(yī)療術(shù)語(yǔ)相關(guān)的名詞. 這些名詞在醫(yī)療文本中扮演極其重要的角色, 其完整與否能夠成為解決醫(yī)患糾紛問(wèn)題的重要參考與證明. 因此, 醫(yī)療文本的內(nèi)容安全研究具有重要的理論意義與實(shí)際的應(yīng)用價(jià)值.

零水印方法不修改數(shù)字載體內(nèi)容, 僅從載體中提取特征來(lái)構(gòu)造水印[1], 因此其具有極好的隱蔽性. 應(yīng)用零水印方法, 將醫(yī)療文本中相關(guān)術(shù)語(yǔ)作為零水印構(gòu)造的特征, 能夠有效保護(hù)醫(yī)療文本重要內(nèi)容的完整性.然而, 已有的分詞工具很難準(zhǔn)確的切分醫(yī)療文本中的相關(guān)醫(yī)療術(shù)語(yǔ). 例如: 使用NLPIR-ICTCLAS 平臺(tái)對(duì)“右下支氣管” 這一完整醫(yī)療術(shù)語(yǔ)進(jìn)行分詞, 會(huì)被拆分成“右/下支/氣管” 該種形式, 使得醫(yī)療文本的重要特征不能被充分應(yīng)用于文本的安全性保護(hù). 針對(duì)該問(wèn)題, 本文提出了一種基于命名實(shí)體識(shí)別的醫(yī)療文本零水印方案. 借助自然語(yǔ)言處理領(lǐng)域中的命名實(shí)體識(shí)別技術(shù), 提取醫(yī)療文本中存在的醫(yī)療實(shí)體, 設(shè)計(jì)零水印算法. 利用實(shí)體特征生成零水印信息, 將水印存入被授權(quán)的第三方機(jī)構(gòu). 當(dāng)發(fā)生醫(yī)患糾紛時(shí), 調(diào)取出第三方存儲(chǔ)的水印作為醫(yī)療文本重要內(nèi)容完整性與安全性的依據(jù), 從而為醫(yī)患問(wèn)題的解決提供有效的參考與證明.

2 相關(guān)工作

中文文本水印技術(shù)的實(shí)現(xiàn)方式可以分為兩類. (1) 嵌入式水印, 通過(guò)修改載體文本信息嵌入水印. 已有的方法包括: 拆分漢字的偏旁部件嵌入水印信息[2]; 利用不可見字符替換文本中空格來(lái)隱藏信息[3]; 使用文件格式隱藏信息[4]; 或者對(duì)同義詞進(jìn)行編碼, 通過(guò)同義詞替換嵌入信息[5]. (2) 零水印技術(shù), 不修改載體文本信息, 僅通過(guò)提取載體文本特征來(lái)構(gòu)造水印. 這兩類水印技術(shù)的差異主要表現(xiàn)在以下三個(gè)方面. ①不可視性: 零水印技術(shù)在嵌入水印過(guò)程中不修改載體信息, 使得嵌入水印后的文本與原文本視覺上表現(xiàn)一致,因而具有極高的不可視性. ②水印穩(wěn)健性: 嵌入式水印要求較高地穩(wěn)健性, 當(dāng)載體受到攻擊后, 水印信息應(yīng)盡可能被完整提取; 而零水印要求表現(xiàn)較強(qiáng)的脆弱性, 以抵抗篡改攻擊[6]. ③水印容量: 由于嵌入式水印要考慮隱蔽性與水印容量之間的矛盾, 導(dǎo)致水印嵌入容量較低; 零水印能較好的避開該問(wèn)題, 進(jìn)而提高了水印嵌入容量.

零水印技術(shù)被廣泛應(yīng)用于圖像、視頻、音頻領(lǐng)域, 然而以文本為載體的零水印技術(shù)應(yīng)用相對(duì)較少[7,8].目前, 國(guó)內(nèi)學(xué)者針對(duì)中文文本的不同特征, 提出一些較為實(shí)用的中文文本零水印算法. 2005 年, 程玉柱等人分析單個(gè)漢字特征, 將漢字結(jié)構(gòu)抽象成數(shù)學(xué)表達(dá)式構(gòu)造零水印[9]. 2009 年, 斯琴等人基于詞語(yǔ)特征, 使用詞典分詞方法將詞頻閾值范圍內(nèi)的分詞序列作為文本零水印的生成特征[10]. 該算法使用詞典分詞的方法效率較低. 2010 年, Meng 等人融合信息熵的思想, 根據(jù)文本詞頻計(jì)算句子的熵, 將熵較大的句子作為文本的重要句子, 提取句子序號(hào)作為零水印信息[11]. 然而, 算法并沒有考慮停用詞對(duì)句子熵的影響, 有時(shí)提取的特征不具代表性. 2011 年舒娟娟等人基于漢語(yǔ)詞性特征, 利用中科院分詞系統(tǒng)對(duì)文本分詞與詞性標(biāo)注, 篩選出中頻詞性詞語(yǔ)作為文本特征生成零水印[12]. 該算法使用詞性特征, 適用于普通文本. 2013 年,Liu 等人調(diào)用依存句法分析器提取中文文本的句法語(yǔ)義特征, 并借助同義詞詞林對(duì)特征進(jìn)行編碼, 生成零水印信息[13]. 劉杰等人針對(duì)漢字筆畫統(tǒng)計(jì)特征, 提取文本中使用頻率較高的漢字筆畫數(shù)作為零水印構(gòu)造特征序列[14]. 2016 年, Zhu 等人根據(jù)漢語(yǔ)拼音聲韻母組合特點(diǎn), 以音數(shù)值為零水印構(gòu)造依據(jù), 提出基于漢語(yǔ)拼音的文本零水印方法[15]. 算法雖具有很好的創(chuàng)新性, 但是實(shí)現(xiàn)相對(duì)復(fù)雜. 同年, 周新民等人為了解決在網(wǎng)絡(luò)中傳遞的文本內(nèi)容真實(shí)可靠的問(wèn)題, 提出一種基于漢字結(jié)構(gòu)知識(shí)的文本認(rèn)證零水印算法[16]. 與此同時(shí), Wen 等人將零水印技術(shù)應(yīng)用到xml 格式的文本上, 利用xml 文件中函數(shù)間依賴性特征產(chǎn)生零水印信息[17]. 2017 年, Meng 等人從多特征的角度考慮, 提出一種針對(duì)散文文體的零水印方案[18]. 該方案使用散文文本的語(yǔ)義與統(tǒng)計(jì)特征(詞性、詞頻、詞語(yǔ)權(quán)重等) 構(gòu)造零水印, 具有較好的應(yīng)用價(jià)值.

由此可見, 當(dāng)前文本零水印算法絕大多數(shù)被應(yīng)用于普通文本, 使用普通文本中的通用特征構(gòu)造水印,忽略了文本應(yīng)用領(lǐng)域的多樣性. 醫(yī)療文本中擁有許多專業(yè)的術(shù)語(yǔ), 醫(yī)療專業(yè)術(shù)語(yǔ)特征與普通文本具有較大的差異. 普通文本中的特征提取方法并不適用于醫(yī)療文本. 本文在前人對(duì)文本零水印算法研究與應(yīng)用的基礎(chǔ)上, 針對(duì)醫(yī)療文本的特點(diǎn), 使用命名實(shí)體識(shí)別技術(shù)[19]提取醫(yī)療文本實(shí)體; 將實(shí)體特征作為零水印構(gòu)造依據(jù), 以保護(hù)醫(yī)療文本內(nèi)容安全. 本文主要貢獻(xiàn)包括: (1) 將零水印技術(shù)用于中文醫(yī)療文本, 擴(kuò)展了文本零水印應(yīng)用領(lǐng)域. (2) 引入命名實(shí)體識(shí)別技術(shù)提取醫(yī)療文本特征, 解決了一般分詞工具對(duì)醫(yī)療文本術(shù)語(yǔ)切分準(zhǔn)確率較低的問(wèn)題, 能夠提取出醫(yī)療文本中重要且具有代表性的特征.

3 方案

本文方案利用命名實(shí)體識(shí)別技術(shù)抽取醫(yī)療文本實(shí)體, 根據(jù)獲得的實(shí)體特征, 設(shè)計(jì)零水印生成算法、并給出零水印驗(yàn)證流程, 保護(hù)醫(yī)療文本重要內(nèi)容的安全, 為醫(yī)患問(wèn)題解決提供參考與證明. 方案的整體流程如圖1 所示.

圖1 整體流程圖Figure 1 Overall process diagram

由圖1 可見, 零水印產(chǎn)生主要由三部分組成: (1) 預(yù)處理; (2) 特征提取; (3) 水印生成. 整個(gè)方案涉及到的符號(hào)與含義如表1 所示.

表1 方案中的符號(hào)含義Table 1 Symbol definition in the scheme

3.1 預(yù)處理

預(yù)處理階段的主要任務(wù)是將待保護(hù)的醫(yī)療文本T, 輸入醫(yī)療文本命名實(shí)體識(shí)別模型M 中, 輸出該醫(yī)療文本的實(shí)體集D. 醫(yī)療文本命名實(shí)體識(shí)別模型使用深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練, 如圖2 所示.

圖2 訓(xùn)練模型圖Figure 2 Training model

本文醫(yī)療文本命名實(shí)體識(shí)別模型使用雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(BiLSTM) 與條件隨機(jī)場(chǎng)(CRF) 訓(xùn)練生成[20]. 命名實(shí)體識(shí)別技術(shù)是有監(jiān)督的學(xué)習(xí), 在訓(xùn)練模型前, 采用BIOES 標(biāo)注法對(duì)醫(yī)療文本實(shí)體進(jìn)行標(biāo)注,將實(shí)體分為五種類型. 該五種類型包括: 身體部位(body)、癥狀與體征(sign)、檢查與檢驗(yàn)(check)、疾病與診斷(disease)、治療藥物(treatment), 基本可以對(duì)囊括醫(yī)療領(lǐng)域內(nèi)的專業(yè)術(shù)語(yǔ). 模型M 的訓(xùn)練過(guò)程如下.

(a) 順序取出醫(yī)療文本字符, 賦予每個(gè)字符對(duì)應(yīng)偏旁部件與詞性標(biāo)注后, 輸入到嵌入層中. 嵌入層將字符轉(zhuǎn)化為向量, 其中, 字符與偏旁部件使用Word2Vec 模型與預(yù)訓(xùn)練好的偏旁部件模型向量化,詞性標(biāo)注采用隨機(jī)向量化. 將字符向量偏旁部件向量, 詞性向量, 通過(guò)連接層處理后組成單行向量et. 字符特征構(gòu)成如表2 所示. 該表中“糖尿病” 屬于疾病與診斷一類, 其首字符標(biāo)簽為B-disease, 中間字符標(biāo)簽為I-disease, 尾字符標(biāo)簽為E-disease, 非實(shí)體字符被標(biāo)記為O.

表2 字符特征Table 2 Character feature

(b) 將et輸入到BiLSTM 層中捕獲特征, LSTM 由遺忘門、記憶門、輸出門三個(gè)處理單元構(gòu)成. 其中, 遺忘門丟棄無(wú)用信息; 記憶門記住重要信息; 輸出門輸出隱藏狀態(tài). 其基本原理如公式(1)所示.

公式(1)中, ft代表遺忘門值, mt代表記憶門值,代表臨時(shí)細(xì)胞狀態(tài), ot代表輸出門值, · 表示向量點(diǎn)乘, ⊙表示向量連接, 最終輸出ht. BiLSTM 由前向與后向兩個(gè)LSTM 組成, 因此每個(gè)字符輸出前向隱藏狀態(tài)() 與后向隱藏狀態(tài)(). 將兩個(gè)隱藏狀態(tài)在其相應(yīng)位置上連接, 形成單個(gè)字符完整隱藏狀態(tài)

公式(2)中, f 表示相似度計(jì)算函數(shù), i 表示句子除當(dāng)前字符外的其他字符, i ∈[1,N -1], αi表示兩個(gè)隱藏狀態(tài)的權(quán)重,表示字符注意力向量.

(d) 為了提高命名實(shí)體識(shí)別的準(zhǔn)確率, 用CRF 層學(xué)習(xí)標(biāo)簽轉(zhuǎn)移概率矩陣A. 最終通過(guò)標(biāo)簽轉(zhuǎn)移概率矩陣, 計(jì)算輸入序列對(duì)應(yīng)的最優(yōu)標(biāo)簽輸出序列. 其計(jì)算如公式(3)所示.

公式(3)中, Pi,yi表示第i 個(gè)輸入被標(biāo)記為標(biāo)簽yi的概率, score(x,y) 計(jì)算標(biāo)簽序列y 的評(píng)分, Y

醫(yī)療文本訓(xùn)練數(shù)據(jù)經(jīng)過(guò)上述過(guò)程不斷迭代, 將評(píng)分最高的模型保存起來(lái), 留作后續(xù)待保護(hù)療文本實(shí)體預(yù)測(cè)之用. 將待保護(hù)醫(yī)療文本中的字符使用同樣方式生成字符向量, 順序輸入至醫(yī)療命名實(shí)體識(shí)別模型預(yù)測(cè), 生成該醫(yī)療文本的標(biāo)簽序列(Tag_sequence).

3.2 特征提取

特征提取階段的主要工作是從實(shí)體識(shí)別模型獲得的標(biāo)簽序列(Tag_sequence) 中提取特征, 對(duì)特征進(jìn)行編碼, 將編碼后的特征分類與融合. 醫(yī)療文本實(shí)體重要特征包括: 實(shí)體名稱、實(shí)體順序、實(shí)體長(zhǎng)度. 特征提取部分算法流程, 如算法1 所示.

算法1 特征提取算法Input: T, Tag_sequence, Di Output: DF 1 Entity_order = 0;2 for each Di ∈T do 3 Entity_name = getentityname (T, Tag_sequence);4 Entity_order += 1;5 B_index = beginchar (Di, T);6 E_index = endchar (Di, T);7 Entity_length = E_index - B_index + 1;8 Entity_feature = featurecode (Entity_name, Entity_order, Entity_length);9 Entity_tag = getentitytag (Di, Tag_sequence);10 if judge_type(Entity_tag) equals 1 then 11 list_1.save(Entity_feature);12 else if judge_type(Entity_tag) equals 2 then 13 list_2.save(Entity_feature);14 else if judge_type(Entity_tag) equals 3 then 15 list_3.save(Entity_feature);16 else if judge_type(Entity_tag) equals 4 then 17 list_4.save(Entity_feature);18 else if judge_type(Entity_tag) equals 5 then 19 list_5.save(Entity_feature);20 end 21 end 22 DF = merge (list_1, list_2, list_3, list_4, list_5);23 Return DF.

算法1 中, 對(duì)于醫(yī)療文本中任意一個(gè)實(shí)體Di, 首先, 依據(jù)文本T 中字符與標(biāo)簽序列(Tag_sequence)之間的順序?qū)?yīng)關(guān)系, 獲取該實(shí)體的名稱(Entity_name). 按照實(shí)體在醫(yī)療文本中出現(xiàn)的先后順序給每個(gè)實(shí)體分配一個(gè)序號(hào)(Entity_order), 序號(hào)是實(shí)體的重要特征, 能有效驗(yàn)證醫(yī)療文本內(nèi)句子是否發(fā)生了移位.然后, 執(zhí)行算法第5 行和第6 行, 分別獲得某一實(shí)體在文本中的首字符位置索引和尾字符位置索引, 使用實(shí)體首尾位置索引值計(jì)算實(shí)體的長(zhǎng)度(Entity_length), 實(shí)體長(zhǎng)度信息能增強(qiáng)零水印抗非等長(zhǎng)實(shí)體替換攻擊的能力. 執(zhí)行算法第8 行將實(shí)體的三個(gè)特征編碼成二進(jìn)制形式. 其中, 實(shí)體名稱先轉(zhuǎn)換成Unicode 編碼形式, 進(jìn)而轉(zhuǎn)為二進(jìn)制編碼. 接著, 獲取實(shí)體的標(biāo)簽信息(Entity_tag), 根據(jù)標(biāo)簽-類型映射表3 查找實(shí)體的類型, 通過(guò)判斷實(shí)體類型對(duì)應(yīng)的映射值, 對(duì)不同類型的實(shí)體特征編碼進(jìn)行分類, 并保存于對(duì)應(yīng)list_i 中,如算法第9 到20 行所示. 最后, 融合所有類型的特征, 返回該醫(yī)療文本實(shí)體特征DF, 如算法第22 和第23 行所示.

3.3 水印生成

水印生成階段的主要任務(wù)是將一篇醫(yī)療文本的特征DF, 輸入到零水印生成算法中, 計(jì)算該醫(yī)療文本的水印信息, 將時(shí)間戳和醫(yī)患的身份信息附加到水印的尾部, 一起發(fā)送到第三方認(rèn)證機(jī)構(gòu)注冊(cè)與存儲(chǔ). 為了保證生成的水印信息可靠與安全, 在零水印生成算法中使用了Logistic 混沌加密方法; 為了提高水印驗(yàn)證時(shí)的效率, 使用MD5 算法能有效將水印信息映射為32 字節(jié)長(zhǎng)度. 水印的生成過(guò)程, 如算法2 所示.

表3 標(biāo)簽-類型映射Table 3 Label-type mapping

算法2 水印生成算法Input: DF, μ, K0, thresh Output: w′1 for n = 0 to len(DF) do 4 Kn+1 = 0;2 Kn+1 = μ×Kn ×(1-Kn);3 if Kn+1 <thresh then 5 L = Kn+1 ⊕DFn;chaos.save(L);7 else 6 8 Kn+1 = 1;L = Kn+1 ⊕DFn;10 chaos.save(L);11 end 12 end 13 w′ = MD5(chaos);14 Return w′.9

算法2 中, μ 表示Logistic 混沌函數(shù)參數(shù), 當(dāng)其取值位于3.569 9456 ≤μ ≤4 該范圍內(nèi), 獲得序列是混亂、無(wú)序的, K0表示混沌函數(shù)初始值, 取值區(qū)間為[0,1]. 混沌方程的迭代次數(shù)由DF的長(zhǎng)度決定, 假設(shè)長(zhǎng)度為n, 混沌方程迭代后將生成一個(gè)長(zhǎng)度為n 的序列, 且該序列中的每個(gè)值均0 <Kn+1<1. 通過(guò)預(yù)先設(shè)定的閾值thresh, 將混沌序列二值化處理. 對(duì)于特征序列DF中的每一個(gè)特征值DFn, 將該值與混沌序列對(duì)應(yīng)位置上的值進(jìn)行異或運(yùn)算生成值L, 其中⊕代表異或運(yùn)算符, 混沌序列對(duì)特征序列的加密結(jié)果保存于chaos 中. 最后, 使用MD5 算法生成該醫(yī)療文本的水印信息w′. 為了確保水印的唯一性, 將當(dāng)前時(shí)間信息和醫(yī)患的身份信息附加到w′尾部, 將捆綁的信息發(fā)送放到第三方認(rèn)證機(jī)構(gòu)注冊(cè)與保存. 為了保證水印安全性, 參數(shù)μ、K0、thresh 可視為加密密鑰, 對(duì)外嚴(yán)格保密.

3.4 水印驗(yàn)證

水印驗(yàn)證過(guò)程的主要工作是將醫(yī)患雙方持有的醫(yī)療文本, 通過(guò)同樣的預(yù)處理、特征提取、水印生成算法, 獲取各自醫(yī)療文本的水印信息. 然后, 第三方認(rèn)證機(jī)構(gòu)根據(jù)醫(yī)患的時(shí)間戳和身份信息驗(yàn)證并調(diào)取出注冊(cè)的水印信息, 去除附加在水印尾部的信息后, 分別與醫(yī)患生成的水印信息對(duì)比, 從而證明醫(yī)患手中持有的醫(yī)療文本重要內(nèi)容是否完整. 零水印驗(yàn)證過(guò)程如圖3 所示.

普通文本的版權(quán)認(rèn)證過(guò)程, 大多數(shù)是計(jì)算文本持有者生成的水印信息與第三方保存水印信息之間的相似度, 根據(jù)相似度大小從而判斷版權(quán)的歸屬者. 然而, 醫(yī)療文本內(nèi)記錄著醫(yī)生為患者治療的全部過(guò)程, 內(nèi)容中的任何實(shí)體被篡改都會(huì)關(guān)系到醫(yī)患雙方的利益. 醫(yī)療文本的實(shí)體必須高度完整, 即使發(fā)生細(xì)微的修改最終生成的水印與第三方保存的水印也不同. 因此, 本文引入MD5 算法不僅是為了提高第三方機(jī)構(gòu)對(duì)水印管理和驗(yàn)證的效率, 同時(shí)保證生成水印的唯一性, 增強(qiáng)了零水印的脆弱性. 在圖3 中, 水印對(duì)比只有兩種結(jié)果: 完全相同或不相同. 最終用水印信息完全相同的醫(yī)療文本作為解決醫(yī)患糾紛問(wèn)題的證明與參考, 保護(hù)受害者的權(quán)益.

圖3 水印驗(yàn)證Figure 3 Watermark verification

4 實(shí)驗(yàn)結(jié)果

本章節(jié)主要對(duì)方案的可行性進(jìn)行實(shí)驗(yàn)分析, 實(shí)驗(yàn)的內(nèi)容主要包括: (1) 模型的性能評(píng)估(2) 方案抗攻擊能力. 實(shí)驗(yàn)環(huán)境: Window10 操作系統(tǒng), Anaconda 環(huán)境, python3 開發(fā)語(yǔ)言, pytorch 框架等一些庫(kù). 實(shí)驗(yàn)數(shù)據(jù)使用CCKS-2017 數(shù)據(jù)集[20].

4.1 模型的性能評(píng)估

模型的性能一般使用準(zhǔn)確率(precision)、召回率(recall)、F-score 三個(gè)指標(biāo)進(jìn)行評(píng)估. 其中,precision表示預(yù)測(cè)出來(lái)的實(shí)體中的確屬于醫(yī)療實(shí)體的占比; recall 表示醫(yī)療文本中的實(shí)體被正確預(yù)測(cè)出來(lái)的占比;F分?jǐn)?shù)是準(zhǔn)確率與召回率的調(diào)和平均值, 計(jì)算公式如(4)所示. 本文醫(yī)療文本命名實(shí)體識(shí)別模型的訓(xùn)練使用CCKS-2017 數(shù)據(jù)集, 該數(shù)據(jù)集中一共包含病史特點(diǎn)、出院情況、一般項(xiàng)目、診療經(jīng)過(guò)四個(gè)文件夾, 每個(gè)文件夾下有300 個(gè)標(biāo)注的醫(yī)療文本, 共1200 個(gè)醫(yī)療文本數(shù)據(jù). 此外, 該數(shù)據(jù)集還包含400 個(gè)測(cè)試醫(yī)療文本數(shù)據(jù). 將1200 條文本數(shù)據(jù)隨機(jī)進(jìn)行劃分, 其中80% 為訓(xùn)練數(shù)據(jù), 20% 為驗(yàn)證數(shù)據(jù), 具體訓(xùn)練方法與流程已在預(yù)處理中詳細(xì)介紹.

在經(jīng)過(guò)長(zhǎng)時(shí)間迭代后, 模型最終達(dá)到收斂, 在第30 個(gè)epoch 時(shí), 模型的準(zhǔn)確率達(dá)到93.15%, 召回率為93.54%, F-score 為93.32%, 并且訓(xùn)練過(guò)程中最高F-score 達(dá)到94.43%. 圖4 是測(cè)試數(shù)據(jù)中一個(gè)醫(yī)療文本經(jīng)模型預(yù)測(cè)輸出的結(jié)果.

圖4 模型預(yù)測(cè)結(jié)果Figure 4 Prediction results of the model

實(shí)驗(yàn)結(jié)果表明, 若能對(duì)訓(xùn)練醫(yī)療文本中實(shí)體進(jìn)行正確的標(biāo)注, 實(shí)體識(shí)別模型的效果會(huì)有顯著提升, 并且能夠?qū)?shí)體中包含的數(shù)字準(zhǔn)確識(shí)別出來(lái). 由圖4 可見, 針對(duì)一般分詞工具無(wú)法準(zhǔn)確劃分的較長(zhǎng)醫(yī)療術(shù)語(yǔ),例如:“腰部軟組織損傷”, “神經(jīng)系統(tǒng)查體”, “腰椎正側(cè)位片”, “血壓: 120/80 mmHg” 等, 命名實(shí)體識(shí)別模型具有較佳的預(yù)測(cè)效果。醫(yī)療實(shí)體名稱是醫(yī)療文本特征的一部分, 在識(shí)別出實(shí)體之后, 還需獲取實(shí)體順序、長(zhǎng)度特征、實(shí)體分類特征, 進(jìn)一步組成一個(gè)文本的完整特征. 圖5 展示了該醫(yī)療文本的全部特征.

圖5 實(shí)體特征Figure 5 Entity characteristics

由圖5 可見, 醫(yī)療文本中的任何一個(gè)實(shí)體可用四維特征表示. 其中, 前3 維是用構(gòu)造零水印的重要特征, 按順序分別為實(shí)體名稱、實(shí)體序號(hào)、實(shí)體長(zhǎng)度. 最后一維是實(shí)體的類別映射值, 用于對(duì)實(shí)體特征進(jìn)行分類.

4.2 水印抗攻擊能力

為了驗(yàn)證方案的可行性, 本文以400 篇測(cè)試醫(yī)療文本作為實(shí)驗(yàn)對(duì)象. 分別對(duì)醫(yī)療文本的格式與內(nèi)容進(jìn)行攻擊, 以驗(yàn)證文本被攻擊后生成的水印是否與原文本一致. 對(duì)文本的格式攻擊實(shí)驗(yàn)結(jié)果如表4 所示.

表4 文本格式攻擊結(jié)果Table 4 Format attack result of text

由表4 可見, 對(duì)文本進(jìn)行常見的格式攻擊, 被攻擊后文本生成的水印與原文本完全一致. 根據(jù)水印生成算法可知, 為每篇醫(yī)療文本生成水印, 使用的是醫(yī)療文本的實(shí)體特征. 然而, 實(shí)體特征屬于文本內(nèi)容的一部分. 因此, 對(duì)文本進(jìn)行格式攻擊, 水印依然與原文本保持一致.

本方案的主要目的是對(duì)醫(yī)療文本中的重要內(nèi)容進(jìn)行保護(hù), 從而期待為醫(yī)患問(wèn)題的解決提供重要依據(jù).因此, 為了能夠驗(yàn)證文本實(shí)體內(nèi)容被篡改, 經(jīng)過(guò)算法生成的水印是否與原文本一致. 實(shí)驗(yàn)使用圖4 中的文本作為原始文本, 該醫(yī)療文本的原始水印信息為“e535ddfd856f44a56d94367daae62770”, 將該水印信息存入第三方認(rèn)證機(jī)構(gòu). 然后, 對(duì)該文本實(shí)體內(nèi)容分別采取添加、刪除、替換、及句子移位攻擊, 以觀察攻擊后對(duì)水印產(chǎn)生的影響. 其中, 實(shí)體添加攻擊如圖6 所示.

圖6 添加實(shí)體攻擊Figure 6 Adding entity attack

如圖6, 分別在文本的兩處添加了癥狀與體征相關(guān)的實(shí)體, 添加的部分實(shí)體內(nèi)容增強(qiáng)患者未治療前的嚴(yán)重程度, 突出治療后的效果. 然而, 該文本生成水印信息為“a7f238c9645f922e525b859d59fdb9b5”, 與第三方存儲(chǔ)的原始文本水印信息不同. 實(shí)體刪除攻擊如圖7 所示.

實(shí)驗(yàn)過(guò)程刪除了包括檢查與檢驗(yàn)以及身體部位在內(nèi)的兩處實(shí)體, 最終經(jīng)算法輸出的水印信息為“1c0dcaa454cace6289d2ec44a2f0c7e6”, 與注冊(cè)水印信息不同. 實(shí)體替換攻擊如圖8 所示.

圖7 刪除實(shí)體攻擊Figure 7 Deleting entity attack

圖8 替換實(shí)體攻擊Figure 8 Replacing entity attack

在一定程度上, 實(shí)體替換攻擊能夠改變?cè)谋緜鬟_(dá)的意思。然而, 被攻擊過(guò)后的文本生成水印信息為“592047761b321c392e6dd9ab70eac392”, 與第三方水印信息比較, 依舊可以證明該文本被篡改. 句子移位攻擊如圖9 所示.

圖9 句子移位攻擊Figure 9 Moving sentence’ position attack

雖然句子位置移動(dòng)并不會(huì)改變一篇醫(yī)療文本實(shí)體的數(shù)量, 但是在生成的實(shí)體特征時(shí), 為每個(gè)實(shí)體分配唯一一個(gè)序號(hào). 該序號(hào)能有效對(duì)抗因句子移動(dòng)導(dǎo)致實(shí)體順序改變的攻擊, 使得算法最終生成的水印信息為“97c8293a975d8923409799f6bb600c25” 與原文本水印信息不一致.

5 總結(jié)

本文針對(duì)醫(yī)療文本內(nèi)容安全問(wèn)題, 提出一種基于命名實(shí)體識(shí)別的醫(yī)療文本零水印方案. 在提出的方案中, 引入命名實(shí)體識(shí)別技術(shù), 解決了一般分詞工具無(wú)法準(zhǔn)確切分醫(yī)療文本專業(yè)術(shù)語(yǔ)問(wèn)題. 設(shè)計(jì)實(shí)體特征獲取算法、水印生成算法、并給出水印驗(yàn)證方法, 實(shí)現(xiàn)了醫(yī)療文本重要內(nèi)容的完整性認(rèn)證與保護(hù). 最終, 通過(guò)對(duì)命名實(shí)體識(shí)別模型的評(píng)估實(shí)驗(yàn), 以及文本格式和實(shí)體的添加、刪除、替換、句子移位攻擊實(shí)驗(yàn), 表明了本方案具有良好的可行性.

猜你喜歡
字符醫(yī)患實(shí)體
字符代表幾
前海自貿(mào)區(qū):金融服務(wù)實(shí)體
一種USB接口字符液晶控制器設(shè)計(jì)
圖片輕松變身ASCⅡ藝術(shù)畫
HBM電子稱與西門子S7-200系列PLC自由口通訊
實(shí)體的可感部分與實(shí)體——兼論亞里士多德分析實(shí)體的兩種模式
兩會(huì)進(jìn)行時(shí):緊扣實(shí)體經(jīng)濟(jì)“釘釘子”
振興實(shí)體經(jīng)濟(jì)地方如何“釘釘子”
一句“咱媽的病”讓醫(yī)患成為一家
解開醫(yī)患千千結(jié)
武威市| 黄陵县| 柯坪县| 泸州市| 安图县| 南木林县| 张家界市| 牡丹江市| 陕西省| 凌源市| 新兴县| 顺昌县| 横山县| 交口县| 松滋市| 新乡市| 泰和县| 鹰潭市| 林州市| 青浦区| 萍乡市| 长治县| 娄烦县| 宜君县| 凭祥市| 濮阳县| 河曲县| 勐海县| 潮州市| 舒兰市| 贵港市| 民丰县| 青浦区| 望谟县| 苏尼特左旗| 旬邑县| 金平| 无棣县| 唐河县| 襄汾县| 勐海县|