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

安装

  1. 获取umls安装此工具要求您在磁盘上安装有效的umls。要安装umls,您必须首先从国家医学图书馆获得a许可证;然后您应该从本页下载所有umls文件;最后,您可以使用本指南中所述的变形工具安装umls。系统初始化后即可删除安装。
  2. 安装quickumls:您可以运行pip install quickumlspython setup.py install。在MacOS上,强烈建议使用水蟒
  3. obrain a spacy corpus:在安装quickumls及其依赖项之后,您应该能够通过运行python-mspacy download en
  4. 创建quickumls安装通过运行python-m quickumls.install<;umls\u installation\u path>;<;destination\u path>;,其中<;umls\u installation\u path>;是安装文件所在的位置(特别是,我们需要mrconos.rrfmrsty.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提供的此表。
  5. < > >

    :如果在使用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

    要加载客户端,请从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)

    客户端的api与quickumls对象相同。

    如果您希望在后台运行服务器,可以执行以下操作:

    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
    

    参考文献

    • 冈崎、直垣和津井俊一。"简单有效的近似字典匹配算法。"Coling 2010。
    • 卢卡·索尔达尼和纳兹利·戈哈里安。"quickumls:一种快速、无监督的医学概念提取方法。"医学研讨会,SIGIR 2016。

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


热门话题
Selenium中弹出的java句柄窗口   java将格式化消息从任何片段传递到活动   java如何从int类型的方法返回多个整数   servlets数据不会使用java类和bean插入数据库   java如何修改Solr给出的搜索结果页面?   java如何在wildfly中重定向应用程序路径?   java使用Apache异步HTTP客户端从InputStream构造多部分请求   java解析来自REST的压缩输入流   java上载文件失败,原因是Vaadin Spring PlupLocaddon   使用需要CSRF令牌的旧端点的javascript   java如何在viewpager应用程序中将图像设置为墙纸?   java Axis2与SharePoint 2013(ADFS/FedAuth cookie)   java H2选择:意外的类型39映射   Docker Composition中拒绝java Spring应用程序连接   使用Java的ibm mq ibm mq获取LGETTIME   java循环逻辑中的漏洞   javaspringcom。mongodb。util。JSONParseException   方法调用“振动”可能会产生java。更新到Android Studio 3后出现lang.NullPointerException警告   datetime如何将日历的时间与java进行比较。sql。时间物体?