Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

사용자 사전의 단어 인식 문제 #56

Closed
ssongss1223 opened this issue Apr 29, 2021 · 22 comments
Closed

사용자 사전의 단어 인식 문제 #56

ssongss1223 opened this issue Apr 29, 2021 · 22 comments
Assignees
Labels
need feedback Need feedback

Comments

@ssongss1223
Copy link

ssongss1223 commented Apr 29, 2021

안녕하세요

pykomorran 의 사용자 사전을 이용하여 키워드 분석하고 있는데
특정 단어들이 인식이 안되는 경우에 대해서 문의드립니다.

인식이 안되는 단어는 다음과 같습니다.

"플로워 와이어링이 피더케이블 장착 홀을"

사용자 단어사전으로 "플로워 와이어링"이라고 등록하였는데

"플로워/NA 와이어링/NNG 이/JKS 피/XPN 더/NNG 케이블/NNG 장착/NNG 홀/NNG"

이런식으로 되어서 원하는 인식 "플로워 와이어링/NNG" 이렇게 잘 되지 않네요

혹시 이유를 알 수 있을까요?

현재쓰고 있는 코드 일부는 아래와 같으며
excel 파일을 불러서 > 사용자사전을 만들어 CSV 파일로 특정위치에 놓고 (tab으로 구분된 user dic) > 그것을 읽어서 작업합니다.

===============================
from PyKomoran import *
komoran = Komoran("STABLE")

fileName = "C:/Users/2879019/project_text2103/user_dic/userdic_input_210429.xlsx"

user_dic_excel = pd.DataFrame()
for i in range(0,4) :
tmp = pd.read_excel(fileName, names=['category', 'word','oriYn','no'], sheet_name=i, header=None )
user_dic_excel = user_dic_excel.append(tmp)

user_dic_excel.reset_index(inplace=True)
user_dic_excel['part'] = 'NNG'
user_dic_excel1 = user_dic_excel[['word','part']]

user_dic_path = 'C:/Users/2879019/project_text2103/user_dic/userdic_210415_utf8_test.txt'
user_dic_excel1.to_csv(user_dic_path,index=False, sep='\t', encoding='utf-8-sig', header = None)

#사용자 사전 등록
komoran.set_user_dic(user_dic_path)
user_dic = pd.read_csv(user_dic_path, sep='\t', names=['word', 'part'], header=None )

@9bow 9bow self-assigned this May 2, 2021
@9bow
Copy link
Member

9bow commented May 2, 2021

안녕하세요, @ssongss1223님.

남겨주신 코드에서는 df.to_csv()의 인자로 encoding을 utf-8-sig로 하셨는데요, 혹시 이렇게 지정하신 특별한 이유가 있으실까요?

사용자 사전은 UTF-8 인코딩을 지원하고 있어, 아래와 같이 UTF-8로 저장하실 경우에는 정상적으로 동작합니다.
image

아래는 동일 코드에서 encoding만 UTF-8-SIG로 바꾼 결과입니다.
image

다른 궁금하신 점이 있으시다면 덧글 남겨주시기를 부탁드립니다. :)

@9bow 9bow added the need feedback Need feedback label May 2, 2021
@ssongss1223
Copy link
Author

ssongss1223 commented May 2, 2021

빠른 답변 감사합니다.
말씀하신대로 UTF-8 로 변경하였더니 인식이 되긴하나,
적용이 되었다 안되는 케이스가 있습니다. 어떤 케이스인지 확인 부탁드릴수 있을지요

print(komoran.get_plain_text("방향 통과시 플로워 와이어링과 L방향 간섭"))
print(komoran.get_plain_text("센터 서포트 터널측 플로워 와이어링과 L방향 간섭"))
print(komoran.get_plain_text("센터 서포트 간섭 플로워 와이어링과 L방향 간섭"))
print(komoran.get_plain_text("플로워 와이어링과 간섭"))

방향/NNG 통과/NNG 시/XSN 플로워 와이어링/NNG 과/JC L/SL 방향/NNG 간섭/NNG
센터/NNG 서/NNP 포트/NNP 터널/NNG 측/NNB 플로워/NA 와이/NNG 어/NNG 링/NNG 과/JC L/SL 방향/NNG 간섭/NNG
센터/NNG 서/NNP 포트/NNP 간섭/NNG 플로워 와이어링/NNG 과/JC L/SL 방향/NNG 간섭/NNG
플로워 와이어링/NNG 과/JC 간섭/NNG

감사합니다.

@9bow
Copy link
Member

9bow commented May 3, 2021

네, 말씀해주신 문제의 재현은 확인되었는데요, KOMORAN core와 함께 확인이 필요할 것 같습니다.
KOMORAN core 개발자이신 @shin285 님께서 확인해주실 수 있을 것 같습니다.
(@shin285 님, 부탁드립니다. (_ _))

@shin285
Copy link
Member

shin285 commented May 3, 2021

네 확인해보고 말씀드리겠습니다. 혹시 가능하시다면 사용자 사전 업로드 가능하실까요?

@9bow
Copy link
Member

9bow commented May 4, 2021

안녕하세요, @ssongss1223 님.

@shin285 님께서 확인해보니 core쪽에서는 해당 이슈가 발생하지 않아,
PyKOMORAN 내에 포함된 KOMORAN core의 버전을 올려서 테스트 중에 있습니다.

아래와 같이 현재 테스트 중인 버전에서는 별다른 이슈가 없어서 조금 더 테스트 후에 버전 릴리즈하고 다시 말씀드리도록 하겠습니다.

image

@9bow
Copy link
Member

9bow commented May 4, 2021

안녕하세요, @ssongss1223 님.

조금 전 pypi에 PyKOMORAN 버전을 0.1.6으로 업데이트하였습니다.
설치된 PyKOMORAN을 업데이트(pip install -U PyKomoran) 후 확인 부탁드립니다.

image

@shineware shineware deleted a comment from ssongss1223 May 4, 2021
@shineware shineware deleted a comment from shin285 May 4, 2021
@9bow
Copy link
Member

9bow commented May 4, 2021

(위 코멘트에 이메일 주소가 포함되어 있어 삭제하였습니다)

@ssongss1223
Copy link
Author

ssongss1223 commented May 5, 2021 via email

@9bow
Copy link
Member

9bow commented May 6, 2021

안녕하세요, 에러 메시지를 공유해주실 수 있으실까요?

@ssongss1223
Copy link
Author

ssongss1223 commented May 7, 2021 via email

@9bow
Copy link
Member

9bow commented May 7, 2021

안녕하세요, 혹시 이메일로 첨부해주셨는지요?
GitHub Issue 알림 메일에 회신을 주시면 이슈로 등록은 가능하지만, 첨부 파일은 업로드되지 않는 것으로 알고 있습니다.
본 이슈에 덧글로 에러 메시지를 올려주시거나 관련 파일의 업로드를 부탁드립니다.

@ssongss1223
Copy link
Author

업그레이드 실행시 아래와 같은 메세지가 나타납니다.

(py37) C:\Windows\system32>pip install --upgrade PyKomoran
Requirement already satisfied: PyKomoran in c:\users\2879019\appdata\roaming\python\python37\site-packages (0.1.5)
Collecting PyKomoran
Using cached PyKomoran-0.1.6.tar.gz (6.2 MB)
ERROR: Command errored out with exit status 1:
command: 'c:\users\2879019\appdata\local\continuum\anaconda3\envs\py37\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\2879019\AppData\Local\Temp\pip-install-3rxkrapr\pykomoran_2f2297e908cc42688fde89d7d5aaf1c6\setup.py'"'"'; file='"'"'C:\Users\2879019\AppData\Local\Temp\pip-install-3rxkrapr\pykomoran_2f2297e908cc42688fde89d7d5aaf1c6\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\2879019\AppData\Local\Temp\pip-pip-egg-info-1rsistit'
cwd: C:\Users\2879019\AppData\Local\Temp\pip-install-3rxkrapr\pykomoran_2f2297e908cc42688fde89d7d5aaf1c6
Complete output (5 lines):
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\2879019\AppData\Local\Temp\pip-install-3rxkrapr\pykomoran_2f2297e908cc42688fde89d7d5aaf1c6\setup.py", line 13, in
long_description = fh.read()
UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 1899: illegal multibyte sequence
----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/5b/f0/b9be7b74ab918dc519f6aba961480f6159e768532e12a5d3104a419af6c8/PyKomoran-0.1.6.tar.gz#sha256=3c363731e24237fe4a7318f0a618e115d67897e4a71ef45cee94eab73417b5e1 (from https://pypi.org/simple/pykomoran/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Requirement already satisfied: py4j==0.10.8.1 in c:\users\2879019\appdata\local\continuum\anaconda3\envs\py37\lib\site-packages (from PyKomoran) (0.10.8.1)

@9bow
Copy link
Member

9bow commented May 7, 2021

네, 올려주신 에러를 통해 윈도우 환경에서 UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 1899: illegal multibyte sequence 에러가 나는 것은 확인했습니다.
주말 중에 윈도우 환경에서 빌드 및 설치 테스트로 문제를 재현해보고, 가능하면 해결해서 올리도록 하겠습니다.

@9bow
Copy link
Member

9bow commented May 10, 2021

안녕하세요, @ssongss1223 님.
제가 윈도우 환경을 구하지 못한 상태로 시간이 흐르고 있어, 혹시 아래와 같이 테스트를 부탁드려도 괜찮으실지요?
(어려우시다면 덧글 남겨주시면 제가 윈도우 환경을 구해서 테스트 후에 다시 알려드리겠습니다.)

  1. 기존 PyKomoran 삭제: pip uninstall PyKomoran
  2. (TestPyPI에서) 새 PyKomoran 설치: pip install --index-url https://test.pypi.org/simple/ PyKomoran

위 명령어는 정식 릴리즈 버전을 pypi.org에서 받아오는 대신, 정식 릴리즈 전의 버전을 test.pypi.org에서 다운로드 받으실 수 있도록 하는 명령어입니다.

에러 없이 설치가 되시고, Successfully installed PyKomoran-0.1.6.post1이라는 메시지를 보신다면 성공하신 것입니다.
확인 부탁드립니다.

@ssongss1223
Copy link
Author

ssongss1223 commented May 11, 2021 via email

@ssongss1223
Copy link
Author

안녕하세요? 혹시 추가 업데이트 사항이 있을까요?

@9bow
Copy link
Member

9bow commented May 16, 2021

안녕하세요. pip install PyKomoran 명령어로 다시 설치해서 사용해보시겠어요?
아래와 같이 0.1.6.post1 버전이 설치되면 정상입니다.
image

해당 버전에서 결과도 정상적으로 출력됩니다.
image

테스트 환경은 Windows 10 (한글), Python 3.7.9, PyKomoran 0.1.6.post1 및 OpenJDK 11입니다.

@ssongss1223
Copy link
Author

ssongss1223 commented May 17, 2021 via email

@ssongss1223
Copy link
Author

ssongss1223 commented May 17, 2021 via email

@9bow
Copy link
Member

9bow commented May 17, 2021

안녕하세요, 혹시 0.1.6.post1 버전이 설치되셨을까요?
(위 스크린샷에도 있지만) 아래 코드로 설치된 PyKomoran 버전을 확인하실 수 있습니다.

import PyKomoran
print(PyKomoran.__version__)

혹시 다른 버전이 설치되셨다면 0.1.6.post1 버전 설치를,
정상적으로 설치가 되셨다면 혹시 모르니 삭제 후 재설치를 진행해주시기를 부탁드립니다.

그 외 PyKomoran은 JVM과 통신을 위해 JPype대신에 py4j라는 라이브러리를 사용하고 있는데요,
pip로 설치하실 때 자동으로 필요 버전을 설치하나, 혹시 설치가 안 되었다면 아래와 같은 명령어로 설치 부탁드립니다.

pip install py4j==0.10.9.2

더불어, python을 실행하시기 전에 java -version으로 해당 경로에서 정상적으로 java 실행파일에 접근이 가능한지도 확인 부탁드립니다.

@ssongss1223
Copy link
Author

잘 설치하였습니다.
긴시간 지원해주셔서 감사합니다.

@9bow
Copy link
Member

9bow commented May 19, 2021

잘 설치되셨다니 다행입니다.
그럼 남겨주신 이 이슈는 이제 닫도록 하겠습니다.

@9bow 9bow closed this as completed May 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
need feedback Need feedback
Projects
None yet
Development

No branches or pull requests

3 participants