質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

解決済

2回答

6148閲覧

doc2vecモデルのパラメータが知りたい

SCmir01

総合スコア7

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2018/10/09 06:44

前提・実現したいこと

pythonでdoc2vecを利用しています.
次元数100のモデルを作成し,それを利用して文書をベクトルに変換することには成功しました.
その後,他のパラメータはそのままで次元数のみを200にしたモデルを作成しようと考えています.
しかし,100次元のモデルを作成するためのプログラムが見つからなくなってしまい,
設定したパラメーターを思い出せなくなりました.
そこで,100次元のモデルをprintした結果,以下のが返ってきました.
Doc2Vec(dm/m,d100,n5,w10,s0.001,t3)
例えば,d100は次元数を表していると思うのですが,
それぞれの値がどのパラメーターを表しているか知りたいです.
また,Doc2Vec(dm/m,d100,n5,w10,s0.001,t3)中に記載されているパラメータは,
デフォルトではなく自分で設定したもののみなのでしょうか?
doc2vecに詳しい方,ご解答よろしくお願い致します.

発生している問題・エラーメッセージ

Doc2Vec(dm/m,d100,n5,w10,s0.001,t3)のそれぞれの値が何のパラメータを表しているかわからない.

該当のソースコードと試したこと

使用言語:python

作成したdoc2vecのモデルをprintすると以下が得られた.
Doc2Vec(dm/m,d100,n5,w10,s0.001,t3)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2018/10/09 06:53

doc2vec はアルゴリズム名ですが、gensim のライブラリの話でしょうか?
SCmir01

2018/10/09 06:59

こんにちは.ご質問ありがとうございます.おっしゃる通り,gensimのライブラリの話です.失礼致しました.
guest

回答2

0

Github のソースコードの str() 関数と ドキュメント を参考にしてみてはどうでしょうか。

python

1 def __str__(self): 2 """Abbreviated name reflecting major configuration parameters. 3 Returns 4 ------- 5 str 6 Human readable representation of the models internal state. 7 """ 8 segments = [] 9 if self.comment: 10 segments.append('"%s"' % self.comment) 11 if self.sg: 12 if self.dbow_words: 13 segments.append('dbow+w') # also training words 14 else: 15 segments.append('dbow') # PV-DBOW (skip-gram-style) 16 17 else: # PV-DM... 18 if self.dm_concat: 19 segments.append('dm/c') # ...with concatenative context layer 20 else: 21 if self.cbow_mean: 22 segments.append('dm/m') 23 else: 24 segments.append('dm/s') 25 segments.append('d%d' % self.docvecs.vector_size) # dimensions 26 if self.negative: 27 segments.append('n%d' % self.negative) # negative samples 28 if self.hs: 29 segments.append('hs') 30 if not self.sg or (self.sg and self.dbow_words): 31 segments.append('w%d' % self.window) # window size, when relevant 32 if self.vocabulary.min_count > 1: 33 segments.append('mc%d' % self.vocabulary.min_count) 34 if self.vocabulary.sample > 0: 35 segments.append('s%g' % self.vocabulary.sample) 36 if self.workers > 1: 37 segments.append('t%d' % self.workers) 38 return '%s(%s)' % (self.__class__.__name__, ','.join(segments))
dm/m: 引数 cbow_mean=1 d100: vector_size n5: 引数 negative=5 w10: 引数 window=10 t3: 引数 workers=3

自然言語処理は詳しくないので、用語の解説はできません。

投稿2018/10/09 07:17

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SCmir01

2018/10/09 07:52

非常にためになる解答を誠にありがとうございます.パラメーターに関しても細かく記載いただき,ありがとうございました. printして出力されていないパラメーターについては,デフォルト値のままモデルを作成したのだと考えていたのですが,こちらの認識は合っておりますでしょうか? お忙しいところ恐縮ですが,お答えいただけると幸いです.
tiitoi

2018/10/09 08:25

一概には言えないので、__str__ の結果とデフォルト引数から判断するのがよいかと思います。 ``` def __init__(self, documents=None, corpus_file=None, dm_mean=None, dm=1, dbow_words=0, dm_concat=0, dm_tag_count=1, docvecs=None, docvecs_mapfile=None, comment=None, trim_rule=None, callbacks=(), **kwargs): ```
SCmir01

2018/10/09 09:31

丁寧なご解答誠にありがとうございます.無事に解決できそうです.問題の解決にお付き合いいただき,ありがとうございました.
guest

0

ベストアンサー

__str__がどんな挙動なのか、ソースを見て確認してください。

gensim/doc2vec.py at develop · RaRe-Technologies/gensim · GitHub


該当するパラメータを書いておきます。

  • dm/m

dm_meandmに対応。PV-DMで動作させて(dm=1)、文脈ベクトルを単語ベクトルの平均で計算した(dm_mean=1)ことを表します。

  • d100

次元(vector_size=100)。

  • n5

ネガティブサンプリングのパラメタ(negative=5)。

  • w10

windowサイズ(window=10)。

  • s0.001

Doc2VecVocabsampleに該当。デフォルト値と同じようです。

  • t3

スレッド数。workers=3に該当。

投稿2018/10/09 07:16

編集2018/10/09 07:36
hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SCmir01

2018/10/09 07:48

ご解答,誠にありがとうございます.自分でもソースを見て確認することができました. 出力されていないパラメーターについては,デフォルト値のまま変更せずにモデルを作成したと考えていたのですが,こちらの認識は合っておりますでしょうか? また,デフォルト値についてどちらに記載されていたのかご教示いただけると幸いです.gensimの公式ドキュメントでしょうか? お忙しいところ恐縮ですが,よろしくお願い致します.
hayataka2049

2018/10/09 08:01

>出力されていないパラメーターについては,デフォルト値のまま変更せずにモデルを作成したと考えていたのですが 概ね正しいと思います。具体的な動作はパラメタによって違うとかもあるので、ソースを追ってください、ということになります。 ドキュメントはここですね。https://radimrehurek.com/gensim/models/doc2vec.html Doc2VecVocabの節にデフォルト値も載っています https://radimrehurek.com/gensim/models/doc2vec.html#gensim.models.doc2vec.Doc2VecVocab
SCmir01

2018/10/09 09:29

ドキュメントのURL等ありがとうございます.また,迅速かつ丁寧なご解答ありがとうございました.無事解決できそうです.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問