readme: ---
  tags:
  - ner
  - token-classification
  - japanese
  - bert
  
  language:
  - ja
  
  license: mit
  
  ---
  ## bert-japanese-ner
  このモデルは日本語の固有表現抽出タスクを目的として、[京都大学 黒橋・褚・村脇研究室が公開しているBERT日本語Pretrainedモデル](https://nlp.ist.i.kyoto-u.ac.jp/?ku_bert_japanese)をベースに[ストックマーク株式会社が公開しているner-wikipedia-dataset](https://github.com/stockmarkteam/ner-wikipedia-dataset)でファインチューニングしたものです。  
  
  ## How to use
  このモデルはTokenizerに上述の京都大学BERT日本語PretrainedモデルのTokenizerを利用します。  
  当リポジトリにTokenizerは含まれていません。  
  利用する際は別途ダウンロードしてご用意ください。  
    
  また、Tokenizerとは別に[Juman++](https://nlp.ist.i.kyoto-u.ac.jp/?JUMAN%2B%2B)と[pyknp](https://nlp.ist.i.kyoto-u.ac.jp/?PyKNP)を利用します。  
  予めインストールしておいてください。
  ```py
  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](https://github.com/stockmarkteam/ner-wikipedia-dataset)を利用しました。  
  便利なデータセットを公開していただきありがとうございます。
  
  ## Note
  固有表現抽出のラベルは学習データセットのものをBILUO形式に変換して使用しています。  
  ラベルの詳細については[ner-wikipedia-datasetの概要](https://github.com/stockmarkteam/ner-wikipedia-dataset#%E6%A6%82%E8%A6%81)をご確認ください。
  
  ## Licenese
  [The MIT license](https://opensource.org/licenses/MIT)
  