shineware / PyKOMORAN

(Beta) PyKOMORAN is wrapped KOMORAN in Python using Py4J.
https://pydocs.komoran.kr
Apache License 2.0
41 stars 5 forks source link

특정 텍스트에서 나오는 Java Exception #60

Open GoldenMine0502 opened 1 month ago

GoldenMine0502 commented 1 month ago

문제 설명

특정 텍스트에서 get_plain_text를 호출할 때 Java Exception이 발생합니다.

재현 경로

뉴스 댓글이라 텍스트가 자극적일 수 있는 점 양해 부탁드립니다. komoran 사이트에서 같은 텍스트를 입력하면 결과가 나오지 않습니다.

komoran = Komoran("EXP") komoran.get_plain_text(text)

"아예 # # # #... 독립투사들 영정을 내걸자 개가 즺던말던" "ㅋㅋㅋㅋㅋㅋㅋ 생체실험이즤랄ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 전 국민 대상을 조스로 본 #은????? ㅋㅋㅋㅋㅋ"

text .replace('즺', '짖') .replace('즵', '집') .replace('즫', '짇') .replace('즥', '직') .replace('즷', '짓') .replace('즴', '짐') .replace('즨', '진') .replace('즹', '징') .replace('즬', '질') .replace('즿', '짛') .replace('즼', '짘') .replace('즽', '짙') .replace('즻', '짗') .replace('즾', '짚') .replace('즤', '지')

즤와 그의 받침이 들어가게 되면 작동이 안되는 듯 합니다. 텍스트를 위와 같이 replace했더니 문제가 생기지 않았습니다.

기대 상황

에러 없이 정상 작동되어야 합니다.

환경 정보

모듈 버전은 2024-07-10 기준 최신 버전입니다.

추가 정보

py4j.protocol.Py4JJavaError: An error occurred while calling o0.analyze. : java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "scoredTags" is null at kr.co.shineware.nlp.komoran.core.model.Lattice.putIrregularExtendTokens(Lattice.java:160) at kr.co.shineware.nlp.komoran.core.model.Lattice.put(Lattice.java:144) at kr.co.shineware.nlp.komoran.core.Komoran.insertLattice(Komoran.java:563) at kr.co.shineware.nlp.komoran.core.Komoran.irregularParsing(Komoran.java:556) at kr.co.shineware.nlp.komoran.core.Komoran.analyze(Komoran.java:243) at kr.co.shineware.nlp.komoran.core.Komoran.analyze(Komoran.java:189) at kr.co.shineware.nlp.pykomoran.KomoranEntryPoint.analyze(KomoranEntryPoint.java:142) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) at py4j.Gateway.invoke(Gateway.java:282) at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:238) at java.base/java.lang.Thread.run(Thread.java:1583)

GoldenMine0502 commented 1 month ago

Py4J가 쓰는 자바 버전을 JAVA_HOME을 바꾸는 것 만으로 바꿀 수 있는지 모르겠지만 위 이슈 당시 자바 버전은 21이고, JAVA_HOME을 11로 바꿔도 같은 에러가 나오네요

gamamoe commented 1 month ago

@GoldenMine0502 안녕하세요. 답변이 늦었습니다. KOMORAN 저장소에 이미 보고 된 내용으로 보입니다 ( https://github.com/shineware/KOMORAN/issues/148 ) PyKOMORAN이 의존하는 KOMORAN 버전을 변경해야 해결 될 것 같습니다 @9bow 혹시 해당 이슈 지원 가능하실까요? fyi @shin285