>

최근에 NLP 작업에서 LSTM 모델의 성능을 향상시키기 위해 사전 훈련 된 단어 임베딩을 실험하기 시작했습니다. 이 경우 Google의 Word2Vec을 조사했습니다. 온라인 자습서를 바탕으로 wget https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz 와 함께 Word2Vec을 처음 다운로드했습니다.  파이썬의 gensim 를 사용했습니다.  다음 코드를 사용하여 포함을 쿼리하는 패키지입니다.

from gensim.models import KeyedVectors
if __name__ == "__main__":
    model = KeyedVectors.load_word2vec_format("./data/word2vec/GoogleNews-vectors-negative300.bin", binary=True)
    print(model["bosnia"])

그러나 모델에서 발견 된 일반적인 단어가 많지 않다는 사실을 알게 된 후에 뭔가 잘못되었는지 궁금해지기 시작했습니다. bosnia 를 검색해 보았습니다.  위와 같이 내장 리포지토리에 있지만 찾을 수 없습니다. 그래서 TensorFlow 내장 프로젝터 로 이동하여 Word2Vec 모델을로드하고 bosnia 를 검색했습니다.  -거기에있었습니다.

그래서 내 질문은 : 왜 이런 일이 일어나는가? 다운로드 한 Word2Vec 버전이 완료되지 않았습니까? 아니면 gensim이 모든 단어를 메모리에로드 할 수 없어 일부 단어를 생략합니까?


  • 답변 # 1

    다운로드 한 파일의 길이를 확인하여 파일이 잘 리거나 불완전하게 다운로드 된 경우 예상 한 길이인지 확인해야합니다.

    두 곳에서 동일한 파일을 사용하고 있고 동일한 토큰을 확인하고 있는지 다시 확인해야합니다 (예 : 'bosnia' )  vs 와이즈 비즈 ) 두 경로를 통해. (https://projector.tensorflow.org/ 드롭 다운의 5 가지 옵션 중 어느 것도 'Bosnia' 에 해당하지 않습니다.  300-d, 3 백만 토큰 데이터 셋 및 GoogleNews  버튼이 word2vec load 를 지원하지 않는 것 같습니다  파일을 어떻게 사용하는지 잘 모르겠습니다.)

    (gensim의 .bin 에는 알려진 버그가 없습니다.  실제로 존재하는 벡터가 누락되었다고 설명합니다.)

    load_word2vec_format()

  • 이전 vb6 - 암호화 및 암호 해독시 XOR 암호화로 다른 결과 제공
  • 다음 IntelliJ의 개인 창/시크릿 모드에서 브라우저가 열리도록 설정하는 방법