劉一瑋 姚翠莉
摘 要:生物醫(yī)學關系抽取是自然語言處理的一個分支,很多對于關系抽取的研究都應用了深度學習和機器學習的方法。這些領域的理論及周邊知識在本科學習中是接觸不到的,這給本科生進行科研活動制造了一些困難。本文以DDI為例,解決語料的格式轉(zhuǎn)換問題,旨在探索如何把常見的問題模塊化,加快本科生的科研進程。
關鍵詞:關系抽取 json xml
一、研究背景及意義
藥物-藥物相互作用(DDI)的定義被廣泛地描述為一種藥物的作用因另一種藥物的存在而改變。DDIs的檢測是患者安全性的一個重要研究領域,因為這些相互作用會變得非常危險并增加醫(yī)療成本。在臨床實踐或臨床試驗中患者有可能同時服用多種藥物,此時藥物會產(chǎn)生相互作用,報道顯示10% ~ 20%的不良反應都由藥物相互作用( drugdruginteraction,DDI) 引起[1],嚴重情況下,藥物循環(huán)體系濃度可以增加10 倍以上,若不進行劑量調(diào)整則可能引起致命不良反應。2013年的DDIExtraction任務涉及生物醫(yī)學文獻中出現(xiàn)的藥物識別和藥物-藥物相互作用的提取,很多學者、博士和碩士在這個任務上進行大量的科研工作,如M. Faisal 等使用支持向量機(svm[2]),Zeng等人使用卷積神經(jīng)網(wǎng)絡[3] 進行了相關研究,但是由于相當多的領域知識短時間內(nèi)根本無法來得及沉淀到本科教學中,一方面本科生對進行科研活動有這強烈的興趣;另一方面本科生有基礎薄弱、時間較少,如果科研反饋的周期過長會導致興趣減弱甚至退出。DDIExtraction任務本身提供的語料是xml格式,而使用python的科研常用的格式是json,從xml到json的轉(zhuǎn)換對本科生來說設置了一道門檻,本文提供了從xml到json的轉(zhuǎn)換方法,可以有效降低本科生參與科研活動的難度,讓學生把更多的精力集中在模型搭建的核心問題上。
二、Xml解析代碼介紹
import xml.etree.ElementTree as ET
from xml.parsers import expat
from lxml import etree
import json
f=open(filename, “w”)
parser=ET.XMLParser(encoding=”UTF-8”)
tree = ET.parse(d+/+fname, parser=parser)
root = tree.getroot()
for sent in root:
sent_id = sent.attrib[‘id]
for c in sent:
d_type = c.attrib[‘type]
首先是導入xml.etree.ElementTree,它是python處理xml文件的標準庫,ET.parse()函數(shù)用來分析指定的xml文件,tree.getroot()獲得第一標簽,sent.attrib['id'],獲得具體屬性。使用以上的關鍵函數(shù)可以解析xml文件,把對應的屬性存儲到python對象中,然后存入到json文件中。
三、JSON文件處理
JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,使用的時候首先要導入json庫(),import json。json.dumps()函數(shù)用于將 Python 對象如字典、列表等編碼成 JSON 字符串,json.loads()函數(shù)則將json字符串解碼成字典、列表。json.dump()函數(shù)將python對象寫入指定文件,json.load()函數(shù)將文件中的字符串轉(zhuǎn)換為python對象。
結語:
本文以DDI2013中的語料處理為例,模塊化本科生在研究過程中所遇到的問題,使本科生能夠更快的進入的科研活動中。經(jīng)過實踐證明對本科生進行相應科研工作有一定的幫助。
參考文獻
[1]Kannan B,Nagella AB,Sathia PA,et al. Incidence of potential drug-drug interactions in a limited and stereotyped prescription setting-comparison of two free online pharmacopoeias[J]. Cureus,2016,8 ( 11 ) :e886.
[2] M. Faisal , Fbk-irst: a multi-phase kernel based approach for drug-drug interaction detection and classification that exploits linguistic information, in: International Workshop on Semantic Evaluation, 2013, pp. 351–355 .
[3]D. Zeng , K. Liu , S. Lai , G. Zhou , J. Zhao , Relation classification via convolutional deep neural network, in: COLING, 2014, pp. 2335–2344 .