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/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
936

被折叠的 条评论
为什么被折叠?



