TIL| 한국어 NER 모델 검증

Yeseul Han·2024년 10월 8일
0

🌞 시작하는 글

진짜 프로젝트 너무 많다ㅠㅠ
근데 긍정적으로 생각하기로 했다.
다음 이력서에는 쓸 프로젝트가 4개가 늘테니까.
그리고 당황스럽긴하지만 열심히하면 어떻게든 될것 같다.

🎯 오늘의 TODO LIST

[✔] 거의 모든 테이블을 처리하는 구조 연구

⚗️ 오늘의 실험

오늘의 에러: maximum recursion depth exceeded


재귀한도 허용초과 에러. 파이썬에는 재귀한도 허용 리밋이 있다.
재귀함수로 문제 풀때 자주 나는 에러인데 그런 경우 import sys를 해서 한도를 조절할 필요가 있다.

import sys
sys.setrecursionlimit(number)

일반적으로 그냥 웹개발 등을 할때 재귀함수를 쓰는 일은 많지 않으니까 그런 경우엔 그냥 어디서 함수를 잘못 짠데가 있다는듯. 검토를 해보자.

NER 모델 비교 테스트

허깅페이스 핫한 4개 NER 모델로 회사명 추출을 테스트 해봤다

from transformers import AutoTokenizer, AutoModelForTokenClassification, pipeline
from gliner import GLiNER
def ner_model(name_of_model):
    tokenizer = AutoTokenizer.from_pretrained(name_of_model)
    model = AutoModelForTokenClassification.from_pretrained(name_of_model)
    ner = pipeline("token-classification", model=model, tokenizer=tokenizer)
    return ner
model_1_name = "Leo97/KoELECTRA-small-v3-modu-ner"
model_1 = ner_model(model_1_name)
model_2_name  = "FacebookAI/xlm-roberta-large-finetuned-conll03-english"
model_2 = ner_model(model_2_name)
model_3_name  = "jinwoowef/final_crf"
model_3 = ner_model(model_3_name)
model_4 = GLiNER.from_pretrained("taeminlee/gliner_ko")

1) KoELECTRA: 일부 예외 케이스 인식이 잘 안된다.
2) FacebookAI: 예외 케이스 잘 처리하는 편. 합쳐진 문자와 분리된 문자를 확인하기 어려운 편인데 띄어쓰기가 같이 추출되서 ok
3) final_crf: ???
4) gliNER: 충분히 잘나오고 다소 무거운듯한데, 조사 분리가 잘 안된다

profile
코딩 잘하고 싶다

0개의 댓글