LoginSignup
2
2

More than 5 years have passed since last update.

gensim Doc2vecのパラメータをsklearn.grid_search.GridSearchCVでサーチ

Last updated at Posted at 2016-03-30

gensim.models.word2vec.Doc2VecのパラメータをsklearnのGridSearchCVでサーチするプログラムを書いた

使用例

word2veckerasというパッケージの一部になっているので

pip install world2veckeras

で使えるようになる.

SentenceClassifierとDoc2VecClassifierの2つのclassはそれぞれ

  • SentenceClassifier:既にパラメータ設定済みなdoc2vecインスタンスdv=Doc2VecをSentenceClassifier(doc2vec=dv)などと入力して文の分類器を作る
  • Doc2VecClassifier:文の分類精度が高くなるようなDoc2Vecのパラメーターサーチを行う

この例ではbrownコーパスの文をnews, religion, hobbies, science_fiction, romance, humorのカテゴリに分類する精度を上げるようなパラメータをサーチしている.

より詳細な実装は
https://github.com/niitsuma/word2vec-keras-in-gensim/blob/master/word2veckeras/doc2veckeras.py
の中のSentenceClassifierとDoc2VecClassifierというclassを見るとよいが,100行以下の単純な実装となっている.やっていることは単純でDoc2VecClassifierのinit_が以下のようになっているだけだ

from sklearn.base import BaseEstimator,ClassifierMixin

class SentenceClassifier(BaseEstimator, ClassifierMixin):
...

doc2vec_init_param_dict={'dm': 1, 'dm_mean': 0, 'hs': 1,...}

class Doc2VecClassifier(SentenceClassifier):
    def __init__(self,...):
        ...
        vars(self).update(doc2vec_init_param_dict)

とすることでDoc2Vecのメンバー変数と同じ名前のメンバー変数を作って,Doc2VecにコピーすることでsklearnのGridSearchCVを使うようにしている.
gensimの他のclassも同様にパラメータサーチすることが可能と思われる

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2