🚀 ViHealthBERT:用于越南语医疗文本挖掘的预训练语言模型
ViHealthBERT是医疗领域中用于越南语的强大基准语言模型。我们通过实验研究了采用不同训练策略的模型,在3个下游任务(命名实体识别(NER,包括COVID - 19和ViMQ)、缩略词消歧和文本摘要)上取得了当前最优(SOTA)性能。
我们推出了两个越南语数据集:医疗领域的缩略词数据集(acrDrAid)和常见问题解答摘要数据集。我们的acrDrAid数据集标注了135组关键词。
ViHealthBERT的通用方法和实验结果可在我们即将更新的LREC - 2022海报论文中查看:
@article{vihealthbert,
title = {{ViHealthBERT: Pre-trained Language Models for Vietnamese in Health Text Mining}},
author = {Minh Phuc Nguyen, Vu Hoang Tran, Vu Hoang, Ta Duc Huy, Trung H. Bui, Steven Q. H. Truong },
journal = {13th Edition of its Language Resources and Evaluation Conference},
year = {2022}
}
🚀 快速开始
本部分将引导你了解ViHealthBERT的安装、预训练模型信息及使用示例。
✨ 主要特性
- 针对越南语医疗领域,提供强大的预训练语言模型。
- 通过不同训练策略,在多个下游任务上取得当前最优性能。
- 推出两个越南语医疗领域数据集,且acrDrAid数据集标注了135组关键词。
📦 安装指南
- 环境要求:Python 3.6+,PyTorch >= 1.6
- 安装
transformers
库:
pip install transformers==4.2.0
📚 详细文档
预训练模型
模型 |
参数数量 |
架构 |
分词器 |
demdecuong/vihealthbert-base-word |
1.35亿 |
基础 |
词级 |
demdecuong/vihealthbert-base-syllable |
1.35亿 |
基础 |
音节级 |
💻 使用示例
基础用法
import torch
from transformers import AutoModel, AutoTokenizer
vihealthbert = AutoModel.from_pretrained("demdecuong/vihealthbert-base-word")
tokenizer = AutoTokenizer.from_pretrained("demdecuong/vihealthbert-base-word")
line = "Tôi là sinh_viên trường đại_học Công_nghệ ."
input_ids = torch.tensor([tokenizer.encode(line)])
with torch.no_grad():
features = vihealthbert(input_ids)
高级用法
原始文本使用示例
由于ViHealthBERT使用了来自VnCoreNLP的RDRSegmenter对预训练数据进行预处理,我们强烈建议在ViHealthBERT的下游应用中使用相同的分词器。
安装步骤
pip3 install vncorenlp
mkdir -p vncorenlp/models/wordsegmenter
wget https://raw.githubusercontent.com/vncorenlp/VnCoreNLP/master/VnCoreNLP-1.1.1.jar
wget https://raw.githubusercontent.com/vncorenlp/VnCoreNLP/master/models/wordsegmenter/vi-vocab
wget https://raw.githubusercontent.com/vncorenlp/VnCoreNLP/master/models/wordsegmenter/wordsegmenter.rdr
mv VnCoreNLP-1.1.1.jar vncorenlp/
mv vi-vocab vncorenlp/models/wordsegmenter/
mv wordsegmenter.rdr vncorenlp/models/wordsegmenter/
VnCoreNLP - 1.1.1.jar
(27MB)和models/
文件夹必须放在同一工作目录中。
使用示例
from vncorenlp import VnCoreNLP
rdrsegmenter = VnCoreNLP("/Absolute-path-to/vncorenlp/VnCoreNLP-1.1.1.jar", annotators="wseg", max_heap_size='-Xmx500m')
text = "Ông Nguyễn Khắc Chúc đang làm việc tại Đại học Quốc gia Hà Nội. Bà Lan, vợ ông Chúc, cũng làm việc tại đây."
sentences = rdrsegmenter.tokenize(text)
for sentence in sentences:
print(" ".join(sentence))