language: sv
瑞典语BERT模型
瑞典国家图书馆/KBLab发布了三款基于BERT和ALBERT的预训练语言模型。这些模型训练数据约15-20GB文本(2亿句子,30亿词元),来源多样(书籍、新闻、政府出版物、瑞典维基百科和网络论坛),旨在提供具有代表性的瑞典文本BERT模型。完整说明文档将后续发布。
当前可用的三个模型:
- bert-base-swedish-cased (v1) - 超参数设置与谷歌初始发布版本相同的BERT模型
- bert-base-swedish-cased-ner (实验性) - 使用SUC 3.0数据集进行NER任务微调的BERT模型
- albert-base-swedish-cased-alpha (alpha) - 瑞典语ALBERT模型的首次尝试
所有模型均区分大小写并采用全词掩码训练。
文件列表
TensorFlow模型权重即将发布。
使用要求/安装说明
以下示例需要Huggingface Transformers 2.4.1及PyTorch 1.3.1以上版本。对于Transformers<2.4.0版本,需手动实例化分词器并设置参数do_lower_case=False
和keep_accents=True
(ALBERT模型)。
创建运行环境请执行:
# git clone https://github.com/Kungbib/swedish-bert-models
# cd swedish-bert-models
# python3 -m venv venv
# source venv/bin/activate
# pip install --upgrade pip
# pip install -r requirements.txt
瑞典语BERT基础版
基于多源数据训练的瑞典语标准BERT基础模型,词表量约5万。通过Huggingface Transformers加载:
from transformers import AutoModel,AutoTokenizer
tok = AutoTokenizer.from_pretrained('KB/bert-base-swedish-cased')
model = AutoModel.from_pretrained('KB/bert-base-swedish-cased')
瑞典语NER微调BERT
基于SUC 3.0数据集微调的命名实体识别模型。使用Transformers管道快速加载:
from transformers import pipeline
nlp = pipeline('ner', model='KB/bert-base-swedish-cased-ner', tokenizer='KB/bert-base-swedish-cased-ner')
nlp('Idag släpper KB tre språkmodeller.')
输出示例(实体类型:TME
时间, PRS
人名, LOC
地点, EVN
事件, ORG
组织):
[ { 'word': 'Idag', 'score': 0.9998126029968262, 'entity': 'TME' },
{ 'word': 'KB', 'score': 0.9814832210540771, 'entity': 'ORG' } ]
处理分词片段重组示例:
text = 'Engelbert tar Volvon till Tele2 Arena för att titta på Djurgården IF ' +\
'som spelar fotboll i VM klockan två på kvällen.'
l = []
for token in nlp(text):
if token['word'].startswith('##'):
l[-1]['word'] += token['word'][2:]
else:
l += [ token ]
ALBERT基础版
通过Transformers加载:
from transformers import AutoModel,AutoTokenizer
tok = AutoTokenizer.from_pretrained('KB/albert-base-swedish-cased-alpha'),
model = AutoModel.from_pretrained('KB/albert-base-swedish-cased-alpha')
致谢 ❤️
- NER微调使用了斯德哥尔摩大学、于默奥大学和哥德堡大学瑞典语银行资源
- 预训练部分由KBLab完成,无版权材料训练获Google TensorFlow研究云(TFRC)支持
- 模型托管由Huggingface 🤗提供