kobert4ner

KoBERT for NER(Named Entity Recognition)


License
Apache-2.0
Install
pip install kobert4ner==0.0.1

Documentation

kobert4ner

monologg님이 공개한 KoBERT-NER을 프로젝트 용도에 맞춰 사용하기 쉽게 수정하였습니다.

학습한 KoBERT 모델이 존재해야 합니다.

Installation

python setup.py install

또는,

pip install .

Usage

>>> from kobert4ner import KoBERT_NER, preprocess
>>> raw_text = "저희의 팀명은 'MoAI(Mo두의 AI)'입니다. AI가 도와주는 국어 독해 서비스를 개발하고 있습니다!"
>>> preprocess(raw_text) # .!?로 문장을 나누고, 문자가 아닌 부분으로 나누기
>>> [['저희의', '팀명은', 'MoAI', 'Mo두의', 'AI', '입니다'],
     ['AI가', '도와주는', '국어', '독해', '서비스를', '개발하고', '있습니다']]
>>> model = KoBERT_NER(model_dir='../model', gpu=False)
>>> model.predict(batch_size=12, sentences=preprocessed)
  [{'sentence_idx': 0,
    'sentence_content': [{'word_idx': 0, 'word': '저희의', 'tag': 'O'},
                         {'word_idx': 1, 'word': '팀명은', 'tag': 'O'},
                         {'word_idx': 2, 'word': 'MoAI', 'tag': 'ORG-B'},
                         {'word_idx': 3, 'word': 'Mo두의', 'tag': 'ORG-I'},
                         {'word_idx': 4, 'word': 'AI', 'tag': 'ORG-B'},
                         {'word_idx': 5, 'word': '입니다', 'tag': 'O'}]},
   {'sentence_idx': 1,
    'sentence_content': [{'word_idx': 0, 'word': 'AI가', 'tag': 'ORG-B'},
                         {'word_idx': 1, 'word': '도와주는', 'tag': 'O'},
                         {'word_idx': 2, 'word': '국어', 'tag': 'TRM-B'},
                         {'word_idx': 3, 'word': '독해', 'tag': 'O'},
                         {'word_idx': 4, 'word': '서비스를', 'tag': 'O'},
                         {'word_idx': 5, 'word': '개발하고', 'tag': 'O'},
                         {'word_idx': 6, 'word': '있습니다', 'tag': 'O'}]}]

Directory

├─kobert-ner
│  │  README.md
│  │  requirements.txt
│  │  setup.py
│  ├─model
│  │      config.json
│  │      label.txt
│  │      pytorch_model.bin
│  │      training_args.bin
│  └─ner
│  │       ...
│  └─scripts
│          ...

Reference