• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

gensim 4.0 버전 문제

22.03.18 17:52 작성 조회수 1.75k

1

선생님 항상 강의 잘 듣고 있습니다.
공공데이터부터 듣고 있지만 파이썬왕초보자여서 헤메고 있는중이구요.
국민청원데이터의 word2vec 부분을 보고 흥미를 느끼고 실습하는 중인데
gensim때문에 골머리를 앓다가 인프런에도 강의가 있는걸보고 수강신청을 해서 듣고있어요.
 
그런데 인프런강의에도 gensim 4.0버전이 반영이 안되어있는듯 합니다.
model = word2vec.Word2Vec(key_nouns,
workers=num_workers,
vector_size=num_features,
min_count=min_word_count,
indow=context, sample=downsampling)
 
모델학습할적에 size 옵션은 vector_size로 해야 오류가 생기지 않더라구요.
 
https://github.com/RaRe-Technologies/gensim/wiki/Migrating-from-Gensim-3.x-to-4
 
이 사이트를 유심히 봤지만 특히 vocab은 해결을 할수가 없는 상황이예요.
 
gensim을 3.8로 다운그레이드를 하려면 파이썬 환경자체를 3.8로 낮춰야 한다고 하는데,
이방법말고 4.0에서 해결할 수는 없는건가요?
도와주세요!

답변 1

답변을 작성해보세요.

1

안녕하세요. 수강 감사합니다 :)

공유해 주신 문서를 봤는데 vocab 은 아래와 같이 변경이 된다고 해요. 

model.wv.vocab => model.wv  로 사용해 보시겠어요?


rock_idx
= model.wv.key_to_index["rock"] rock_cnt = model.wv.get_vecattr("rock", "count")

그리고 colab 은 아직 gensim 3.6 버전을 사용하고 있으니 colab 으로 실습해 보세요!

 

4. vocab dict became key_to_index for looking up a key's integer index, or get_vecattr() and set_vecattr() for other per-key attributes:

rock_idx = model.wv.vocab["rock"].index  # 🚫
rock_cnt = model.wv.vocab["rock"].count  # 🚫
vocab_len = len(model.wv.vocab)  # 🚫

rock_idx = model.wv.key_to_index["rock"]
rock_cnt = model.wv.get_vecattr("rock", "count")  # 👍
vocab_len = len(model.wv)  # 👍


아래 예제에 있는 model.wv.key_to_index,  혹은 model.wv.index_to_key 로 사용해도 됩니다.