Downloads · 30 days
0
KISTI-AIDATA/KorSciBERT
KorSciBERT is a machine learning model from KISTI-AIDATA. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as cc-by-nc-3.0.
본 KorSci BERT 언어모델은 한국과학기술정보연구원과 한국특허정보원이 공동으로 연구한 과제의 결과물 중 하나로, 기존 Google BERT base 모델의 아키텍쳐를 기반으로, 한국 논문 & 특허 코퍼스 총 97G (약 3억 8천만 문장)를 사전학습한 모델이다.
Downloads · 30 days
0
Access
Public
Updated Sep 30, 2024
Repo size
—
Likes
1
Public
Click a slice to open those files.
.md6.6 KB · 81%
From the Hugging Face model README
본 KorSci BERT 언어모델은 한국과학기술정보연구원과 한국특허정보원이 공동으로 연구한 과제의 결과물 중 하나로, 기존 Google BERT base 모델의 아키텍쳐를 기반으로, 한국 논문 & 특허 코퍼스 총 97G (약 3억 8천만 문장)를 사전학습한 모델이다.
| Type | Corpus | Sentences | Avg sent length |
|---|---|---|---|
| 논문 | 15G | 72,735,757 | 122.11 |
| 특허 | 82G | 316,239,927 | 120.91 |
| 합계 | 97G | 388,975,684 | 121.13 |
본 언어모델의 성능평가는 과학기술표준분류 및 특허 선진특허분류(CPC) 2가지의 태스크를 파인튜닝하여 평가하는 방식을 사용하였으며, 그 결과는 아래와 같다.
| Type | Classes | Train | Test | Metric | Train result | Test result |
|---|---|---|---|---|---|---|
| 과학기술표준분류 | 86 | 130,515 | 14,502 | Accuracy | 68.21 | 70.31 |
| 특허CPC분류 | 144 | 390,540 | 16,315 | Accuracy | 86.87 | 76.25 |
본 토크나이저는 한국과학기술정보연구원과 한국특허정보원이 공동으로 연구한 과제의 결과물 중 하나이다. 그리고, 위 사전학습 모델에서 사용된 코퍼스를 기반으로 명사 및 복합명사 약 600만개의 사용자사전이 추가된 Mecab-ko Tokenizer와 기존 BERT WordPiece Tokenizer가 병합되어진 토크나이저이다.
Installation URL: https://bitbucket.org/eunjeon/mecab-ko-dic/src/master/
mecab-ko > 0.996-ko-0.9.2
mecab-ko-dic > 2.1.1
mecab-python > 0.996-ko-0.9.2
pip install konlpy
konlpy > 0.5.2
import tokenization_kisti as tokenization
vocab_file = "./vocab_kisti.txt"
tokenizer = tokenization.FullTokenizer(
vocab_file=vocab_file,
do_lower_case=False,
tokenizer_type="Mecab"
)
example = "본 고안은 주로 일회용 합성세제액을 집어넣어 밀봉하는 세제액포의 내부를 원호상으로 열중착하되 세제액이 배출되는 절단부 쪽으로 내벽을 협소하게 형성하여서 내부에 들어있는 세제액을 잘짜질 수 있도록 하는 합성세제 액포에 관한 것이다."
tokens = tokenizer.tokenize(example)
encoded_tokens = tokenizer.convert_tokens_to_ids(tokens)
decoded_tokens = tokenizer.convert_ids_to_tokens(encoded_tokens)
print("Input example ===>", example)
print("Tokenized example ===>", tokens)
print("Converted example to IDs ===>", encoded_tokens)
print("Converted IDs to example ===>", decoded_tokens)
============ Result ================
Input example ===> 본 고안은 주로 일회용 합성세제액을 집어넣어 밀봉하는 세제액포의 내부를 원호상으로 열중착하되 세제액이 배출되는 절단부 쪽으로 내벽을 협소하게 형성하여서 내부에 들어있는 세제액을 잘짜질 수 있도록 하는 합성세제 액포에 관한 것이다.
Tokenized example ===> ['본', '고안', '은', '주로', '일회용', '합성', '##세', '##제', '##액', '을', '집', '##어', '##넣', '어', '밀봉', '하', '는', '세제', '##액', '##포', '의', '내부', '를', '원호', '상', '으로', '열', '##중', '착', '##하', '되', '세제', '##액', '이', '배출', '되', '는', '절단부', '쪽', '으로', '내벽', '을', '협', '##소', '하', '게', '형성', '하', '여서', '내부', '에', '들', '어', '있', '는', '세제', '##액', '을', '잘', '짜', '질', '수', '있', '도록', '하', '는', '합성', '##세', '##제', '액', '##포', '에', '관한', '것', '이', '다', '.']
Converted example to IDs ===> [59, 619, 30, 2336, 8268, 819, 14100, 13986, 14198, 15, 732, 13994, 14615, 39, 1964, 12, 11, 6174, 14198, 14061, 9, 366, 16, 7267, 18, 32, 307, 14072, 891, 13967, 27, 6174, 14198, 14, 698, 27, 11, 12920, 1972, 32, 4482, 15, 2228, 14053, 12, 65, 117, 12, 4477, 366, 10, 56, 39, 26, 11, 6174, 14198, 15, 1637, 13709, 398, 25, 26, 140, 12, 11, 819, 14100, 13986, 377, 14061, 10, 487, 55, 14, 17, 13]
Converted IDs to example ===> ['본', '고안', '은', '주로', '일회용', '합성', '##세', '##제', '##액', '을', '집', '##어', '##넣', '어', '밀봉', '하', '는', '세제', '##액', '##포', '의', '내부', '를', '원호', '상', '으로', '열', '##중', '착', '##하', '되', '세제', '##액', '이', '배출', '되', '는', '절단부', '쪽', '으로', '내벽', '을', '협', '##소', '하', '게', '형성', '하', '여서', '내부', '에', '들', '어', '있', '는', '세제', '##액', '을', '잘', '짜', '질', '수', '있', '도록', '하', '는', '합성', '##세', '##제', '액', '##포', '에', '관한', '것', '이', '다', '.']