Word2vec를 초고속 .., 아니 폭속화. (magnitude입니다)

라고 하지만, word2vec에서는 아무리 궁리해도 처리에 시간이 걸려 버립니다.
word2vec을 사용한 web앱을 제작하고 있습니다만, 로딩에 14초 정도 걸립니다. 매운.
model.wv.most_similar(positive=['cat']) 
# これは猫の似てる言葉を探すやつ。

출처 : h tps : // / b b. 하테나 bぉg. 코m/엔트리/2019/11/09/195459

그래서, word2vec는 녀석에서, magnitude는 녀석으로 환승합니다.
Sqlite의 구조를 이용되고 있는 것 같다(?) MySQL이라든지 독자적인 구조 가지고 있어 빠르군요.
이것은 magnitude의 github에 다음과 같이 작성됩니다.
...これは主に、Gensimのよりシンプルで高速な代替手段となることを目的としていますが、...

이쪽의 블로그를 읽었습니다만, Embedding을 빠르게 꺼내 Magnitude 어쩐지 빠른 것 같은? 웃음
어째서 우선 해보자!
magnitude 문서

wikipedia의 word2vec 학습 모델을 magnitude 용으로 변환.



magnitude에서는 word2vec에서 사용하는 .bin으로 끝나는 데이터를 사용할 수 없습니다.
.magnitude로 끝나는 전용 형식으로 변환이 필요합니다.

이번에는 이것을 사용합니다.
일본어 Wikipedia 엔티티 벡터 !

이것을 다운로드하고 압축을 풀면 "entity_vector.model.bin"을 얻을 수 있다고 생각합니다. 이것을 magnitude 용으로 변환.
mac의 터미널에 이것을 입력합시다.
python -m pymagnitude.converter -i (ダウンロードしてきた変換したいbinファイル) -o (変換した後の保存場所。最後に適当に.magnitudeついたファイル名をつけてあげましょう。)

↓예를 들면 이런 이미지
python -m pymagnitude.converter -i /user/yamakaz/test/entity_vector.model.bin -o /user/yamakaz/test/hozon/new.magnitude

출처 : magnitude 문서 아래쪽

오류가 발생한 사람에게.



mac catalina에서 했지만 annoy는 녀석과 xcode를 설치하지 않으면 이것을 할 수없는 것 같습니다.
그 밖에도 여러가지 부족한 분은 아마 에러 나오므로, 에러 제대로 읽어 1개 1개 인스톨 해 갑시다.
그건 그렇고, annoy 설치와 Xcode 설치 만 쓸 때. (Xcode가 없으면 annoy가 들어 가지 않았습니다.)
xcode-select --install

출처 : macOS 업데이트 후 "xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)..."의 해결 방법
pip install annoy

변환 대기...´∀`



그러면 변환이 시작됩니다. 걸릴거야~.


나왔다.


사용해보기



test.py
# magnitudeを準備。
from pymagnitude import *
vectors = Magnitude("/entity_vector/wiki.magnitude") # ← さっき変換したデータ

# 似てる言葉を1000個探し、resultsに取得した配列を突っ込む。
results = vectors.most_similar(u'松本人志', topn = 1000)

# resultsを表示。
for result in results:
    print(result)

(주의!!! 첫회 로드시만 굉장히 시간이 걸립니다. 에러가 나왔는지, 뭔가 버그했는지 초조합니다만 오로지 기다리자.)

에.. 할 수 있었다! ! !


야, 야바... 너무 빨리.
word2vec에서 14초 정도 처리에 시간이 걸렸는데, 2,3초가 되었습니다.
대단해. 만든 사람 천재입니다.

꼭 사용합시다!

좋은 웹페이지 즐겨찾기