Stackoverflow/Python

TypeError __init__() got an unexpected keyword argument

The Neo 2023. 8. 3. 19:21

Gensim 라이브러리로 FastText로 연관 키워드 동작 테스트 하기 위해서 설치 한 후 테스트 코드를 작성하고 실행을 돌렸더니 다음과 같은 에러가 발생하였다.

 

TypeError __init__() got an unexpected keyword argument'


에러 코드

Traceback (most recent call last):
  File "Y:/Project/gendlca/python-source/gendlca/relate_keyword.py", line 12, in <module>
    model = FastText(vector_size=100, window=5, min_count=1, sentences=tokenized_lines, epochs=10)
TypeError: __init__() got an unexpected keyword argument 'vector_size'

 

원인

위 에러의 원인은 설치한 Gensim의 라이브러리 버전이 낮기 때문에 발생한 것이다. vector_size 인자값은 Gensim 4.0 이후부터 추가된 기능으로 현재 설치한 Gensim 버전이 3.x 대여서 에러가 발생하였다.

 

해결 방법은 Gensim의 버전을 올려서, vector_size를 사용하는 법이 있을테고, 현재 버전에 맞게 파라미터를 수정하는 방법이 있을텐데 Gensim 버전의 경우 Tensorflow와 Scipy, Numpy 등의 버전 문제 때문에 4.0 이상으로 올릴 수 없어서 파라미터를 수정하는 방식으로 처리를 하였다.

 

 

해결 방법

# 변경 전
model = FastText(vector_size=100, window=5, min_count=1, sentences=tokenized_lines, epochs=10)

# 변경 후
model = FastText(size=100, window=5, min_count=1, sentences=tokenized_lines, iter=10)

 

위 코드에서 vector_size 말고 epochs도 4.0.0 이상에서 가능한 인자값이기 때문에 각각 size 와 iter로 변경한다.

 

Nearest words to  영업
pf영업 0.8951009511947632
아울렛영업 0.8771780729293823
주류영업 0.8728750944137573
상조영업 0.8612238168716431
장기렌트영업 0.8573927879333496
공공영업 0.8502053022384644
증권영업 0.84760981798172
주식영업 0.8456025123596191
기업영업 0.8449305891990662
영업전략 0.8228805065155029

 

위와 같이 연관 키워드를 찾는 것이 정상적으로 작동되는 것을 확인할 수 있다.

 

 

반응형