项目介绍:thainer-corpus-v2-base-model
thainer-corpus-v2-base-model 是一个用于泰语命名实体识别(NER)的模型。该模型使用了 Thai NER v2.0 语料库进行训练,能够识别和分类泰语文本中的特定实体。
背景信息
命名实体识别(简称NER)是一种自然语言处理技术,广泛应用于信息抽取中。它可以自动识别出文本中如人名、地名、组织名等实体。在这一项目中,开发者训练了一个针对泰语的NER模型。
数据集与训练
模型使用了 Thai NER v2.0 语料库进行训练。训练使用的代码和数据分割可以在这里找到。训练过程中,模型基于 WangchanBERTa 基础模型进行了调整,具体的性能指标如下:
-
验证集性能:
- 精确度(Precision): 0.830
- 召回率(Recall): 0.874
- F1值: 0.851
- 准确度(Accuracy): 0.974
-
测试集性能:
- 精确度: 0.820
- 召回率: 0.878
- F1值: 0.848
- 准确度: 0.972
下载和使用
模型与相关数据集可以从HuggingFace Hub下载。尽管 HuggingFace 支持许多语言的推理,但是对于泰语的推理会给出错误的标签。因此,为了正确执行推理,用户需使用自定义代码。
以下是一个简单的使用示例,演示如何加载模型并进行推理:
from transformers import AutoTokenizer
from transformers import AutoModelForTokenClassification
from pythainlp.tokenize import word_tokenize # 需安装 pythainlp
import torch
name="pythainlp/thainer-corpus-v2-base-model"
tokenizer = AutoTokenizer.from_pretrained(name)
model = AutoModelForTokenClassification.from_pretrained(name)
sentence = "...." # 输入泰语句子
cut = word_tokenize(sentence.replace(" ", "<_>"))
inputs = tokenizer(cut, is_split_into_words=True, return_tensors="pt")
# 前向传播
outputs = model(inputs["input_ids"], attention_mask=inputs["attention_mask"])
logits = outputs[0]
predictions = torch.argmax(logits, dim=2)
predicted_token_class = [model.config.id2label[t.item()] for t in predictions[0]]
def fix_span_error(words, ner):
_ner = []
_new_tag = []
for i, j in zip(words, _ner):
i = tokenizer.decode(i)
if i.isspace() and j.startswith("B-"):
j = "O"
if i in ['', '<s>', '</s>']:
continue
if i == "<_>":
i = " "
_new_tag.append((i, j))
return _new_tag
ner_tag = fix_span_error(inputs['input_ids'][0], predicted_token_class)
print(ner_tag)
引用
如果使用了此项目的数据或模型,请引用以下参考:
Wannaphong Phatthiyaphaibun. (2022). Thai NER 2.0 (2.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.7761354
或者使用 BibTeX 格式:
@dataset{wannaphong_phatthiyaphaibun_2022_7761354,
author = {Wannaphong Phatthiyaphaibun},
title = {Thai NER 2.0},
month = sep,
year = 2022,
publisher = {Zenodo},
version = {2.0},
doi = {10.5281/zenodo.7761354},
url = {https://doi.org/10.5281/zenodo.7761354}
}
总的来说,thainer-corpus-v2-base-model 是一个强大的工具,用于处理泰语文本中的命名实体识别,能够在多个领域提供重要支持。