gensim word2vec |スラグスラグ朔からの研究ノート

 

  執筆の論文は最近word2vecを使用するために、モデルを走ったが、そう私の最初のブログがあり、どのようにオンラインの記事、またはあなた自身の愚かな、それ自身が理解していました!word2vecは、一連のツールを書くために行くことについて、当然のことながら、今日だけこの記事を書くためのもの。

  • word2vecモデルをロードする方法
  • 単語ベクトルword2vecを使用してモデルを解決する方法
  • word2vecモデルを保存する方法

 

、word2vecプロフィール

  2013、ベクトル計算--word2vec単語のためのGoogleのオープンソースのツールは、業界と学界の注目を集めました。まず、word2vecを効率的に辞書データセットの何百万のために訓練することができ、第二に、ツールによって得られた訓練結果 - ワードベクトル(ワード埋め込み)は、単語間の良好な尺度であることができます類似。私は多くのことを知らない内部アルゴリズムword2vecツールについて、いくつかのブログを読んで、興味のある友人が見ることができる持っている下記のリンク:

  https://www.cnblogs.com/guoyaohua/p/9240336.html

  

二、word2vec使用

  

1つのロードモデル#
 gensim.modelsから2インポートword2vec 
 。3    
 。4#ローディングコーパス、コーパスフォーマット
 。5    
 。6つの文= [ '形状'、 'ルック'、 '見て'、 'スクリーン'、 '音'、 '大きいです' 「待機時間」、「長い」、「画像」、「効果」、「特別な『]、[』電話」、「格好良い『時間の』期間『]、[』電話」、「受信」、」非常きれいな'' ''評価'下記] 
 。7    
 8#ローディングモデル
。9モデルモデル= = word2vec.Word2Vec(文章、サイズ= 4、ウィンドウ= 5、min_count = 1) 10の解決ワードベクトルとの類似度# 11モデル.most_similar(U '形状' 12は[ '形状'モデルである] 13

 

出力#1 
2#形状の類似性は、デフォルトの出力10は、出力形式リスト最も類似語である
。3 
。4 - [(0.7367413640022278を、 '大きい')、( 'サウンド'、0.657544732093811)、( 'フォロー'、0.5379071235656738 )、( '長い'、0.5151427984237671)、( 'の期間'、0.4361593723297119)、( '電話'、0.33148619532585144)、( '特別'、0.19552142918109894)、( '評価'、0.09857006371021271)、( '時間を待っている' 0.08498627692461014 )、( '受信'、-0.01799720525741577 )] 
5。
6。
7#は単語"輪郭"の単語ベクトルを出力する
8。
9アレイ([ - 0.03313196、0.04037894、-0.11632963、-0.08618639]、DTYPE =のfloat32)

 

  上記の例を読んだ後、超シンプルは、当然のことながら、上記の単純な例であることではない、あなたは、プロセスを介して取得された後、TXTファイルの隣に表示されます入力パラメータは、次のパラメータword2vec機能で最初のスポットとして使用することができます詳細:

  

パラメータ説明#
 
word2vec.Word2Vec(文=なし、サイズ= 100、アルファ= 0.025、ウィンドウ= 5 
min_count = 5、max_vocab_size =なし、0.001サンプルから=、= SEED。1 
労働= 3、0.0001 = min_alpha、SG = 0〜 、= 0、負= HS 5  。。cbow_mean = 1、hashfxn = <組み込みハッシュ関数>、= 5 ITER、null_word = 0、 。trim_rule =なし、sorted_vocab = 1、batch_words = 10000 )--- 文:であってもよいですリストは、大規模コーパスのために、BrownCorpus、Text8Corpusまたは・ineSentenceの建物を使用することをお勧めします。--- サイズ:単語は次元のベクトルで、デフォルトは--- 100ある窓:単語ベクトルを解く際どこの単語、私たちは現在の文の前と後に検討する方法を多くの文章中の単語予測単語と現在の最大距離を示しています窓の言葉は--- SG:; SG = 1はスキップ使用されている学習アルゴリズムは、デフォルトは0で、セットに対応するアルゴリズムCBOWを使用しているグラムアルゴリズム。--- アルファ:学習率---である乱数ジェネレータ:SEED。初期化ベクトルに関連する単語。--- min_count :.切り捨て周波数は、デフォルト値は5以下min_countが破棄されますワード数よりもされた辞書の単語を行うことができます---max_vocab_size:ベクター構築時に設定単語のRAMの制限を。これより、すべての独立した多数の単語ならば、それは最も頻繁に1の1を排除するであろう。それぞれ千万の言葉RAMが1GB程度かかります。Noneに設定されている制限はありません。---サンプル:ランダム設定閾値が高頻度語をダウンサンプリングされ、デフォルトは1E-3、範囲(-0,1e 5 )--- 平行トレーニングの労働制御パラメータ数。--- HS:1・ソフトマックススキルをhierarchicaれます。0(defau・トン)に設定すると、負のサンプリングが使用されます。---負:>場合は0、それはnegativesampを採用する・ING、設定するために使用されるノイズワード---数cbow_mean:それが0である場合、文脈語ベクトルのその後の使用と、それが1(defau・T)である場合には使用され平均。それが動作するときにのみCBOWを使用しています。--- hashfxn:ハッシュ関数は重みを初期化します。デフォルトのPythonのハッシュ関数--- ITER:繰り返しの数は、デフォルトでは--- 5である休暇にそれらの単語を指定して、語彙を整理するためのルールを設定し、削除する:trim_rule。Noneに設定することができます(min_countが使用されます)または受信()関数の戻りRU・E_DISCARD、UTI・s.RU・ E_KEEP またはUTI・s.RU・E_DEFAU・Tさん。--- sorted_vocab:1(defau・T)場合、それは最初のソート時に割り当てられたワードインデックスは、降順に単語頻度に基づいています。--- batch_words:各バッチの単語を渡すためのスレッドの数、デフォルトは10000です

 

  ここでは、ファイルの単語ベクトルTXT word2vec解決ツールを使用しての例を示します。

 

  

それ自分でクロール3つのテキストを使用して処理する1つの#コーパスのテキスト、テキスト
 2インポートjieba 
 3 zhon.hanziインポートから句読点
 /ユーザー/管理者/デスクトップ/データ/ニュース/健康ニュース/ 2019年「世界:4のpath1 =「C北京で開催されたインフルエンザの日「科学の活動や学術会議が.txtで『
 5パス2 =』 C:/ユーザー/管理者/デスクトップ/データ/ニュース/健康ニュース/ 67歳の母親が自然に生成女性の専門家が「.txtの困惑を想像すると言わ
 6 PATH3 = 'C:/ユーザー/管理者/デスクトップ/データ/ ニュース/健康ニュースリア/ 90健康:ヘルスケア、健康不安.TXT "を食べるわけにはいかない"' 
 7 
 8 DEF get_load(パス):
 9 F =オープン(パス、R」 'コード=' UTF-8 '  10 =データ)(f.readに達した 。11 = re.subのnew_s(R&LT' [%S、\ T、\\] + [%句読点、 "" データ)= 12 cut_sありますjieba.lcut(new_s)文13が=ある[]内のWordの14 cut_s :! IFワード15 =「\ n'andワード!=」 ' :16sentences.append(ワード)17のリターン文18 DATA1 = get_load(パス1)19 DATA2 = get_load(パス2)20 DATA3 = get_load(PATH3)21 final_data = [DATA1、DATA2、DATA3] 22 23#模型建立24 25モデル= word2vec .Word2Vec(final_data、サイズ= 50、ウインドウ= 4 )26 27モデル[ '健康']
#输出
>>>モデル[ '健康' ] 
アレイ([8.6532356e-03、2.1515305e-03、3.4037780e-03、-4.4254097e-03 
       -8.4194457e-03、-1.53​​64622e-03、1.0745996e- 02、5.3538852e-03 
       -1.1601291e-03、6.8697990e-03、8.7537011e-03、8.6077927e-03  1.4498243e-03、2.6482970e-03、-3.4553630e-03、8.2870452e-03  3.5420412 E-03、8.8039534e-03、-3.6633634e-03、5.4932209e-03 、-7.5302450e-03、9.6533290e-04、-1.9622964e-03、6.5719029e-03 、-3.7521331e-04、-9.1459788 E-04、-8.3307233e-03、2.9766238e-03 、7.6092435e-03、-8.3235843e-04、-9.2809896e-05、-6.7277048e-03 、1.5067700e-03、-8.0193384e-03、 - 1.0153291e-02、5.9706415e-03、4.3323904e-04、-9.5779281e-03、-9.3199704e-03、3.5575093e-03 、3.0641828e-03、4.4296687e-03、2.8934417e-04、-1.8675557e-03 、-4.8446902e-03、 03--3.5805893e、-1.1002035e-03、-1.0306393e-02 、03-4.5978278e、6.8134381e-03]、DTYPE = のfloat32)>>> model.most_similar( '健康')[( '67'、 0.37046998739242554)、(、)、0.363727331161499を'意志'( ''、0.30487531423568726)、( '国'、0.2739967703819275)、( '社会的'、0.26224130392074585)、( 'ニュース'、0.19897636771202087)、( '母性'、0.19829007983207703) (「 - 」、0.19742634892463684)、(「年齢」、0.16749148070812225)、(「後」、0.15823742747306824は)]#この結果は非常に良いではありません、結果はストップワードに行きませんでした

 

 

、私は、セグメンテーションプロセスを書いた上のテキストを処理することは、私は書いていない低頻度語を、処理し、怠惰な通常の状況下で、ストップワード処理でなければなりませんでした

ここでは、テキストを処理するためのツールを処理word2vecファイルの使用が付属しています。

#このファイルには、中国語の単語がOPPO電話Jingdongはコメントに---コーパスを分割したある
gensim.modelsインポートからword2vec 
インポートログ
 
#メイン
logging.basicConfig(フォーマット=「%(関数は、asctime %(levelname)S::)■ %(メッセージ)S 'レベル= logging.info)

パス2 =' C:/ユーザー/管理者/デスクトップ/データ/コメントは/cut_comment.txt「

 文= word2vec.Text8Corpus(パス2) モデル= word2vec.Word2Vec(文、サイズ20 = )モデル[ 'OPPO' ] model.most_similar( '良い' )model.similarity(U "良好"、 "OPPO")
Model.most_similar >>>( 'OPPO' 
[( '最初'、0.9777179956436157)、( '信頼'、0.9736739993095398)、( '希望'、0.9670151472091675)、( '価格'、0.9577376842498779)、( 'コンテンツ' 、0.9538010954856873)、( '充填されていない'、0.9495989084243774)、( 'パッケージング'、0.9487740993499756)、( 'この'、0.9475699663162231)、( '壊れ'、0.9475245475769043)、( '評価'、0.9470676779747009 )] 
>>>モデル( '賞賛' .most_similar 
[( '品質'、0.9727074503898621)、( 'ショッピング'、0.9600175619125366)、( '本物'、0.9578911066055298)、( 'ファイター'、0.9555199146270752)、(0.9444591999053955、 'のような')、( '妻、0.9358581304550171)、( '電話' 0.9266927242279053)、('推奨' 0.9224187731742859)、('財)は0.9196405410766602「となっています、( '友達'、0.917504072189331 )]  >>> model.most_similar( '携帯電話の [( 'ベイビー'、0.9600850343704224)、( '日'、0.9596285820007324)、( 'ショッピング'、0.9558006525039673)、( 'いくつかの時間'、0.9556002020835876)、( '品質'、0.9525821208953857)、( '本物' 0.9524366855621338) 、( '到着'、0.9513840079307556)、( '真'、0.9481478929519653)、( '受信'、0.9459341764450073)、( '次へ'、0.9382076263427734 )] >>> model.similarity(U "賞賛"、「OPPO " )0.81516

ファイルには、上記の次の形式を持っているしたら、すべてのファイルが単一のファイルに集約することができます処理され得ることができます

  

 

 

  最後に以上、これらは以下のコメントセクションに間違った場所を与えるためにトラブルがある場合は、この記事を参照して、ヘルプの人々に期待して、私の研究ノートです!

  

おすすめ

転載: www.cnblogs.com/learn-ruijiali/p/12091136.html