ごはんと飲み物は紙一重

このブログはモチベーションアップのために情報工学関連について記事を更新していこうと思います。三日坊主にならないよう頑張ります。

あけましたおめでとうございました

どうも、久しぶりの更新でございます。あけましたおめでとうございました。

もちろんサボっていたわけではなく、何をしていたかというと、

学会の提出原稿の作成

をしてました。元々講義と並行した研究をしていたので、時間が全然足りず、実験と並行しながらひたすら原稿を書く日々を1ヶ月弱してました。流石にクリスマス過ぎたあたりからブログ書いている場合じゃねぇと研究室のボスに忠告され、一段落するまでは我慢していた感じです。

結果としては提出日に無事間に合い提出することができました。普段は平均睡眠時間6時間を確保しているのですが、この冬休みだけは生活リズムをボロボロにして原稿を書いたりしてました。いわゆるデスマーチってやつですね。

元々過密スケジュールになることはわかっていて、今回の学会に登録したのですが、締切を設けて自分を追い込むことも大切だと思ったが最後、こんなにも身を削ることになるとは思っていませんでした。

デスマーチとはいえやっぱり好きなことをやっている時間はとても楽しくあっという間で朝9時から夜3時まで平気でぶっ通しで作業しちゃったりしてました。好きなことに集中力を注げるのは大切ですね(目は大切に)

この原稿作成までのデスマーチのおかげで、自分自身の研究に対するモチベーションも戻ってきて結果的に良かったのではないかと思います。2ヶ月後が発表なのでそれまでにまた発表資料作成や追加実験などいろいろやっていこうと思います。 計 画 的 に。

1年を振り返りますよというわけで今年の振り返り

今年を自分の記事を通して振り返って行こうかと思います。

去年は振り返りもせず年明けてから更新みたいでした。

大方進行中の目標は達成できたのではないかと思います。特にPyConJPとFIT2017、そしてちゅらデータさんへのインターンは自分の進路を左右する重要な出来事になってくれました。

FITを一人で回るのはとても寂しかったので今度は教授と一緒に回りたいなんて思いました(切実)

そして1年の目標として設定した

  • 取捨選択をしっかり見極めて実行していく

ですね。これはできたかどうかでいうと50%ぐらいですかね。見極めて実行した分はちゃんと自分に成果として返ってきてますし、まだまだ周りに流されてしまっている自分もあったのでこれは今年に限らず来年も意識していきたいところですね。

さてこのブログを通して大きく変わったのはインターン後ですかね。圧倒的に技術的な記事が増えましたし、なにより継続してブログ更新できているのがとても素晴らしいなと感じています。夏休みに多くの社会人と顔を合わせる機会があったからこそですね。

来年の目標ですが、

報連相を意識する

ですね。当たり前っちゃ当たり前なんですが、これから先の1年というものは進路を決めたり、卒論を書いたりと、誰かに頼らなければ最終的な判断を下しきれない重要なイベントが控えております。そんなときに一人で抱えることなく事ある毎にいろんな人に報告・連絡・相談をしていきたいと思います。

というわけで簡単ですが今年の振り返りを終えたいと思います。あと大学生活も1年と少しなので、使える時間を精一杯色んな所に向けていきたいと思います。今年もこの私と関わってくれた皆様に感謝感謝です。ではでは。

Pythonのtest系ファイルをlsとgrepで取得してxargsで全実行する方法

最近更新してなかったので更新。大きな更新も今後予定しているのでちとまってくだされ。

というわけで表題。

答えから先に言うと

ls -d $PWD/path/to/folder/* | grep test(検索用語は用途に応じて) | xargs python

な感じです。ls -d$PWDを使ってフルパスを取得し、grepで絞込み、残りをxargsで実行しちゃおうというわけ。環境構築していて原因が見つからなかったときとか一緒に入ってるsampleをとりあえず片っ端から実行して、エラーがでないかどうかチェックするわけですよ。

まぁこれをやってもなお絶賛環境構築の闇に揉まれているわけですが。

報連相は大切

タイトルの通り。最近私自身に報連相が足りてないような気がして、周りの人たちを困らせてばっかりいます。

なので報連相はしっかりしましょう。する側もされる側もwin-winなので積極的にやっていきたい。

というわけで表題は終わり←

本題はここからで、いろんな予定がガツガツついてきたのでタスク管理しないとなと思って、今年の4月から導入しているアプリケーションがToDoistでございます。

こちらタスク管理ツールなのですが、操作もシンプルでなおかつgoogleアカウントと連携すると、タスクをカレンダーに追加してくれるスグレモノ。無料で使える割には優秀かなと思っております。まる。

ここに報連相することをちゃんとタスク追加できれば忘れない・・・ような気がします・・・ぜひお試しを・・・

12/11 21:00 追記 f:id:ST_ha1cyon:20171211214301p:plain

どうやらタスク消化のタイミングでプロになったらしく3ヶ月分の有料クーポンもらえました。やったね。

ついに研究室配属が佳境を迎える感じに

私の通う大学でも研究室配属が始まっているわけで、とはいえこの時期だとだいぶ遅いって言われそうなのですが、どうも今年の研究室配属関係に参加している学生がなかなか話を進めないせいかずるずると12月に。

私自身は夏休み中盤以降から話はふっていたのですが、動いてくれずあきらめモード。

というのも大学での研究室配属での決め方が基本的に成績重視の決め方をするので、これまで培ってきた講義の成績がすべてなわけですよ。その中でも上位10%に入っているので、とくにどういう決め方になろうと成績重視が変わらない限りは雲の上から研究室配属による戦争を覗いていられるわけですよ。

そして明後日に仮配属決定を控えた今、周りの学生がざわざわしていて非常に面白いなと。2週間前から個人的に色々動いて、研究室の希望状況を分析して公開したり、各研究室に関する情報をまとめたりと、戦争を激化させるような働きをしてたこともありいい感じに面白くなってきました。

研究室も迷うことなく機械学習をさせてくれそうな研究室を選びあとは待つだけ。

正直もっと早く動けば先生と学生との面談とかして相性を確認するのがよかったんじゃないかなと思いますよ。来年の研究室配属では今年の失敗をぜひとも踏まないように頑張っていただきたいですね。

【Python Advent Calender 1日目】scrapyを使ってpixivのランキングから評価の高い画像だけをクローリングする

Python Advent Calender

※本記事は、【Python Advent Calender 2017 1日目】の記事になります。

もともとはOMEGA014さんが埋めていたカレンダーでしたが、もともと書きたいとは思いながらも埋まっているわ何か書こうかとか考えているうちに埋まってしまうわで散々でしたが、なんとなんと1日目に穴が空いているではありませんか!

私の誕生日が12月1日ということもありこれはもしかすると運命かもしれないと思い投稿することに。

というわけで飛び入り遅刻勢で滑り込んでいこうというスタンスです←

お前さん誰だ

  • 某南の島にて情報工学を学ぶ大学生です
  • 普段はJupyter + Python でデータ分析や画像処理(OpenCV)、自然言語処理など幅広く勉強しています。
  • そろそろ進路を決めなきゃいけない学年でございます

んで本題

なんでも書いてよい感じだったのでつい最近やったことを晒そうかと。

大学の講義実験にて、「pixivの人気イラストの特徴が何か分析してみよう」という題のもとプロジェクトがスタートするにあたり、分析する画像が必要となりこれを数百枚以上用意する必要が出てきたのでそのときに書いたプログラムなどを晒しながら個人的なポイントとかを紹介して行こうと思います。

scrapy とは

2年前のPython Advent Calender にてすっごく分かりやすい説明をしていただいた記事があったのでそちらを参考にしていただけると。

ベースとなったプログラム

基本的には上記リポジトリに変更を加えるような形でプログラムを作りました。先人の知恵でログインのところやparseのところをかいてくれていたお陰でだいぶ楽にクローリングすることができました。この場をお借りして感謝申し上げたいと思います。謝謝。

変更点

主に変更したのは画像をダウンロードする部分(parse_detail)で、

def parse_detail(self, response):
        item = response.meta['item']
        item['url'] = response.url
        img_url = response.css('._illust_modal img').css('::attr("data-src")').extract()

        rated_count = response.xpath("//div[@class='user-reaction']/section[@class='score']/dl/dd[@class='rated-count']//text()").extract_first()

        # 画像が存在し、なおかついいね数が5000以上のみ収集
        print("=====================================")
        print("This illust rated_count is {}" .format(rated_count))
        if (len(img_url) > 0) and int(rated_count) > 5000:
            item['img_urls'] = img_url
        yield item

rated_countが新しく加えた部分です。ポイントはxpathを使用して必要なデータを細かく指定しているところですね。わりと当たり前な方法といえば当たり前ではあるのですが、scrapyが初心者である私にはxpathcssの指定でクローリングしたデータから抽出できることに感動していました。

実際に抽出する場所はブラウザの検証などをつかってソースを眺める作業に費やしていたので目がとても痛かった・・・

結果

今回はいいね数が5000以上の画像のみを取得するようにして・・・

f:id:ST_ha1cyon:20171203171127p:plain

いい感じにクローリングできました。

scrapyの使用が初めてだったのでソースの理解やxpathの理解に時間を費やしてしまったのですが、おかげさまでクローリングのちょっとした理解ができました。データ収集はこれからも必要な技術ではあるので面白い方向にscrapyをどんどん使用していきたいと思います!

(もちろん!悪意のあるクローリングは相手先サーバに負荷をかけてしまうので気をつけてくださいね!sleepを適度に挟む必要が有ることを初めて知った )

長年使い続けるとよくある手放せない感

f:id:ST_ha1cyon:20171127224210j:plain

イヤホンの話です。このイヤホンは買ったときの原型をほとんどとどめていないのですが、一応SHURE SE215-SP っていう遮音性の高い良いイヤホンです。

https://www.amazon.co.jp/SHURE-Special-%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B9%E3%82%B9%E3%83%AB%E3%83%BC%E3%82%BB%E3%83%B3%E3%83%88%E3%83%96%E3%83%AB%E3%83%BC-SE215SPE-%E3%80%90%E5%9B%BD%E5%86%85%E6%AD%A3%E8%A6%8F%E5%93%81%E3%80%91/dp/B00A16BT4E

元画像はこちら。

f:id:ST_ha1cyon:20171127224438j:plain

そう。このイヤホンはリケーブル可能なイヤホンで、つまり耳につけるイヤホン本体が壊れない限り、リケーブルやイヤーピースの交換だけで長く使えるってわけです。

このイヤホンは思い出の品で、浪人時代にもらった初めてのバイト代で奮発して購入し、その浪人時代から今に至るくらいまで4年ほどお世話になっています。

今年の夏についに断線・・・ではなく耳にかけるための針金が折れてしまい、応急処置をして1年持たせていたのですがそろそろ買い替えと思いケーブルを交換することに。

このイヤホンはSHUREがけという普通のイヤホンとは違うかけ方をしていて、詳しくは「シュアがけ」で調べてみてください。

そして交換したケーブルとイヤーピースとともに今のイヤホンに至るわけです。高いイヤホンでありながら、長く大切に使えるってとても素晴らしいと今になって改めて思います。

ケーブルは2年前から買おう買おうとしてかってなかった青のクリアなケーブル。若干低音が強くなります。耳の中が幸せになれるイヤーピース。遮音性もバッチリ。

たぶん今後も高いイヤホンに手を出そうとおもいながらも結局リケーブルしてしまいそうです。4年も使うと表のSHUREのロゴなんてかすれて消えてしまいますww

徒然と書きなぐった上で、何が言いたいのかというと、身の回りにある長年使っているものは機会のあるうちに手入れしておきましょうって話です。愛着もわくし。

P.S. なんか最近埋め込みできないことがちらほら・・・なぜ・・・?