近況報告&長崎旅行
お久しぶりです。
近況報告
修士2年になっています。修士2年がやらなければいけないものとして、進路を決めることと修論を書くことがありますが、ありがたいことに進路についてはだいぶ早い時期に決定することができました。ありがとうございます。修論については、正直こっちがかなり心配で、研究がうまくいくことがないので、果たして出れるのだろうかという不安にはなっています。
最近はこちらのブログに投稿することがかなり少なくなってしまいました。勿論、このコロナ禍において、外出が自由にできないので、書くことがない、というのもあります。ただ、インスタグラムアカウントを開設した事により、個人的に写真置き場くらいの感覚で考えていた当ブログの意義が薄れてしまった、ということもあります。その他にサボっていた、というのもあるけど。そこでこれからは、ストリートスナップとか、そういうのをインスタグラムに、鉄分多めな写真をブログ(とかツイッター)に投稿していくようにします。
長崎旅行
10月24日と25日に、長崎に旅行に行ってきました。今回は、Go to トラベルとJR九州のみんなの九州きっぷを使ったので、結構お得に旅行できたと思います。
今回の旅行では、特急かもめ、長崎電気軌道、大村線シーサイドライナー、特急みどりに乗りました。今回の旅行で、大村線と佐世保線を完乗しました。
長崎電気軌道
長崎の路面電車については、動画も撮ってきました。そちらはYouTubeの方にアップしたので、ぜひご覧ください。
平和公園
長崎でも色々行きましたが、ここでは特に平和公園について取り上げたいと思います。1945年8月9日に長崎に原爆が落とされてから75年ですが、長崎に行ったからには訪れておく必要があるのかな、と思います。
大村線千綿駅
千綿駅に訪問しました。
千綿駅は東彼杵郡東彼杵町にある駅で、オーシャンビューで有名です。2014年の青春18きっぷポスターの写真にも使われていたらしいです。
千綿駅はすごく気に入りました。またリベンジしたいですね...。(次は夕暮れ時まで滞在したい)
総括
九州滞在6年目にして初めて長崎に訪れました(※ハウステンボスは滞在経験あり)が、非常に気に入りましたのでまたの機会があればと思います。
Djangoでアニメ推薦のWebアプリを作ってみた話
お久しぶりです。
前回の投稿から1年以上経ってしまいました。
修士1年もほぼ終わり、今まさに就活が始まってしまいました。
思ったよりも景気が悪いんでオロオロ泣いております。コロナもあるし先行き不安定ってやつ。
そんなことで今回は、Djangoを利用してWebアプリを作ってみたので、それについて記述したいと思います。
👇Githubに公開しています
Djangoとは
wikipediaによると、"DjangoとはPythonで実装されたWebアプリケーションフレームワーク。model-view-controller デザインパターンに緩やかに従う"とあります。DBを利用した動的なWebサイトがPythonを使って簡単に構築できる、ということなんですかね(多分)。ちなみにDjangoという名前は、ジャンゴ・ラインハルトに由来しているらしい。
今回作ったものの概要
今回は、ユーザの嗜好に合わせた、2020年冬アニメの推薦アプリケーションというものを作ってみました。推薦手法はコンテンツベースフィルタリングです。これについては後々詳しく述べます。
これはもともと、学校のグループワーク課題として、Google Colaboratoryで構築したものです。今回せっかくなので、Webアプリとして実装したら面白いかなと思い、やってみた次第です。
なぜこのアニメ推薦を行うアプリケーションを構築したかというと、現在同じクールにかなり大量のアニメが放送されており、配信サービスなどの普及に伴い、視聴するアニメの選択肢が増えている中で、効率的に見るべきアニメを教えてくれたら嬉しいよな、的なマインドがあったので、です。実際はアニメ推薦の他にも、アニメの立ち位置(?)的なものを示すために、2次元空間にアニメ作品をマッピングしてみたり、出演作品から声優の特徴量をはかり、それもマッピングしてみたりと、色々やりましたが、今回はユーザに対するアニメ推薦に絞ってアプリを作ってみました。
今回作ったものの動かし方
今回のアプリケーションは、Dockerに Dockerfileを利用してイメージ(Ubuntu)を構築し、その上でアプリケーションを動かしています。ので、あらかじめDocker環境を用意し、GithubのREADME.mdに従い、Dockerイメージの構築をし、Djangoモデルの準備、createsuperuser等のコマンドを実行する必要があります。
また、アニメのデータの準備として、事前に準備されたアニメのリストをDBに挿入するコマンドを叩く必要があります。これもGithubのREADME.mdに書かれています。
今回はアニメのデータとして、あにこれさんからアニメのリストを収集させていただきました。さらに、各アニメの特徴ベクトルを作る際、あにこれさんに寄せられた各アニメのレビュー文を利用させていただきました。ありがとうございます。
各アニメの情報は[src]というディレクトリの[anime_list.csv]というファイルに入っています。2001年からのアニメが3055件収録されています。
実際のウェブアプリの使いかた
アニメのデータをDBに挿入するコマンドを叩いたら、実際にWebアプリを起動し、使ってみてください。Webアプリの起動は、
$ docker-compose up
です。
アプリを起動したら、Google Chromeか何かで http://127.0.0.1:8000/app/home/ にアクセスしてみてください。(Google Chrome以外の挙動は確認できていません)
このような画面が出てくるかと思います。(サインインしていた場合には別の画面が出ます。)
まずはアカウントでサインインしましょう。(superuserでも入れます)
アカウントがない場合 、 [Sign up] をクリックします。
希望するユーザ名、パスワード、パスワードの確認を入力し、 [Create an account] をクリックすると、ユーザを作成し、ログインすることができます。
アカウントがある場合、Home画面の[Sign in] をクリックします。
ユーザ名とパスワードを入力し、 [Sign in] をクリックします。
サインインが完了すると、Home画面が次のようになります。
このように表示されたらサインインが完了です。
サインインが完了したら、早速あなたにオススメのアニメが何か、教えてもらいたいものなんですが、このアプリではユーザの嗜好を元にユーザが好きなアニメを推薦するため、あなたがみたアニメが何か、登録しておく必要があります。Amazon Prime VideoやNETFLIXなんかでは、ユーザの視聴履歴を収集していますが、今回のアプリではそのような機能はない為、手動で好きなアニメを登録していきます。
Home画面の [好きなアニメを登録する] をクリックしてください。
テキストボックスにアニメタイトル(一部で大丈夫です)を入力し、[入力]を押すと、上の図のようにそのキーワードが含まれるアニメタイトルの一覧が表示されます。ポケットモンスターアドバンスジェネレーションを途中までみていた場合、[途中までみた]、にチェックを入れ、[このアニメを登録する] を押すと、
このような画面が表示され、登録が完了します。アニメの登録は一個ずつしかできない為、他のポケモン系のアニメも登録するには、[検索結果に戻る]を押してください。
登録が完了したら、実際にアニメ推薦を行います。Home画面に戻り、[2020冬アニメのオススメ]を押してください。
このようなページが表示されると思います。アニメ推薦を開始するためには、[判定を開始する]をクリックしてください。
すると、ユーザの視聴履歴を元に、アニメ推薦を行います。表示されたタイトルをクリックすると、あにこれさんのそのアニメのページにジャンプします。
以上が実際のWebアプリの使い方になります。
推薦アルゴリズムについて
先ほども言いましたが、今回はアニメ推薦手法としてコンテンツベースフィルタリングを用いています。詳しい手法について、ここから説明します。
コンテンツベースフィルタリングということで、コンテンツ、ユーザを数値化して表現する必要があります。今回は、アニメレビューを元に、アニメとユーザを特徴ベクトル化しています。これらは事前に定義されたものを利用しています。
まず各アニメをベクトル化します。各アニメのレビュー文をMeCabを利用して、形態素解析し、それらをWord2Vecを利用して単語ベクトルとします。また、単語ごとのIDF値(TF-IDFのIDFです)をあらかじめ求めておき、各アニメについて、そのレビューに含まれる単語(名詞、動詞、形容詞、形容動詞)の単語ベクトルの重みをIDFとした重み付き平均を各アニメの特徴ベクトルとします。この特徴ベクトルは300次元です。
次にユーザの特徴ベクトルについてですが、これはユーザの視聴済みアニメの特徴ベクトルの重み付き平均として求めます。今回の重みはユーザの各アニメに対する視聴度合いとします。こちらのベクトルも300次元です。
今回使用したWord2Vecモデルについてですが、学習コーパスは今回収集したレビュー文の単語(名詞、動詞、形容詞、形容動詞)とし、vector_sizeは300,window_sizeは10,min_countは1,iterationは5回としています。
次に、ユーザにアニメを推薦する方法について説明します。ここではまず、2020年冬に放送するあるアニメ「アニメi」について考えます。
ユーザの特徴ベクトルと、「アニメi」の特徴ベクトルを用意し、それらのコサイン類似度を求めます。ユーザの特徴ベクトルはアニメの特徴ベクトルを元に作られているので、ユーザの特徴ベクトルとアニメの特徴ベクトルの類似度を求めることで、ユーザの嗜好にどの程度マッチしたアニメなのかわかる、ということです。このコサイン類似度をユーザに対する「アニメi」のオススメ度とします。
これらのオススメ度を2020年冬アニメ全てについて求めたのち、このオススメ度が高いアニメ5件をユーザに推薦しています。
今後の課題
今回は2020年冬アニメの推薦しか行えません。ですので、今後は適宜情報を収集し、その時その時に放送されているアニメを推薦するシステムを構築していきたいと考えています。
また、今回のWebアプリでは、CSSまで手が回らなかったので、なんとも殺風景なページになっています。ここら辺も改良していきたいです。
参考文献
Docker
- プログラマのためのDocker教科書 第2版 - 著:阿佐志保 監修:山田祥寛 - 翔泳社
-
DockerでDjangoを動かしてみる - Djangoの学習ができるチュートリアルサイトDjangoBrothers
-
はじめに · Django Girls Tutorial - Django Girls Tutorial
情報推薦あたりの元のアイデア
香椎線の国鉄型車両・キハ40/47形での運行は残り1ヶ月
こんにちは。
卒論発表が終わり、ひと段落した(実は全くしていない)ので鉄道を撮りに行きたいなあとは思っていたのだが、
News Release 2018年12月14日 - JR九州
3月16日のダイヤ改正で香椎線にDENCHA(BEC819系)22両が導入されることになり、現在香椎線で走っているキハ40・キハ47形25両すべてが置き換えられるそう。
政令指定都市・福岡で運行している貴重な国鉄型気動車があと1ヶ月(もない)でなくなるということなので、最後の勇姿をと撮影してきた。
2019年2月17日
中道信号場付近まで移動し数枚撮影
海ノ中道駅付近に戻って撮影
西戸崎駅で撮影
西戸崎で少し街歩き的なことをした
西戸崎から香椎行きに乗り香椎、そこからさらに香椎線の終点宇美まで移動
このような都市部の近くで気動車が走っているのは珍しいので少し悲しい気もするが、新型車両でかなり便利になるだろう。ダイヤ改正後に新型車両の走る香椎線も撮影しに来ようと思う。
ところで香椎線で使っていたキハ40/47形は今後どうなるのか知っている人いますかね?どこかに転籍するか、海外に行くのか、廃車か。東南アジアとかでこれが走っていても面白いと思うんだけどな〜。
最近買ったもの
こんばんわ。
年末から最近にかけて何個か買ったものがあるので紹介させてください。大したもの買ってないんだけどさ。
コレクションケース
前からウチには数体のフィギュアがあったのだが、しまうのに適切なケースがなく、出しっ放しの状態になっていた。これではせっかくのフィギュアも埃を被ってしまうしなあ...と思って買ったのがこれ。
幅、高さ、奥行き各30cmくらいずつあり、意外となんでも入るのだ。各種フィギュアはもちろん、720mLくらいのお酒の瓶なら入ってしまうので、色々ディスプレイしておくのに便利だ。ちなみにこの商品は2個セットで5,500円。付属のダボを使えば上につみかせねて使うこともできるので、さらに追加することができるのもいいところ。モノもしっかりしており、オススメです。
ミラーシート
おもて面がミラー、裏面がシールになっていて、貼るだけで鏡っぽくなる。正直なところ、所詮はシールなので歪み等が発生し、普通の鏡のようには使えません。(鏡として必要なら正直に鏡を買えと言いたい。)光を反射させるものとして、インテリア等に使うといいと思う。
加藤恵さん
別に俺は人身売買をしているわけではない。
冴えカノの加藤恵さん...のフィギュア。1/7スケール、水着バージョン。
日々の研究のストレスより衝動買いしてしまいました。いやね、ああいうことをやっているときは癒しが必要です。
正直な話をすると1万近くするフィギュアって初めて買ったんだけど、いいね。作りがかなり精巧で。かなり長い時間眺めていられます。無駄遣いと思われるかもしれませんが全然そんなことないです。詩羽先輩も欲しかったり...
で
これらを組み合わせてこうなりました。
コレクションケースは他の家具と合わせてダークブラウンにしたんですが、それだと暗くなりすぎるので、内側にミラーシートを貼って見た。すると、周りの環境光をうまいこと取り入れてくれて、いい感じになっている。歪みのため、見えない背面を見るみたいな目的には少し向かない感じがするが、それでも展示方法としては十分だ。
以下、加藤さん(かわいい)の写真
どうだ!欲しくなっただろ!今すぐ上のボタン押して購入するんだ!今すぐだ!
ってな感じで今日はここまで。また次回。(いつになるやら)
新年明けましておめでとうございます
今年もよろしくお願いします。
本ブログも細々続けていけたらいいなと考えております。
近況
卒研、卒論に追われておりまして、年末年始といえど全く何もできていません。
今年の冬が旅行はおろか、帰省すらもできていない状況です。
終わる気配がない研究、書ける気がしてない卒論、果たして無事に卒業することはできるのでしょうか...
大学を卒業したらそのまま大学院に進学する予定です。しかし、いまになってこの進学という選択に対して超弱気になっています。果たしてどうしたものでしょうか...
今回の記事はほとんど内容がありませんでしたが、諸事情あってこのような記事をいくつか上げなければいけない状況に陥っています。なので近日中にまた記事がいくつか上がると思いますが、暇つぶし程度に読んでいただければ幸いです。
それではまた
ワイン・温泉・焼きそば(2018/9 山梨&佐久旅行記 Part.4)
今日はちゃんとやることをやってからブログを書いているのでえらい。
研究でtwitterを対象に色々してるんですが、頭が悪くなりそうですね。
前回の続き
9月20日
石和温泉というくらいだから温泉があるのはもちろんだが、今回の目的は別にある。
ワイナリー巡りである。
山梨県はブドウの名産地だ。従ってぶどうを原料とするワインの生産も盛ん。特にこの石和や勝沼にはワイン工場が数多くひしめいている。
どこのワイナリーに行こうか迷うかもしれないが、駅にこんな施設が併設されている。
これはやばいでしょ。石和近辺で製造されているワインを売っているワインサーバーがあり、試飲しながらワイナリーを決めることができるのだ。しかも朝9時からやっている、やばい。
実は訪問するワイナリーはあらかじめ決めてあったのだが、駅中ワインサーバーでも何杯か試飲してしまった...悪魔的誘惑だ...
ワイナリー訪問は意外とハードルが低い。予約なしでフラッと訪れることができる。工場見学だけなら無料。ただし、車はダメだよ。
1軒目:モンデ酒造
www.mondewinery.co.jpモンデ酒造のワインはファミリーマートなどでも300mlくらいの大きさのものが売られていたりと割とポピュラー。(てきとうなことを書いたが、多分そう)
ちなみに工場内は基本撮影禁止。
樽(の見本)
ここでは「デラウェア」というワインを購入。限定12,000本。後味がさっぱりした感じでワインが苦手な人にも飲みやすいという感じです。
ここでは「ナイアガラ」というワインを購入。上の「デラウェア」と同じ白ワインだけど、こっちの方がちいとばか辛いかも。しかしワインビギナーも全然飲める。
ワイナリー2軒回ってだいたい1時間半。あまり時間のない方でも巡れるので酒好きにはおすすめだ。
甲府に戻ってしばしロッテリアで時間を潰した後、身延線普通電車に乗車。(写真なし。普通の313系だったので...)
下部温泉で下車。
前日入浴することができていなかったので、ここで入浴をすることにした。石和温泉で済ませればいいじゃんかと思うかもしれないが、石和の公衆浴場は15時からしかやっていないのだ。
駅前の様子
温泉街。平日昼間だったこともあってか人気はまばら
中央右の建物が今回使わせてもらった下部温泉会館。
www.shimobe.org浴場は小さめだったがいい温泉だと思った。少しアクセスが不便なのが難点だけど、駅からは割と近い。
さて下部温泉から再び静岡方面へ向かう。電車がなさすぎたので再びワイドビューふじかわに乗車。
旅行前は身延の久遠寺に寄ることも考えたのだが、土砂降りだったのでやめた。
再び富士宮で途中下車。
富士山本宮浅間大社に向かった。
最後に、せっかく富士宮に降り立ったので焼きそばを食べるほかないでしょうということで、「すぎ本」さんという老舗のお店に向かった。
すぎ本さんのみならず、古くから富士宮で焼きそばを出している店の多くがそうらしいのだが、もともと洋食焼き(現在で言うところのお好み焼きのようなもの)のお店だそうだ。すぎ本さんは一人でも洋食焼きと焼きそば両方を楽しめるセットを用意してくださっているので、富士宮に立ち寄った際はぜひ。大変美味です。
途中から写真のアップロードがうまくいかなくてほっぽったら年を越してしまった。一応今回で山梨編は終了です。
小海線撮影旅行記その2(2018/9 山梨&佐久旅行記 Part.3)
1ヶ月ぶりの更新です。
本当は研究とか色々やらなければいけないことがあるのですが、今日はなんかやる気が皆無なので、気分転換としてこれを書こうかと思いたった次第です。
内容は前回の続きです。
9月19日
前回は早朝に「小淵沢大カーブ」と呼ばれる有名な撮影スポットで撮影したところで終わっているのでその続きを。
徒歩20分超かけて撮影地から小淵沢まで戻り、小淵沢駅のトイレで歯磨きを済ませ(????)、223D 小諸行に乗車。
www.youtube.com上の動画はその時に撮影した小淵沢から信濃川上までの車窓の映像。画質が飛んでもないので極力高画質に設定して見ていただけるとありがたい。
小海駅で下車。(写真はない)
ところで何故小海で下車したかと言うと、勿論撮影のためではあるのだが、この223Dの時刻表を見るとあることがわかる。
小海(9:00着、9:19発)→馬流(9:22発)
なんとこの列車、小海駅に19分停車する。これは勿論列車行き違いのためなのだが、と言うことは、小海駅から次の馬流駅まで1.8km走れば、対向列車の撮影が可能ということである。
馬流駅南の踏切のところで撮影。(226D)
..................。
そこまでした割に、という感じになってしまった。
馬流駅
当然ながら一面一線の無人駅である。
小海までと同じ車両に乗ったので、近くに乗っていたおっさんにガン見された。自分が厄介の生き字引であることを痛感させられた。
223Dはこのあと終点の小諸まで乗車したのだが、途中の中込駅で面白いことがあった。
車掌が乗車し、持っていた整理券が回収され小諸までの切符を購入することになったのだ。中込駅にはJR東日本長野支社小海線営業所が併設されており、ここから小諸方面はワンマン運転でなくなる。そのためこのようなことになったのだと推測されるが、てっきり下車駅精算だと思っていたのでびっくりした。
小諸に到着。
しなの鉄道はお乗り換え(乗らなかったけど)
小諸では帰りの切符を購入。小諸駅はしなの鉄道の管轄駅なので、みどりの窓口は駅の外にある。
甲府までの切符を購入。小諸→甲府は100kmを超えるので、途中下車することが可能になる。
130D 中込行に乗車。
終点一つ手前の滑津駅で下車。
滑津で降りた理由は駅から近くに鉄橋があるという事であった。
なんとなく列車にピントがあってない気がしますけどね...。
滑津は割と住宅なんかもあるところなので、そんなところでカメラを持って待っている自分は他の人から見たら不審者だったんだろうな
近くのコンビニで昼食などを購入したあと、230D 小淵沢行に再び乗車。
佐久海ノ口駅で再び下車。
本当は隣の佐久広瀬駅で降りようと思っていたが、佐久広瀬にはあまりにも何もないという情報があったため不安になり、急遽降りる駅を佐久海ノ口に変更した。
ちなみに佐久海ノ口から15分くらい歩いたところの川。
魚魂だって。多分この川の魚を使った料理店みたいなものがあるのだろう。
この奥にある鉄橋を走行しているところを撮影した。
229D 小諸行 キハE200形気動車である。所謂ハイブリッドカー。この旅で唯一撮影できた。望遠使ってもう少し車両に寄ってもよかった気がするけど、どのようなところを走っているかわかりやすいのでよしとして。
のどかな南牧村のようす。
運賃表。駅数的に信じられないかもしれないが、距離的にはこの駅は小海線のちょうど中間くらいのところにある。
この日は結構晴れており、撮影が終わって次の列車まで1時間半くらいあったので、この近くに唯一あった飲食店で時間を潰したあと、232D 小淵沢行に乗車。
小淵沢で乗り換えて甲府まで向かった。小淵沢到着時点でまだ16時くらいだったが、この日は睡眠2時間(寝付けなかった)の5:30から動いていたので疲れてしまった。
最後に小海線撮影旅行で動画もいくつかとっていたので、それも見てください。
www.youtube.com甲府で晩御飯。蕎麦と鳥モツ煮とワイン。(なんという組み合わせ)
ありがとう甲州ワイン。
この日はネットカフェ宿泊だったので、最寄りの酒折駅まで電車で向かった。
酒折駅から徒歩20分、コインランドリーで洗濯をしてから宿泊先へ。ちなみに宿泊したのは快活クラブ甲府上阿原店なのだが、この店舗、シャワーがない。というか、山梨県内の快活クラブでシャワー完備なのは石和店のみらしい。仕方ないので、着替えて体にシーブリーズを吹きかけまくって寝た。不快ではあったがギリギリ耐えられはするくらいだった。
とりあえず今回はここまでです。次で山梨編は最後になると思いますがよろしくお願いします。