quickumls是从医学文本中快速、无监督地提取生物医学概念的工具。
quickumls的Python项目详细描述
新:v.1.3已准备好PIP!您现在可以通过一个简单的pip install quickumls来安装quickumls
quickumls
quickumls(soldaini和goharian,2016)是从医学文本中快速、无监督地提取生物医学概念的工具。 它利用了simstring的近似字符串匹配。 有关Quickumls工作原理的更多详细信息,请参阅我们的报纸。
此项目应与Python3兼容(Python2不再受支持),并在任何Unix系统上运行(对Windows的支持是实验性的,请报告错误!).如果您发现任何错误,请在GitHub上提交问题,或发送电子邮件给作者,地址是luca@ir.cs.georgetown.edu
安装
- 获取umls安装此工具要求您在磁盘上安装有效的umls。要安装umls,您必须首先从国家医学图书馆获得a许可证;然后您应该从本页下载所有umls文件;最后,您可以使用本指南中所述的变形工具安装umls。系统初始化后即可删除安装。
- 安装quickumls:您可以运行
pip install quickumls
或python setup.py install
。在MacOS上,强烈建议使用水蟒 - obrain a spacy corpus:在安装quickumls及其依赖项之后,您应该能够通过运行
python-mspacy download en
- 创建quickumls安装通过运行
python-m quickumls.install<;umls\u installation\u path>;<;destination\u path>;
,其中<;umls\u installation\u path>;
是安装文件所在的位置(特别是,我们需要mrconos.rrf
和mrsty.rrf
)并且<;destination_path>;
是安装quickumls数据文件的目录。此过程将花费5到30分钟,具体取决于存储umls和quickumls文件的cpu和驱动器的速度(在具有intel i7 6700k cpu和7200 rpm硬盘的系统上,初始化需要8.5分钟)。python-m quickumls.install支持以下可选参数:
-l
/--小写
:如果使用,则在处理之前,所有概念术语都折叠为小写。此选项通常会增加召回率,但可能会降低精确度;-u
/--规范化Unicode
:如果使用非ASCII字符的表达式,则将其转换为最接近的ASCII字符组合。-e
/--language
:指定要为umls概念考虑的语言;默认情况下,使用英语。有关语言的完整列表,请参见NLM提供的此表。
< > > quickumls\u fp
是安装quickumls数据文件的目录。overlapping_criteria(可选,默认值:"score")是用于处理重叠概念的标准;如果应首先考虑概念的匹配分数,请选择"score";如果应首先考虑最长的概念,请选择"length"。
threshold
(可选,默认值:0.7)是字符串之间的最小相似性值。相似性名称
(可选,默认值:"jaccard")是要使用的相似性名称。在"骰子"、"Jaccard"、"余弦"或"重叠"之间进行选择。window
(可选,默认值:5)是要考虑匹配的最大令牌数。accepted_semtypes
(可选,默认值:请参见constants.py
)是概念应该属于的一组umls语义类型。语义类型由字母"t"加上三个数字(例如"t131",用于标识类型"有害或有毒物质")来标识。有关完整列表,请参见此处。- 冈崎、直垣和津井俊一。"简单有效的近似字典匹配算法。"Coling 2010。
- 卢卡·索尔达尼和纳兹利·戈哈里安。"quickumls:一种快速、无监督的医学概念提取方法。"医学研讨会,SIGIR 2016。
:如果在使用anaconda时在macos上安装失败,请首先通过运行conda install-c conda forge python leveldb安装
leveldb
原料药
quickumls对象可以实例化如下:
fromquickumlsimportQuickUMLSmatcher=QuickUMLS(quickumls_fp,overlapping_criteria,threshold,similarity_name,window,accepted_semtypes)
< > >
要使用匹配器,只需调用
text="The ulna has dislocated posteriorly from the trochlea of the humerus."matcher.match(text,best_match=True,ignore_syntax=False)
如果要返回重叠的候选项,请将"最佳匹配"设置为"错误",将"忽略语法"设置为"错误",禁用中引入的所有启发式(Soldaini和Goharian,2016)。
服务器/客户端支持
从v.1.2开始,quickumls支持在客户机-服务器配置中使用。也就是说,您可以启动一个quickumls服务器,并使用一个客户端从多个脚本中查询它。
要启动服务器,请运行python-m quickumls.server
:
python -m quickumls.server /path/to/quickumls/files {-P QuickUMLS port}{-H QuickUMLS host}{QuickUMLS options}
主机和端口是可选的;默认情况下,quickumls在localhost:4645
上运行。您还可以将上面提到的任何quickumls选项传递给服务器。要获取服务器的选项列表,请运行python-m quickumls.server-h
要加载客户端,请从 客户端的api与quickumls对象相同。 如果您希望在后台运行服务器,可以执行以下操作: 完成后,不要忘记通过运行来停止服务器。quickumls导入
getquickumls客户端
from quickumls import get_quickumls_client
matcher= get_quickumls_client()text="The ulna has dislocated posteriorly from the trochlea of the humerus."
matcher.match(text, best_match=True, ignore_syntax=False)
nohup python -m quickumls.server /path/to/QuickUMLS {server options} > /dev/null 2>&1&echo$! > nohup.pid
kill -9 `cat nohup.pid`
rm nohup.pid
参考文献
推荐PyPI第三方库