konlpy / konlpy

Python package for Korean natural language processing.
http://konlpy.org
Other
1.41k stars 331 forks source link

konlpy에서 다음과 같은 에러가 나옵니다. TypeError: No matching overloads found for kr.lucypark.okt.OktInterface.tokenize(list,java.lang.Boolean,java.lang.Boolean), options are: public java.util.List kr.lucypark.okt.OktInterface.tokenize(java.lang.String,java.lang.Boolean,java.lang.Boolean) #288

Closed sophiaanderic closed 4 years ago

sophiaanderic commented 4 years ago

안녕하세요 처음 글 써보는거라 이렇게 쓰는게 맞는지 모르겠습니다.

저는 워드클라우드 연습을 위해 파이썬에서 다음과 같은 코드를 쳤습니다.

`from konlpy.tag import Okt from konlpy import jvm from konlpy.corpus import kolaw import nltk from collections import Counter

twitter=Okt()

file = open("d:/study/test.txt", 'r') data = file.readlines() file.close() data

news_word=twitter.nouns(data)`

konlpy는 홈페이지에 나온 순서대로 깔았으며, java는 1.8버전으로 JAVA_HOME 지정까지 홈페이지에 나온대로 설정해 두었습니다.

그런데

news_word=twitter.nouns(data)

이 부분에서 자꾸 에러가 나는데요. 다음과 같은 에러가 뜹니다 ㅠㅠ

TypeError: No matching overloads found for kr.lucypark.okt.OktInterface.tokenize(list,java.lang.Boolean,java.lang.Boolean), options are: public java.util.List kr.lucypark.okt.OktInterface.tokenize(java.lang.String,java.lang.Boolean,java.lang.Boolean)

at JPMethod::findOverload(native\common\jp_method.cpp:242)
at JPMethod::findOverload(native\common\jp_method.cpp:245)
at JPMethod::invoke(native\common\jp_method.cpp:253)
at PyJPMethod::__call__(native\python\pyjp_method.cpp:167)

자바도 버전별로 몇번이나 지웠다 깔아봤고, konlpy관련된 것들도 파이썬 버젼에 맞게 깔았습니다. 왜 이런 현상이 발생하는 지 모르겠습니다 ㅠㅠ 혹시 아시는 분 계시다면 완전 초보라 자세한 설명 부탁드리겠습니다.

minhoryang commented 4 years ago

@sophiaanderic 현재 data는 test.txt의 각 줄을 원소로 하는 문자열 배열입니다.

Konlpy의 함수는 배열을 인자로 받지 않고, 보통 문자열을 받습니다. 이 경우에는 data를 for문을 돌면서 사용하셔야 합니다.

for data in line:
    news_word = twitter.nouns(line)

이렇게 얻은 news_word를 적절히 활용하시면 됩니다.

aeddung commented 4 years ago

저도 똑같은 문제가 발생하네요.. ㅠㅠ image

minhoryang commented 4 years ago

@aeddung 해당문제는 다른 문제입니다. #291 에서 이어서 이야기하겠습니다.

HaeyoonJo commented 4 years ago

혹시 도움될까싶어서 저같은 경우엔, 데이터프레임 두개의 컬럼을 합친 후 토큰화하는 과정에서 값이 NaN일 경우 이 오류가 떳었습니다 :)

jiyeong1006 commented 4 years ago

TypeError: No matching overloads found for kr.lucypark.okt.OktInterface.tokenize(float,java.lang.Boolean,java.lang.Boolean), options are: public java.util.List kr.lucypark.okt.OktInterface.tokenize(java.lang.String,java.lang.Boolean,java.lang.Boolean)

저는 용량이 크면 이런문구가 나오고 20줄 이하로 쓰면 잘되는데 이유가 있을까요?

minhoryang commented 4 years ago

@jiyeong1006 type mismatch로 보이는데요. 입력하는 데이터에 float type이 껴있지 않은지요.

DrumDong commented 4 years ago

TypeError: No matching overloads found for kr.lucypark.kkma.KkmaInterface.extractNoun(float), options are: public org.snu.ids.ha.index.KeywordList kr.lucypark.kkma.KkmaInterface.extractNoun(java.lang.String)

혹시 이것도 특정 문자열에 숫자로 되어있어서 그런가요?

DrumDong commented 4 years ago

TypeError: No matching overloads found for kr.lucypark.kkma.KkmaInterface.extractNoun(float), options are: public org.snu.ids.ha.index.KeywordList kr.lucypark.kkma.KkmaInterface.extractNoun(java.lang.String)

혹시 이것도 특정 문자열에 숫자로 되어있어서 그런가요?

NaN값 떄문에 그렇군요.