KAZU - 生物医学NLP框架
注意:最近的2.0版本在自定义模型包和标注的使用上存在较大的向后不兼容性。 欢迎使用KAZU,这是一个与韩国大学合作构建的Python生物医学NLP框架,专为处理生产级工作负载而设计。 该库旨在简化在生产系统中使用最先进的NLP研究的过程。其中包含的部分研究是我们自己的成果,但大部分来自社区,我们对此表示无比感激。 如果您想使用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=<解压后存档的路径>
KAZU高度可配置,不过它预装了适用于大多数文献处理用例的默认配置。
要使用这些配置并处理一个简单文档,请参考以下示例代码:
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包含了基于兼容许可证的组件。
数据集许可证
- Chembl, CLO, UBERON: 基于知识共享署名-相同方式共享 3.0 未移植许可证。
- MONDO, CELLOSAURUS, Gene Ontology: 基于知识共享署名 4.0 未移植许可证。
其他许可的数据集和模型
- HPO: 自由许可。
- OPEN TARGETS: 开源目标数据集由某机构提供,可免费用于商业用例。
- STANZA: 使用了某机构的框架和生物医学NLP模型。
- SCISPACY: 使用了某机构的生物医学模型。
- SAPBERT: KAZU使用了SAPBERT的蒸馏版本。
- GLINER: 使用了某机构的通用命名实体识别模型。
- SETH: KAZU的SethStep使用Py4j调用SETH突变查找器。
- Opsin: KAZU的OpsinStep使用Py4j调用OPSIN。