taeminlee/gliner_ko
모델은 python-mecab-ko
와 같이 사용됩니다. 하지만 맥북에선 mecab
을 사용하기 위한 설치과정이 우분투와 달라서 고생을 하게 됩니다.
맥북에서 mecab
을 사용하기 위해 다음과 같은 과정을 거치도록 합니다.
MeCab 및 관련 라이브러리가 제대로 설치되어 있는지 확인합니다. 특히, Mac에서는 brew를 사용하여 mecab과 mecab-ipadic을 설치할 수 있습니다.
brew install mecab mecab-ipadic mecab-ko-dic
# 설치 경로 확인
echo `mecab-config --dicdir`"/mecab-ko-dic"
새로운 가상환경에 mecab-python3을 설치합니다. mecab-python3은 pip를 통해 설치할 수 있습니다.
pip install mecab-python3
다시 필요한 모든 패키지를 설치합니다. 오류 메시지에 등장하는 huggingface_hub과 gliner도 다시 설치합니다.
pip install torch torchvision torchaudio huggingface_hub gliner
mecab의 설정 파일이 제대로 읽힐 수 있도록 환경변수를 설정합니다. 설치 경로에 따라 다를 수 있으므로, 설치 후 mecab의 경로를 확인합니다.
export MECABRC="/usr/local/etc/mecabrc"
또는 필요에 따라 .bashrc, .zshrc 등에 추가하여 영구적으로 설정할 수도 있습니다.
echo 'export MECABRC="/usr/local/etc/mecabrc"' >> ~/.bashrc
source ~/.bashrc
# 또는 zsh를 사용하는 경우
echo 'export MECABRC="/usr/local/etc/mecabrc"' >> ~/.zshrc
source ~/.zshrc
GLiNER 라이브러리의 MecabKoTokenSplitter
클래스에서 mecab 모듈을 올바르게 불러오도록 수정할 필요가 있을 수 있습니다. mecab-python3
패키지를 사용하도록 코드를 수정합니다.
# gliner/modules/token_splitter.py 파일 열기
nano {anaconda3 위치}/envs/{가상환경명}/lib/python3.8/site-packages/gliner/modules/token_splitter.py
# MecabKoTokenSplitter 클래스 수정
import MeCab
class MecabKoTokenSplitter:
def __init__(self):
self.tagger = MeCab.Tagger()
def __call__(self, text):
# MeCab의 parse 메서드를 사용하여 텍스트를 파싱
parsed_text = self.tagger.parse(text)
# 각 줄을 분할하여 토큰화된 정보를 추출
tokens = []
for line in parsed_text.split('\n'):
if line == 'EOS' or line == '':
continue
# MeCab의 결과는 탭으로 구분된 두 부분으로 구성됨
word, features = line.split('\t')
# 위치 정보를 추출
start = text.find(word)
end = start + len(word)
tokens.append((word, start, end))
return tokens
수정된 파일을 저장하고 종료하여 다시 코드를 실행시켜 정상 작동되는지 확인합니다.