bert-japanese-ner

このモデルは日本語の固有表現抽出タスクを目的として、京都大学 黒橋・褚・村脇研究室が公開しているBERT日本語Pretrainedモデルをベースにストックマーク株式会社が公開しているner-wikipedia-datasetでファインチューニングしたものです。

How to use

このモデルはTokenizerに上述の京都大学BERT日本語PretrainedモデルのTokenizerを利用します。
当リポジトリにTokenizerは含まれていません。
利用する際は別途ダウンロードしてご用意ください。

また、Tokenizerとは別にJuman++pyknpを利用します。
予めインストールしておいてください。

from transformers import (
    BertForTokenClassification, BertTokenizer
)

from pyknp import Juman


jumanpp = Juman()
tokenizer = BertTokenizer.from_pretrained("ダウンロードした京都大学のTokenizerのファイルパス")

model = BertForTokenClassification.from_pretrained("ken11/bert-japanese-ner")

text = "なにか文章"
juman_result = jumanpp.analysis(text)
tokenized_text = [mrph.midasi for mrph in juman_result.mrph_list()]
inputs = tokenizer(tokenized_text, return_tensors="pt", padding='max_length', truncation=True, max_length=64, is_split_into_words=True)
pred = model(**inputs).logits[0]
pred = np.argmax(pred.detach().numpy(), axis=-1)
labels = []
for i, label in enumerate(pred):
    if i + 1 > len(tokenized_text):
        continue
    labels.append(model.config.id2label[label])
    print(f"{tokenized_text[i]}: {model.config.id2label[label]}")
print(tokenized_text)
print(labels)

Training Data

学習にはストックマーク株式会社が公開しているner-wikipedia-datasetを利用しました。
便利なデータセットを公開していただきありがとうございます。

Note

固有表現抽出のラベルは学習データセットのものをBILUO形式に変換して使用しています。
ラベルの詳細についてはner-wikipedia-datasetの概要をご確認ください。

Licenese

The MIT license

Downloads last month
13
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.