Latest posts

リンク一覧

現在利用しているサービス一覧。

随時更新。

NAACL2019@Minneapolice

既に大学院を卒業した身ではあるのですが、先日はじめて国際学会であるNAACLに参加しました。

修士で取り組んだ研究について、Workshopで発表するためです。

初海外出張かつ初アメリカなこともあり、同行した研究室の方々に助けられっぱなしの1週間でした。

少しだけ感想をブログに書こうと思います。あまり研究の話は書きません。

会場Minneapolisについて

ミネアポリスは札幌と同じぐらいの緯度にあるミネソタ州の都市です。

映画 ファーゴでのイメージは雪国だったのですが、滞在中は連日カンカン照りの真夏でした。サマータイムなこともあり、夜21時ぐらいまで太陽が登っており、不思議な感覚でした。

photo1

ホテル会場近くにオフィスビル街があり、買い物や食事場所には困りませんでした。良い塩梅の都会です。

特にデパートのTarget は日本でいう西友のような安心感があり、何度も通わせていただきました。

本会議の様子

英語のリスニングに自信がなかったのですが、今回のNAACL ではMicrosoft TranslaterによるLiveCaptions(文字書き起こし&翻訳機能)が実装されており、早口で聞き取れない部分も書き起こしを読むことができる素晴らしい状況でした。

翻訳精度もそこそこ良かったです。

またoral発表では、chairとは別にlive twiter 係(?) がいて、発表内容についてtweetしてくれる場合がありました。

djangoアプリをつくってherokuに公開しました

タイトル通り,djangoアプリをつくってherokuに公開しました.

kj8recordrecord という趣味全開のアプリです.

URL: https://kj8-record-record.herokuapp.com

githubにコードをあげています.

どんなアプリ?

関ジャニ∞の曲名・CD情報を表示するアプリケーションです(関ジャニ∞だけです)

表示できること

  • CD一覧
  • CDの収録曲
  • 表示された曲と同じ曲名が収録されたCD

作成手順

  1. データ作成
  2. データベースにいれる
  3. 表示機能の作成
  4. herokuにdeploy

それぞれ詳細について書きます.

データ作成

欲しいデータは以下のようなもの.

  • CD : タイトル, シングルorアルバム, 発売日 (model : Disc)
  • 曲 : タイトル, 収録されているCD, CD内の曲順 (model : Song)

早速曲情報データベースから取得しようとしたものの

  • ジャスラック :曲情報だけ
  • MusicBrain:2014年で情報が止まっている
  • freedb: 情報にヌケモレがあるためスクレイピング後にゴミ取り作業が発生する

といった理由から …

flaskをherokuにdeployする

Flaskで作ったアプリをHerokuにデプロイしたかったのだが,色々突っかかったのでメモ.

ファイル一覧

Flaskファイル

Flaskは1つのPythonファイルでアプリを作成できる便利なフレームワーク.

heroku-basic-flaskにならってapp.pyを作成.

  • app.py
    • Hello herokuと時刻を表示させるだけのコード

Herokuに必要なファイル

この記事のメイン.

Herokuに依存関係を特定させるために以下のファイルを作成する必要がある.(以下のファイルはapp.pyと同じ階層に置く)

  • Procfile

    • 実行するコマンドを宣言するファイル
    • gnicornを使うといいみたいなのでpip installしておく
    • 書き方はプロセスタイプ:コマンド という感じ.
    • app.pyを実行してほしい --> web: gunicorn app:app --log-file=-
  • requirements.txt

    • 必要なPythonパッケージを記入
      • Flask,gnicorn etc...
    • バージョンも書いておかないとNo such file or …

javascriptでtimerをつくりたい(1)

研究室の研究会では発表時間が設定されており,先代の方が作成したタイマーで時間を測っている. htmlページでjavascriptを用いて,時間を計測するシステムである.

アラートを鳴らす時間を設定できるので5分ごと,30分後,みたいに細かい設定ができる.

また,ゆっくりボイスで"x分経過しました"と音声が再生されるので時間を意識しやすいしくみになっている.

しかし,タイムキーパーをやりながらちょこちょこ不満点が出てきた.

そして変更したい欲が出てきた.

変更したい点

  • レスポンシブルにしたい
    • 画面サイズを変更しても時間が見えるほうが嬉しい
  • iPadでも音声が再生されるようにしたい
    • PC上で実行しているが,持て余してるiPadをタイマー代わりにしたい(iOSではデータ制限のためか,音声が再生されない)
  • 5分ごと鳴らすのは確定しているので設定を固定にしてしまいたい

ということで,とりあえず今までのタイマーを参考にしつつ,レスポンシブルに変更したタイマーを作成してみた.

--> これ

ちょうどjavascriptでなにか作ってみたい,という気持ちがあったのでイチからつくってみた.

以下作成記録です.

ストップウォッチ

元ページのソースコードをみるとここのサイトのストップウォッチを参考にしていた. このコードではDatesetIntervalを使って時間を計測している.

Date

時間を扱うオブジェクト.

引数を与えない場合,現在時刻を取得する.

Start = new Date();

経過時間を計算したい場合はgetTime()を用いる.

これは1970 …

dropwhileとtakewhileを使う

pythonの便利ライブラリitertools. その中のdropwhiletakewhileを使うときのメモ.

iteratorの例

100本ノック10章91で用いている単語アナロジー評価データを例に考えます。

このデータ中で": "で始まる行はセクション名を表す.例えば,": capital-common-countries"という行は,"capital-common-countries"というセクションの開始を表している.

言語処理100本ノック 2015より

dropwhile

条件がtrueの間無視(drop)して,falseになった場所からはじめる. 条件はlambda式を使う。

例えばfamilyというセクション以降のデータが欲しい時は下のようになる。

dropwhile(lambda x: x != ': family\n', f)

takewhile

条件がtrueの間に続けて,falseになったら終了.

例えばfamilyというセクションより前のデータだけ取得する時は下のようになる。

takewhile(lambda y: y …

共有ボタンを作る

使っているテーマのテンプレートには共有ボタンみたいなものがデフォルトでついていません。

Pelican pluginにshare_postという拡張プラグインもあるのですが、いまいちわからず。

簡単に実装できるのではないか、と思い、自分でテンプレートを編集してみることにしました。

出来上がったものは記事の一番下に設置しています。

変更内容

今回はtwitterとfacebookだけ作成してみます。 javascriptなどは使わず、WEB APIを指定したaタグをページに置くことにしました。

WEB APIはそれぞれ以下の通り。

  • twitter : http://twitter.com/share?url={{ 記事のURL }}&text={{ タイトル }}
  • facebook : https://www.facebook.com/sharer/sharer.php?u={{ 記事のURL }}

これを記事のテンプレート(テーマのtempletes/article.html)に組み込みます。記事のURLとタイトルを示す変数はドキュメントを参考にしました。

表示するアイコンはfontawesomeから取得します。

(表示されないアイコンがあったため、font-awesomeのCDNを新しいversionに変更しました …

test's test(+pelican仕様のメモ)

GitHub Pagesをちゃんと使いたい.

pelicanを設定したものの毎回設定内容を忘れてしまって初期化してました. これで3回目です. 今度こそ,この設定を維持したまま更新します.

仕様のメモ

  • Pelican
    • python製の静的サイトジェネレーター
    • GitHub Pagesで公開する方法もまとめられていて優しい(参考)
  • pelican-theme : Pure

    • 名前通りpure cssを使っているpelicanのテーマ
    • 研究室の個人ページでもpureを使っているのでこっちでも使用することにした
    • いろんなフレームワーク試した中で一番しっくりきたのがpure. サイトに乗っているexample layoutsもおしゃれなのでそのまま使えるレベル.
  • side-bar image : unsplash

    • 画像をヘッダー/サイドバーとして設定できるのでunsplashの写真を利用することにした
    • 参考
    • APIを叩いて取得することもできる --> Unsplash Source

こんなふうに

ランダム取得

とりあえずこんな感じでやっていきます.