🚀 ベトナム語用BERTモデル
このモデルは、20GB以上のニュースデータセットで学習されたベトナム語用のBERTモデルです。
AIViVNのコメントデータセットを使用した感情分析タスクに適用できます。
このモデルは、パブリックリーダーボードで0.90268のスコアを達成し(優勝者のスコアは0.90087)、
Bert4newsはViNLPtoolkitでのベトナム語の単語分割と固有表現認識のツールキットとして使用されています。
単語のセンテンスピースを使用し、基本的なBERTトークン化を行い、bert baseと同じ設定でlowercase = Falseとしています。
学習済みモデルは以下からダウンロードできます。
🚀 クイックスタート
huggingface/transformersでの使用方法
import torch
from transformers import BertTokenizer,BertModel
tokenizer= BertTokenizer.from_pretrained("NlpHUST/vibert4news-base-cased")
bert_model = BertModel.from_pretrained("NlpHUST/vibert4news-base-cased")
line = "Tôi là sinh viên trường Bách Khoa Hà Nội ."
input_id = tokenizer.encode(line,add_special_tokens = True)
att_mask = [int(token_id > 0) for token_id in input_id]
input_ids = torch.tensor([input_id])
att_masks = torch.tensor([att_mask])
with torch.no_grad():
features = bert_model(input_ids,att_masks)
print(features)
✨ 主な機能
ベトナム語用のNLPツールキット
ViNLPはベトナム語のアノテーションシステムです。事前学習されたBert4newsを使用して、単語分割、固有表現認識(NER)などのベトナム語のNLP問題に対して微調整を行い、高い精度を達成しています。
📦 インストール
git clone https://github.com/bino282/ViNLP.git
cd ViNLP
python setup.py develop build
💻 使用例
基本的な使用法
分割テスト
このモデルは、VLSP 2013データセットでF1スコア0.984を達成しています。
モデル |
F1 |
BertVnTokenizer |
98.40 |
DongDu |
96.90 |
JvnSegmenter-Maxent |
97.00 |
JvnSegmenter-CRFs |
97.06 |
VnTokenizer |
97.33 |
UETSegmenter |
97.87 |
VnTokenizer |
97.33 |
VnCoreNLP (i.e. RDRsegmenter) |
97.90 |
from ViNLP import BertVnTokenizer
tokenizer = BertVnTokenizer()
sentences = tokenizer.split(["Tổng thống Donald Trump ký sắc lệnh cấm mọi giao dịch của Mỹ với ByteDance và Tecent - chủ sở hữu của 2 ứng dụng phổ biến TikTok và WeChat sau 45 ngày nữa."])
print(sentences[0])
Tổng_thống Donald_Trump ký sắc_lệnh cấm mọi giao_dịch của Mỹ với ByteDance và Tecent - chủ_sở_hữu của 2 ứng_dụng phổ_biến TikTok và WeChat sau 45 ngày nữa .
固有表現認識テスト
このモデルは、VLSP 2018のすべての固有表現(ネストされた固有表現を含む)でF1スコア0.786を達成しています。
モデル |
F1 |
BertVnNer |
78.60 |
VNER Attentive Neural Network |
77.52 |
vietner CRF (ngrams + word shapes + cluster + w2v) |
76.63 |
ZA-NER BiLSTM |
74.70 |
from ViNLP import BertVnNer
bert_ner_model = BertVnNer()
sentence = "Theo SCMP, báo cáo của CSIS với tên gọi Định hình Tương lai Chính sách của Mỹ với Trung Quốc cũng cho thấy sự ủng hộ tương đối rộng rãi của các chuyên gia về việc cấm Huawei, tập đoàn viễn thông khổng lồ của Trung Quốc"
entities = bert_ner_model.annotate([sentence])
print(entities)
[{'ORGANIZATION': ['SCMP', 'CSIS', 'Huawei'], 'LOCATION': ['Mỹ', 'Trung Quốc']}]
高度な使用法
基本設定での学習の実行
python train_pytorch.py \
--model_path=bert4news.pytorch \
--max_len=200 \
--batch_size=16 \
--epochs=6 \
--lr=2e-5
📄 連絡先
このプロジェクトに関する個人的なコミュニケーションは、Nha Nguyen Van (nha282@gmail.com)までお問い合わせください。