このコンテンツには閲覧パスワードが必要です。
【科学・数学 ✕ Python = ∞】#7 「第1章:1行で愛を作る」
youwht著「キテレツおもしろ自然言語処理」で紹介されている実験をなぞっています。
使う環境はGoogle Colaboratoryです。著者いわく「従来は自然言語処理には深い専門知識が必要でした。環境構築も大変でしたし、辞書データも用意しなければなりません。しかし技術の発展に伴い、昨今では無料&超簡単に自然言語処理が作れてしまうようになりました。」、「本書のオススメの使い方は、パソコンの前でコードを順番に実行しながらすすめることです。全てのコードはブラウザだけで、そのまま実行できるようになっています。コードの書き写しはおろか、コピペの手間すら不要な、すぐに実行できるファイルを以下のURLに用意してあります。」とのことで、私が10年前に自然言語処理のツールを使いたい環境に落とし込むために試行錯誤したときとは隔世の感があります。
https://www.shoeisha.co.jp/book/download/9784798170268
本書の目次はこちら。
第1章:1行で愛を作る
第2章:ハロー!ゲンシジン!
第3章:メロスの激おこ具合を冷静に可視化する
第4章:江戸川&コナンの小説を自動生成してみる
第5章:「??」-「群馬」=「宇都宮」-「栃木」 を機械に求めさせる
第6章:両親の名前の漢字を足し算して、子供を命名するAIを作る
第7章:もしAIが三国志を読んだら。孔明や関羽のライバルは誰なのか?
第8章:「赤の他人」の対義語は「白い恋人」、をAIで自動生成する
第1章はColaboratoryの使い方やPythonの基礎が大半です。
最後の〆で1行で愛を作るプログラムということで、リスト内包表記を使ったプログラムです。
print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else' ') for x in range(-30, 30)]) for y in range(15, -15, -1)]))