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
│ ...