快速精准的生物医学命名实体识别框架

KAZU - 生物医学自然语言处理框架

注意:最近的2.0版本在使用自定义模型包和策展时存在较大的向后不兼容性。

欢迎使用KAZU(韩国阿斯利康大学),这是一个与韩国大学合作构建的Python生物医学自然语言处理框架,旨在处理生产工作负载。

该库旨在简化在生产系统中使用最先进的自然语言处理研究的过程。其中包含的研究部分是我们自己的,但大部分来自社区,我们对此深表感激。

如果您想使用KAZU,请引用我们在EMNLP 2022上发表的论文!

快速开始

安装

需要Python 3.9或更高版本(已在Python 3.11上测试)。

可以选择以下方式之一:

pip install kazu

或者从发布页面下载wheel文件并在本地安装。

如果您打算在自己的代码库中使用Mypy,请考虑使用以下方式安装KAZU:

pip install kazu[typed]

这将引入kazu依赖项的类型存根,以便mypy在类型检查您的代码库时能够访问尽可能多的相关类型信息。

获取模型包

对于大多数功能,您还需要KAZU模型包。这与每个版本相关联,可以在发布页面上找到。下载后,解压存档并设置环境变量:

export KAZU_MODEL_PACK=<path to the extracted archive>

KAZU是高度可配置的(使用Hydra),尽管它预装了适用于大多数文献处理用例的默认配置。

要利用这些配置并处理简单文档:

import hydra
from hydra.utils import instantiate
from kazu.data import Document
from kazu.pipeline import Pipeline
from kazu.utils.constants import HYDRA_VERSION_BASE
from pathlib import Path
import os

# Hydra配置保存在模型包中
cdir = Path(os.environ["KAZU_MODEL_PACK"]).joinpath("conf")

@hydra.main(
    version_base=HYDRA_VERSION_BASE, config_path=str(cdir), config_name="config"
)
def kazu_test(cfg):
    pipeline: Pipeline = instantiate(cfg.Pipeline)
    text = "EGFR mutations are often implicated in lung cancer"
    doc = Document.create_simple_document(text)
    pipeline([doc])
    print(f"{doc.get_entities()}")

if __name__ == "__main__":
    kazu_test()

许可证

根据Apache 2.0许可证授权。

KAZU包含符合兼容许可证的元素(完整许可证位于相关文件中或按指示注明):

  • 某些元素是对Explosion.AI根据MIT许可证授权的代码的修改
  • 文档构建过程使用从pandas修改的代码,而pandas又是从numpy修改的
  • 模型蒸馏代码的元素受到或修改自华为诺亚方舟实验室的TinyBERT和DMIS-Lab的BioBERT
  • PLSapbertModel受到sapbert代码的启发,根据MIT许可证授权
  • GildaUtils在string_normalizer.py文件中修改自Gilda
  • AbbreviationFinderStep使用KazuAbbreviationDetector,这是SciSpacy缩写查找算法的修改版本
  • JWTAuthenticationBackend Starlette中间件最初来自starlette-jwt
  • AddRequestIdMiddleware Starlette中间件修改自Starlette中间件文档中的’CustomHeaderMiddleware’

数据集许可证

对于当前使用的每个本体版本,请参阅kazu/conf/ontologies中的’data_origin’字段

根据知识共享署名-相同方式共享 3.0 未移植许可证:

  • ChEMBL
  • CLO
  • UBERON

根据知识共享署名 4.0 未移植许可证:

  • MONDO
  • CELLOSAURUS
  • 基因本体

其他许可数据集和模型:

  • HPO:根据https://hpo.jax.org/app/license自由许可
  • 开放靶点:由www.opentargets.org友好提供,可免费用于商业用例
  • Stanza框架
  • 生物医学scispacy模型
  • SAPBERT:KAZU使用SAPBERT的蒸馏形式
  • GLiNER:使用双向Transformer的通用命名实体识别模型
  • SETH:KAZU的SethStep使用Py4j调用SETH突变查找器
  • Opsin:KAZU的OpsinStep使用Py4j调用OPSIN(系统IUPAC命名法的开放解析器)
    更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
    对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值