芥川竜之介・太宰治・夏目漱石・宮沢賢治の作品からtf-idfを求めて著者名をラベルとして学習させてみた
青空文庫から取得した芥川竜之介、太宰治、夏目漱石、宮沢賢治の作品をtf-idfにし、著者名をラベルにロジスティック回帰でモデルを作り、テストを行いどのぐらいの精度で著者を当てられるのかを検証してみた。
ソースコード
青空文庫からの収集
公開中 作家リスト:全てのページの上部にある、青空文庫に所蔵されているすべての作品がインデックッスされているCSVをダウンロードして、目的の作者の作品のURL(XHTML/HTMLファイルURL
の列)を求め、作品をダウンロードした。
なお、インデックスの中には青空文庫以外も含まれていたので、ルビなどのパースの関係上、無視をした。
Mecab
日本語をtf-idfにするためには単語の単位で分ける、分かち書きをしないといけないため、Mecabを利用した。
データ
著者4人*100作品 = 400 作品を収集し、訓練データには、300作品、テストデータには、100作品を用いた。100作品ずつというのに、根拠はなく、とりあえず100作品ずつ用いた。
結果
87.7%の精度で当てられた
元ネタ
2年前にprocessingのSVMで行ったものをpythonで追実装した形です。
お詫び
Python Machine Learningのサンプルソースコードを元に改変しました。
機械学習やり始めなので、パラメータやアルゴリズムをもっとよく出来ると思います。
参考
snap.svgのv0.5.1でrotate回転させようとしたら変な軌跡を描く問題
解決策
- v0.4.0に戻す
- v0.5.2が公開されるのを待つ
発生する問題
let bbox = hoge.getBBox(); hoge.animate({ transform: "rotate(90, " + bbox.cx+ ", " + bbox.cy + ")" }, 10000);
真ん中を基準に回転するように記述してるのに変な軌跡を描く問題 黒い点は期待される回転の軸である中心点
参考
Visual Studio Codeにサーバーの中で直接作業できるRemote Developmentをインストールしてみた
注意
この中の記述はVisual Studio Code(以下VSC)の1.35.0以上が必要です gyazo.com
インストールするVSC拡張
Remote Developmentを用いると、SSHなどを使ってサーバーやコンテナにログインして、その中で作業ができるようになります。 詳しくは窓の杜の記事を読んで下さい。 「Visual Studio Code」でリモート開発 ~Microsoftが新しい拡張機能パックをリリース - 窓の杜
インストール
Remote Developmentの拡張検索します。
インストールします。どうやら3つの「Remote - SSH」「Remote - Containers」「Remote - WSL」をまとめたものらしいです。 gyazo.com
インストールした拡張をクリックしてみると.ssh/configファイルに記述しているドメイン一覧が表示されます gyazo.com
サーバーを選んでクリックすると新しいウィンドウが開いてSSH接続を開始します。この時にサーバーに/.vscode-serverがインストールされる模様です。 gyazo.com
ログインすると左下に「SSH:サーバー名」が表示されます。 gyazo.com
フォルダーを開くと、サーバー内の任意のディレクトリを選択することができます。 gyazo.com
サーバー内の任意のディレクトリでgitや補完、ファイルの参照などもストレスなく操作することが可能になります。また、ターミナルを開くとちゃんと、そのディレクトリで開いてくれます。便利すぎでしょ。 gyazo.com
.configの書き方
windowsの場合、C:Users\ユーザー名\.ssh\.config
を作成することをおすすめします。
Macの場合、~/.ssh\.config
になります。
TCPKeepAlive yes Host hoge HostName hoge.com User matatsuna IdentityFile C:\Users\matatsuna\.ssh\hoge_rsa Host fuga HostName fuga.net User fuga IdentityFile C:\Users\fuga\.ssh\fuga_rsa
このファイルを書くとVSCのサーバー選択に出てくるだけでなく、power shellなどで、
> ssh hoge
でログインできるようになります。 詳しくは下記を参照して下さい。