人工智能正處于非?;馃岬臅r期,自然語言處理(NLP)領域也令人興奮了十年。在閱讀理解、語言翻譯和創(chuàng)意寫作等復雜的任務上,計算機的表現將會和人類一樣出色。語言理解能力受益于免費的深度學習庫(如Pytext和BERT這樣的語言模型),大數據(Hadoop,Spark,Spark NLP),以及云計算(提供GPU和與服務商的NLP服務功能)。
目前市面上做自然語言處理領域的公司有:騰訊、科大訊飛、微軟、思必馳、華為等。在醫(yī)療領域,一些應用已經從科幻小說變?yōu)楝F實。人工智能系統(tǒng)通過了中國和英國的醫(yī)學執(zhí)照考試 ,而且它們比普通醫(yī)生考得更好。最新的系統(tǒng)比初級醫(yī)生能更好地診斷出55種兒科疾病。但是,這些系統(tǒng)比第一批計算機視覺深度學習應用中的一些更難構建,因為它們需要具有更廣泛常見的醫(yī)學知識,要處理更多種類的輸入,并且必須理解上下文。
自然語言處理由自然語言理解(NLU)和自然語言生成(NLG)構成。NLG是計算機的“編寫語言”,它將結構化數據轉換為文本,以人類語言表達。即能夠根據一些關鍵信息及其在機器內部的表達形式,經過一個規(guī)劃過程,來自動生成一段高質量的自然語言文本。如今的數據量巨大,人們根本處理不過來;NLG把數據人性化,幫助人們處理。
NLG系統(tǒng)使用數據分析和人工智能技術來分析復雜的數據集,并采用計算語言學技術在高品質的文字說明來交流分析結果。NLG的工作原理:輸入抽象的命題,然后對你輸入的自然語言進行語義分析、語法分析進行語言組織然后生成無限接近你想要的文本。例子:輸入麥當娜,接下來通過NLG自然語言生成:麥當娜 “歌星”
NLG可以用來幫助患者,讓他們了解自己的健康狀況,并對自身的醫(yī)療保健作出更好的選擇;NLG還可以幫助患者更好地照顧自己:包括改變生活方式、自我管理慢性疾病、并配合治療方案。
最重要的是用NLG來加強病人對病情的了解和支持病人,更好的作出治療方案。在系統(tǒng)構建的實踐中,為中文構建的現成的NLP庫和算法在醫(yī)療行業(yè)的這種“不同的語言”上會遇到各種挫敗。不僅是因為命名實體識別或實體解析模型會失敗,甚至像符號化、詞性標注和句子分割這樣的基本任務,現成的模型對大多數醫(yī)療行業(yè)的句子都沒用。
再者醫(yī)療行業(yè)有數百種語言,千萬不要去建立通用的醫(yī)療NLP系統(tǒng)?,F實是,每個子專業(yè)和它的溝通形式都和別專業(yè)根本不同,你根本無法做到統(tǒng)一通用。而且,每個醫(yī)學專業(yè)都有很多變化。例如,對于決定是否批準針對MRI的預授權請求,針對植入式脊髓刺激器,需要從預授權表格中查看的項目內容就和別的請求完全不同。另一個例子是在病理學中使用不同的術語來討論不同類型的癌癥。
這些對實際問題會帶來影響:我所工作的公司正在進行一個項目,該項目需要訓練不同的NLP模型,以從病理報告中提取有關肺癌、乳腺癌和結腸癌的事實。到目前為止,亞馬遜的Comprehend Medical僅關注藥物價值的正規(guī)化(參見上面最后一個“阿司匹林”的例子)。該服務還具有標準的醫(yī)療命名實體識別功能,但不能滿足任何特定應用的需求。
構建一個AI系統(tǒng)有一種方法是從構建標注驗證數據集。例如,如果你對自動化門診病例成ICD-10編碼感興趣,請讓臨床醫(yī)生定義一些代表性樣本,對樣本進行脫敏,并讓專業(yè)的臨床編碼人員對其進行標注(分配正確的代碼)。如果你有興趣從放射學報告中提取關鍵事件或從患者病例中找出被忽視的安全事件,請首先讓臨床醫(yī)生定義一些樣本,并正確標注。
這樣做通常會在讓數據科學團隊加入(并浪費很多時間)前提前發(fā)現一些“坑”。如果你無法獲得足夠的數據,或者無法大規(guī)模地進行脫敏,那就無法構建可靠的模型。如果在某些情況下臨床醫(yī)生不能一致同意正確的標注,那么要解決的第一個問題是就臨床指南達成一致,而不是讓數據科學家參與嘗試去自動化這種不一致。
最后,如果你發(fā)現自己面臨非常不平衡的類別(比如你尋找的是每年只有少數人患病的情況),那么在引入數據科學家之前修改問題的定義可能是明智之舉。標注的驗證集以及數據集其目標是使用標準庫或云服務來發(fā)現它們能達到的滿足用戶特定需求的最高準確度。這樣做就可以評估下面每項服務的難易程度,包括:訓練自定義的模型、定義領域專有的特征、解決方案所需的pipeline步驟和把結果解釋給客戶。
一旦有了一個有代表性的和已商定并正確標注的驗證集,你就可以開始用它來測試現有的庫和云服務提供商的服務了。很可能的是,這個測試將立即發(fā)現每個產品與你的需求之間的差距。