刘一玮 姚翠莉
摘 要:生物醫学关系抽取是自然语言处理的一个分支,很多对于关系抽取的研究都应用了深度学习和机器学习的方法。这些领域的理论及周边知识在本科学习中是接触不到的,这给本科生进行科研活动制造了一些困难。本文以DDI为例,解决语料的格式转换问题,旨在探索如何把常见的问题模块化,加快本科生的科研进程。
关键词:关系抽取 json xml
一、研究背景及意义
药物-药物相互作用(DDI)的定义被广泛地描述为一种药物的作用因另一种药物的存在而改变。DDIs的检测是患者安全性的一个重要研究领域,因为这些相互作用会变得非常危险并增加医疗成本。在临床实践或临床试验中患者有可能同时服用多种药物,此时药物会产生相互作用,报道显示10% ~ 20%的不良反应都由药物相互作用( drugdruginteraction,DDI) 引起[1],严重情况下,药物循环体系浓度可以增加10 倍以上,若不进行剂量调整则可能引起致命不良反应。2013年的DDIExtraction任务涉及生物医学文献中出现的药物识别和药物-药物相互作用的提取,很多学者、博士和硕士在这个任务上进行大量的科研工作,如M. Faisal 等使用支持向量机(svm[2]),Zeng等人使用卷积神经网络[3] 进行了相关研究,但是由于相当多的领域知识短时间内根本无法来得及沉淀到本科教学中,一方面本科生对进行科研活动有这强烈的兴趣;另一方面本科生有基础薄弱、时间较少,如果科研反馈的周期过长会导致兴趣减弱甚至退出。DDIExtraction任务本身提供的语料是xml格式,而使用python的科研常用的格式是json,从xml到json的转换对本科生来说设置了一道门槛,本文提供了从xml到json的转换方法,可以有效降低本科生参与科研活动的难度,让学生把更多的精力集中在模型搭建的核心问题上。
二、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()函数用来分析指定的xml文件,tree.getroot()获得第一标签,sent.attrib['id'],获得具体属性。使用以上的关键函数可以解析xml文件,把对应的属性存储到python对象中,然后存入到json文件中。
三、JSON文件处理
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,使用的时候首先要导入json库(),import json。json.dumps()函数用于将 Python 对象如字典、列表等编码成 JSON 字符串,json.loads()函数则将json字符串解码成字典、列表。json.dump()函数将python对象写入指定文件,json.load()函数将文件中的字符串转换为python对象。
结语:
本文以DDI2013中的语料处理为例,模块化本科生在研究过程中所遇到的问题,使本科生能够更快的进入的科研活动中。经过实践证明对本科生进行相应科研工作有一定的帮助。
参考文献
[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 .