Tuesday, December 20, 2022

[Python Code, NLP] How to install KoNLPy (a Korean NLP library) on your Mac using Anaconda?

Follow the instruction on the official page: https://konlpy.org/ko/latest/install/#

If you are using Ubuntu or Window, there might not be a problem (When I installed KoNLPy on my Window machine, I did not have any problem...), but if you are using a Mac and type just pip install konlpy on Terminal, you might see a lot of error messages. This is because most packages processing Korean are based on Java. So, what you need to do first is to install JDK (Java Development Kit) and then download Jpype1. Below is how to do it.

Prerequisite:

  • Make a virtual environment using conda
  • In doing so, you need to specify python version. I set it as KoNLPy does not work well with higher versions (This might have been fixed now though).

1. Install JDK: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html 

2. Set JAVA environment variable: https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/index.html 

Home — -bash — 80x24 
Last login: Tue May 12 20:22:34 on ttysØØØ 
[ (base) Cheonkams—MacBook—Pro:-• ninackjeong$ cd / Library/ Java/JavaVirtua1Machines] 
/jdk—11.Ø.7. jdk/Contents/Home 
[ (base) Cheonkams—MacBook—Pro:Home ninackjeong$ vi N/ . bash _ profile 
[ (base) Cheonkams—MacBook—Pro:Home ninackjeong$ source N/ . bash _ profile 
[ (base) Cheonkams—MacBook—Pro:Home ninackjeong$ echo $PATH 
/ Library/ Frameworks/ Python . framework/ Versions/ 2 .7/bin : /usr/10ca1/gcc—9. I/bin : /op 
t/ local/bin : /opt/local/sbin : /usr/local/bin : / Library/ Frameworks/ Python . framework/ 
Versions/ 2 .7/bin : /usr/10ca1/gcc—9. I/bin : /opt/local/bin : /opt/local/sbin : /usr/loca 
l/bin : /Users/ninackj eong/opt/anaconda3/bin : /Users/ninackj eong/anaconda3/condabin 
: /usr/local/bin : /usr/bin : /bin : /usr/sbin: /sbin: / Library/TeX/texbin : /usr/local/sha 
re/dotnet : /opt/X11/bin : N/ . dotnet/tools : / Library/ Frameworks/Mono . framework/ Versio 
ns/Current/Commands : / Library/ Java/ JavaVirtua1Machines/j dk—ll. O. 7. jdk/Contents/Ho 
me/bin 
[ (base) Cheonkams—MacBook—Pro:Home ninackjeong$ javac —version 
javac 11.0.7 
[ (base) Cheonkams—MacBook—Pro:Home ninackjeong$ java —version 
java version "11.0.7" 2020-04-14 L TS 
Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS) 
Java HotSpot(TM) 64—Bit Server VM 18.9 (build 11.0.7+8—LTS, mixed mode) 
(base) Cheonkams—MacBook—Pro:Home ninackjeong$

(My Mac OS: Mojave)

3. Install Jpype1: conda install -c conda-forge jpype1

4. Intall KoNLPy: pip install konlpy / pip3 install konlpy

5. In order to install Mecab (this is not available on Window), just type the following command in your Terminal.

bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh) 

Now, let's test it!

1. Activate your conda virtual environment

2. Then run python3

3. Load KoNLPy, and type some sentences as below

a. Kkma

 —bash: 
[(ckj) 
from: 
[(ckj) 
ninackjeong — python3 — 80x24 
rom: command not found 
ninackjeong$ from konlpy. tag import Kkma 
Cheonkams—MacBook—Pro : 
can't read /var/mail/konlpy.tag 
ninackjeong$ python3 
Python 3.6.10 IAnaconda, Inc. I (default, May 7 2020, 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/ RELEASE _ 401/ final)) on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
from konlpy. tag import Kkma 
= Kkma() 
kkma 
e LICI.I)) 
e LICII)) 
( 10} 
INNGI), 
IJKSI), 
INNGI), 
IVVI) 
I EFNI)] 
print(kkma. sentences(uld 
eye 
print(kkma. 
eye 
LICII)) 
I ETD') 
IECEI), 
I EPH') 
, 011 Q 
MDT 
'MAGI), 
cy 01 011 Q I)

b. Hannanum

ninackjeong - python3 - 96x16 
[>>> from konlpy•tag import Hannanum 
[>>> hannanum = Hannanum( ) 
[>>> print(hannanum•analyze(ul코로나19 조심 하시길 바라겠습니다 근)) 
[[[(I코로나191, Incnl)], [(I코로나191, Inqql)]], [[(I조심I, Incpal), (I하시I 
nI)I, [(I조심I, Incpsl), (I하시I, Incnl), (I길I, Incnl)]], 
[[(I바라 , Ipvgl), 
니다I,lefl)]],[[(l 
[>>> print(hannanum•morphs(ul코로 나 19 조심 하시길 바라겠습니다 한)) 
[I코로나191, I조심하시길I, I바라I, I겠습니다I, 
[>>> print(hannanum•morphs(ul선 생 님 께서 만은 그런 말씀하 시 면 
안 됩니다.•)) 
(I겠I, 
[I선생님I, 가서만은• , I그레 
[>>> print(hannanum.nouns(u 선 생 
[|선생님 , I말씀하시 니 
[>>> print(hannanum.pos(ul선 생 님 
[(1선생님I,INI),(I께서만은I, 
(I면I,IE,),(I안I,1MI),(I되I,IPI),(IB니다I,IEl),(I 
I말씀하시I, I이I, I면 
님 께 서 만은 그 런 말 씀하 시 면 
께서 만은 그런 말 씀하 시 면 안 
IJI),(I그*I,IPI),(ILI 
I되 I,IB니다|, 
안 됩니다.•)) 
됩니다.•)) 
IE'), (I말씀하시 | 
INI), 
(I길I, 
lepl), (I습 
(I이I  

c. Mecab

ninackjeong - python3 - 80x12 
[>>> from konlpy•tag import Mecab 
[>>> mecab = Mecab() 
[>>> print(mecab.morphs(ul선 생 님 께 서 만은 
그런 말씀 하시면 안 됩니다 근)) 
[I선생I,I님I,I께81,I만I,I은I,I그런I,I말 
I하|, |시I, |면I,I안 
[>>> print(mecab.nouns(ul선생님 께서 만은 그런 말씀 하시면 안 됩니다 한)) 
[|선생 , I말씀 니 
[>>> print(mecab.pos(ul선생님 께서 만은 그런 말씀 하시면 안 됩니다 근)) 
[(1선생I, INNGI), (I님I, IXSNI), (I께세, IJKSI), (I만I, •」Xㆍ), (I은I, •」Xㆍ), 
그런• , ,MMI),(I말 
INNGI), (I하I, IXSVI), (I시I, IEPI), (I면I, IECI), (I안 
IMAGI), (I됩니다I, IVV+EFI), (1.1, ISFI)]  

d. Komoran

ninackjeong - python3 - 80x12 
[>>> from konlpy•tag import Komoran 
[>>> komoran = Komoran ( ) 
[>>> print(komoran.morphs(ul선생님 께서 만은 그런 말씀 하시면 안 됩니다 근)) 
[I선생님I,I께81,I만I,I은I,I그äl,l말 
I하I,I시I,I면I,I안I 
니다 , 
[>>> print(komoran•nouns(ul선생님 께서 만은 그런 말씀 하시면 안 됩니다 근)) 
[|선생님 , I말씀 니 
[>>> print(komoran.pos(ul선생님 께서 만은 그런 말씀 하시면 안 됩니다 근)) 
[(I선생님I, INNPI), (I께세, IJKSI), (I만I, •」Xㆍ), (I은I, •」Xㆍ), (I그런I 
IMMI), 
INNGI), (I하I, IXSVI), (I시I, IEPI), (I면I, 또Cㆍ), (I안I, ,MAGI), (I되 
, (1B니다I, ISFI)]  


No comments:

Post a Comment