[卒研メモ] PythonによるTwitterテキスト分析例

 今週に入って語彙力テストなるWebテストが話題になりましたが,その点数分布をTwitterから拾い出してヒストグラムにするPythonスクリプトを作成・公開し,結果として偏りがいびつであることを突き止めたページがありましたので紹介しておきます。

 件のPythonスクリプトは,OAuthを経由してTwitter APIを利用し,語彙力テスト結果をTLから取り出して自動的に集計させています。コメントで指摘がありましたが,語彙力テスト自体はJavaScriptに全部のテストと点数が埋め込まれているので(ソースを見ると一目瞭然),そちらを解析した方が正確になるのですが,仮にソースがなくても結果の異常性が探索できるという点,今のAIに通じる物の見方と言えるでしょう。

 APIを使うことはPHPでも十分可能ですが(PECLのOAuthを使うと楽そう),美しいヒストグラムを出力するのはmatplotlibを活用できるPythonの面目躍如ですね。

卒研メモ:DropzoneJSを用いたファイルアップロード例

 以前にも書いた通り,JavaScriptを活用したファイルアップロード例の第一弾ができたので,ここに追加予定の素材を手短にまとめておきます。

 まずはDropzoneJSを使用した例を示します。jQueryの例は後ほど。

1. HTMLフォーム,PHPスクリプトだけでファイルアップロードができることを確認する。この例ではどちらも同じディレクトリ(フォルダ)に置いておく設定になっていることに注意。イメージファイルはその直下のimgディレクトリにコピーする。

HTMLフォーム
index_normal_html

PHPスクリプト(upload_normal.php)
upload_normal_php

 これでアップロードができないようなら,HTMLフォーム(nameなど),PHPスクリプト,アップロード先のimgディレクトリの書き込み権限を確認すること。

2. DropzoneJSのソース(dropzone.js, dropzone.css)をダウンロードして適切なディレクトリに置いておく。ここではHTMLフォーム,PHPスクリプトと同じディレクトリに置いておく設定。

3. HTMLフォームのソースを下記のように書き換える。
index_dropzone1_html

ブラウザで開くと次のようにドロップエリア(四角の枠内)が表示されるので,ファイルをドラッグ&ドロップしてみる。
dropzone1_start

 下記のようになり,自動的にファイルがアップロードされたことを確認する。
dropzone1_finished

4. DropzoneJSのオプションを利用して,次の機能

  • メッセージの日本語化
  • 自動アップロードの無効化とアップロードボタンの追加
  • 画像ファイルのみアップロード可に。ファイル数は5個,一つ1MBに制限
  • ファイル削除ボタンの追加
  • アップロード後のファイル自動削除

を追加したHTMLフォームを用意する。ネタ元はこちら
index_dropzone_option_html

 このフォームをブラウザで見ると,次のような画面になる。

dropzone_option_start

 なお,PHPスクリプト(upload_dropzone_option.php)はfileフォームの名前を”image_file”に変更しただけである。
upload_dropzone_option_php

 画像ファイルをドラッグ&ドロップしたらアップロードが開始され,終了したファイルから自動削除されることを確認すること。
dropzone_option_upload

卒研メモ:世界コンピュータ言語使用頻度ランキング

 IEEE Spectrumで,12の統計値を総合したコンピュータ言語の使用頻度ランキングが紹介されていました。

 インタラクティブなグラフはこちらにあります。Webアプリケーション,モバイル環境,エンタープライズ(いわゆる普通のPC上の開発環境も含む),組み込み系の4つのカテゴリ別のグラフが取れます。備忘録がてら,ここに貼り込んでおきますね。Pythonの伸びが凄いのが分かります。

  • 総合
    ieeespec_total2016
  • Webアプリケーション
    ieeespec_web2016
  • モバイル環境
    ieeespec_mobile2016 
  • エンタープライズ開発環境
    ieeespec_enterprise2016
  • 組み込み系
    ieeespec_embedded2016

 このグラフ,お仕事系,オープンソース系等のジャンルごとの指標やトレンド(伸び率)での比較もできる優れものです。大いに活用しましょう。マネしましょう。

卒研メモ:SciPy Lecture Notes

2016-07-19_150704

 機械学習に限らず,全世界的にはPython言語の使用が普通になりつつあります。私の興味は科学技術計算なので,SciPyNumPyといったPythonパッケージの利用をしたいと考えています。Pythonをインストールしたら,setuptools, pipも入れ,しかる後に様々なパッケージ類をpipコマンドでインストールしていくという手順になるようです。

 特に簡単なSciPyのチュートリアルとして,SciPy Lecture Notesというものがあり(ミラー),その日本語訳もCreative Commonsライセンスで公開されています。まずはこの辺から勉強がてら,触ってみるのが良さそうです。最後は機械学習用のPythonパッケージであるscikit-learnや画像処理用のscikit-imageの解説も載っています。

 夏休みの勉強用に一読をお勧めします。

卒研メモ:Androidスマホのスクリーンキャプチャ機能とDrag&Drop

 世の中のアプリケーションソフト(アプリ)の大半がスマホになりつつある昨今ですので,Webアプリもスマホで動作確認しなければなりません。そこで,実際にスマホでWebアプリが動いている様子を動画として保存するスクリーンキャプチャが必要になります。高性能スマホのXperia等では購入時に同梱されているようですが,デフォルト状態では入っていないものが多いようですので(iPhoneは調べてません),AZ Screen Recorderを初めとするいくつかのアプリを試して使い勝手のいいものを選んで下さい。

 話変わって・・・以前ここでも書いた通り,現在PHP+MySQLを使ったWebアプリ作成テキストを作成中で,大まか出来ているのですが,これにJavaScriptを加えて使い勝手を良くする手法を追加していくことにしています。手始めに,ファイルアップロードを手軽に行うためのDrag&Dropボックスを作る予定でいます。

 このためには,jQueryの機能を使い,AJAXも利用して作るか(オリジナルと翻訳版),DropzoneJSを使うか,サンプルを読みながら選択する必要があるようです。前者の方はプリミティブな機能を積み上げて構築している分,内容を理解すれば使い勝手が良くなりそうですし(Drag&Drop後にsubmitボタンでアップロード(AJAX利用なし)→Drag&Drop直後にすぐアップロード(AJAX利用),後者はかなりお手軽に機能追加ができそうです。何にせよ,PHPとJavaScriptと連携しないと機能しないものですので,勉強にはなりそうです。

 この機能を付加した事例を追加した後は

  • jQueryそのものの簡単な解説とjqPlotによるグラフ作成例を追加
  • PHPのMySQLi関数を手続き型呼び出しからクラス呼び出しに変更(追記する?)
  • PDOクラス作成バージョン(SQLite3)の構築(来年度かな?)
  • PDOクラス作成バージョンにSQL Server(無理かしら?)の例を追加

という方向で膨らんでいけばいいなと夢想しています。

幸谷研究室・情報セミナー2スケジュール

幸谷研究室に新規配属された3年生にプレゼンした資料

[PDF] 情報セミナー2スケジュール

2017年度情報セミナー2について

  • 実施日時:x曜x限目,y曜y限目
  • 場所:研究実験棟443実験室
  • 使用ソフトウェア:XAMPP for Windows
  • テキスト:暫定版

初回は443実験室ネットワークの設定,XAMPP for Windowsのインストール,輪講割り当て,連絡係の決定を行います。必ず自分のNote PCを持参して下さい。

卒研メモ:WordPressプラグイン作成入門

 本研究室の卒研テーマの多くはPHP+MySQLによるWebアプリ作成が多くなっています。WordPressはPHPで構築されたWebアプリの中でも利用者数はトップクラス,本研究室でも大いに利用させてもらっています。便利だし高速だし,何よりPlug-inが豊富なのは助かります。

 ということで,WordPress用のPlug-inを作るという卒研テーマもアリです。そのための手引きとなりそうな日本語文書を幾つか見つけたので,備忘録の一つとして書き残しておきます。

  • WordPress(自分専用)マイアプリを作ろう・・・どう作ればいいのか全くわからない状態の時に「まずやってみる」ための手引きとなります。これで挫折するようなら諦めて別テーマを探しましょう。
  • WordPressプラグイン作成入門・・・スライド数100枚の大作ですが,とても分かりやすく「。」を顔文字に自動変換するPlug-inの作り方を解説しています。WordPressの動作のあらましも理解できるようになるため,大規模なCMSを構築する際には参考になります。

就活メモ: コンピュータシステム学科のカリキュラムパス

 依頼があったので,かなり大雑把なものですが,本学(静岡理工科大学)コンピュータシステム学科入学生のカリキュラムパスを描いてみました。本学科でどのような教育を受けたかを説明する機会があれば,この図を思い描きながら大づかみで解説できるようになって下さい。

[PDF版]

コンピュータシステム学科のカリキュラム体系と卒業後の進路像