コンピュータをトルストイとして書くことを学ぶ、第1巻

-ええ、ビエン、月の王子。 Gêneset Lucques ne sont plus que des apanages、des Estates、de la famille Buonaparte。 Non、je vouspréviensque si vous ne me dites pas que nous avons la guerre、si vous vous permettez encore de pallier toutes les infamies、toutes lesatrocitésde cet Antichrist(ma parole、j'y crois)-je ne vous connais plus 、vousn'êtesプラスmon ami、vousn'êtesプラス私の忠実な奴隷、comme vous dites 1.まあ、こんにちは、こんにちは。 Je vois que je vous fais peur 2、座って話す。


トム・ファースト



パート1。 アンナ・カレーニナ



最近、ハブでこの記事に出会いました: https : //habrahabr.ru/post/342738/ 。 そして、私は単語の埋め込み、Python、gensim、word2vecについて書きたいと思いました。 このパートでは、基本的なw2vモデルのトレーニングについて説明します。







それでは、始めましょう。









まず、nltkのデータをダウンロードします。







 import nltk nltk.download()
      
      





開いたウィンドウですべてを選択し、コーヒーを飲みに行きます。 約30分かかります。

デフォルトでは、ロシア語の言語ライブラリはそうではありません。 しかし、職人は私たちのためにすべてをしました。 https://github.com/mhq/train_punktをダウンロードして、すべてをフォルダーに抽出します

C:\Users\<username>\AppData\Roaming\nltk_data\tokenizers\punkt



および

C:\Users\<username>\AppData\Roaming\nltk_data\tokenizers\punkt\PY3









Nltkを使用して、テキストを文章に分割し、文章を単語に分割します。 驚いたことに、それはすべて非常に高速に動作します。 設定は十分です。カップルはすでに通常のコードを少なくとも1行書いています。

スクリプトとデータがあるフォルダーを作成します。 環境を作成します。







 conda create -n tolstoy-like
      
      





アクティベート。







 activate tolstoy
      
      





そこでテキストをスローします。 ファイルにanna.txt



ましょう

PyCharm所有者の場合、環境を作成せずに、プロジェクトを作成し、インタプリタとしてアナコンダを選択するだけです。







train-I.py



スクリプトを作成します。









ファイルを保存します。 開始するには、PyCharmまたはSpyderで作業している人のために、実行をクリックします。 ノートブックまたは別のエディターから手動で書き込む人は、Anaconda Promtを起動する必要があります(これはメニューの検索にこれを駆動するのに十分です)、スクリプトでディレクトリに移動し、コマンドを実行します







 python train-I.py
      
      





できた これで、word2vecを教えたことを誇らしげに言うことができます。







パート2。 戦争と平和



どんなに頑張っても、アンナ・カレーニナはモデルを教えるのに十分ではありません。 したがって、著者の2番目の作品である戦争と平和を使用します。







こちらからもTXT形式でダウンロードできます。 使用する前に、2つのファイルを1つにマージする必要があります。 最初の章のディレクトリにwar.txt



呼び出しwar.txt



。 gensimを使用する利点の1つは、ロードされたモデルを新しいデータで完成できることです。 これが私たちがやることです。

train-II.py



スクリプトを作成する









実行することを忘れないでください。







エピローグ。 テストはどこにありますか?



彼らはそこにいません。 そしてまだ。 モデルはまだ完全ではなく、率直に言って、ひどいです。 次の記事では、修正方法を確実に説明します。 しかし最後に:







 # -*- coding: utf-8 -*- # imports import gensim model = gensim.models.Word2Vec.load('./w2v-II.model') print(model.most_similar(positive=['', ''], negative=[''], topn=1))
      
      





PS







実際、すべてがそれほど悪いわけではありません。 結果の辞書には、約5,000の単語とその依存関係および関係が含まれています。 次の記事では、より高度なモデル(15,000ワード)を提供します。 テキストの準備について詳しく説明します。 そして最後に、第3部では、最終モデルを公開し、ニューラルネットワークを使用してトルストイのスタイルでテキストを生成するプログラムの作成方法を説明します。

参照および使用された文献。









機械学習で頑張ってください。



私の記事を少し楽しんでいただけたでしょうか。








All Articles