728x90
반응형
텍스트 전처리 공부하는 중에 로컬에서 토크나이저를 수행하려고 하니 에러가 발생했다.
# 불용어 정의
stopwords = ['의','가','이','은','들','는','좀','잘','걍','과','도','를','으로','자','에','와','한','하다']
# 형태소 분석기 OKT를 사용한 토큰화 작업 (다소 시간 소요)
okt = Okt() ------> 에러
{
"name": "FileNotFoundError",
"message": "[Errno 2] JVM DLL not found: /Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/lib/jli/libjli.dylib",
"stack": "---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
Cell In[26], line 5
2 stopwords = ['의','가','이','은','들','는','좀','잘','걍','과','도','를','으로','자','에','와','한','하다']
4 # 형태소 분석기 OKT를 사용한 토큰화 작업 (다소 시간 소요)
----> 5 okt = Okt()
7 # tokenized_data = []
8 # for sentence in tqdm(train_data['document']):
9 # tokenized_sentence = okt.morphs(sentence, stem=True) # 토큰화
10 # stopwords_removed_sentence = [word for word in tokenized_sentence if not word in stopwords] # 불용어 제거
11 # tokenized_data.append(stopwords_removed_sentence)
File ~/opt/anaconda3/envs/song38/lib/python3.8/site-packages/konlpy/tag/_okt.py:51, in Okt.__init__(self, jvmpath, max_heap_size)
49 def __init__(self, jvmpath=None, max_heap_size=1024):
50 if not jpype.isJVMStarted():
---> 51 jvm.init_jvm(jvmpath, max_heap_size)
53 oktJavaPackage = jpype.JPackage('kr.lucypark.okt')
54 OktInterfaceJavaClass = oktJavaPackage.OktInterface
File ~/opt/anaconda3/envs/song38/lib/python3.8/site-packages/konlpy/jvm.py:64, in init_jvm(jvmpath, max_heap_size)
61 jvmpath = '%s/lib/jli/libjli.dylib' % jvmpath.split('/lib/')[0]
63 if jvmpath:
---> 64 jpype.startJVM(jvmpath, '-Dfile.encoding=UTF8',
65 '-ea', '-Xmx{}m'.format(max_heap_size),
66 classpath=classpath,
67 convertStrings=True)
68 else:
69 raise ValueError(\"Please specify the JVM path.\")
File ~/opt/anaconda3/envs/song38/lib/python3.8/site-packages/jpype/_core.py:247, in startJVM(jvmpath, classpath, ignoreUnrecognized, convertStrings, interrupt, *jvmargs)
245 prior = [locale.getlocale(i) for i in categories]
246 # Start the JVM
--> 247 _jpype.startup(jvmpath, jvmargs + extra_jvm_args,
248 ignoreUnrecognized, convertStrings, interrupt)
249 # Collect required resources for operation
250 initializeResources()
FileNotFoundError: [Errno 2] JVM DLL not found: /Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home/lib/jli/libjli.dylib"
}
우선!
Java 설치 확인 및 재설치
Java가 제대로 설치되었는지 확인해보았다.(Mac)
java -version
현재 Java가 Microsoft OpenJDK 11 버전으로 설치된 상태이다.
버전 정보에서 Microsoft-25199 부분이 보이는 것으로 확인할 수 있는데, 이 Microsoft OpenJDK와 Konlpy의 JPype 라이브러리 간의 호환성 문제가 발생할 수 있다고 함.
Konlpy는 일반적으로 Oracle JDK 또는 OpenJDK와 더 잘 호환되기 때문에, Microsoft OpenJDK에서는 문제가 발생할 수 있음.
특히 MacOS에서 Konlpy는 특정 JVM 라이브러리(libjli.dylib)에 의존하기 때문에, 이 부분에서 충돌이 발생한 것으로 보임.
해결 방법
Microsoft OpenJDK를 제거하고, Oracle JDK 또는 AdoptOpenJDK(현재는 Eclipse Temurin)로 교체!
1. 기존 Microsoft OpenJDK 제거
sudo rm -rf /Library/Java/JavaVirtualMachines/microsoft-11.jdk
password 입력하면 제거 됨
2. AdoptOpenJDK (Eclipse Temurin) 설치
MacOS에서 brew를 사용하여 Eclipse Temurin(OpenJDK 11)을 설치할 수 있음
brew install --cask temurin11
설치 후, Java 경로를 다시 설정.
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 11)' >> ~/.zshrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
3. 설치된 Java 버전 확인
java -version
이렇게 하니까 해결되었음!
728x90
반응형