意味悲鳴

PythonとかUnityとか.技術ブログでしたが,研究ブログにシフトしました.

資料作成駆動研究

特に何も考えずにやっていたんですけど,それなりに良い気がしたので今週の週報で書いておきたい.

私は締切がないとどうにも体が動かない人間なので,メンターさんには週に1回程度ミーティングをしてもらって,毎週あーだこーだ言ってもらうようにしているのですが,その際に毎回発表資料を作成するようにしています.

 

発表資料といってもOneNoteに適当に書いた文章を見せながら話をするだけなので,別に大したことをしているわけでもないのですが,毎度毎度研究した話を資料に作り直すのは時間もかかるし面倒くさいしなにより辛いので,最近は発表資料を作りながら研究をするようにしています.

 

この時の手順というのがそれなりに大切で.だいたい以下のように作っています.

 

1,今週の議題として,見出しを作成する.この見出しがそのまま作業内容になる.

2,実際に作業を行いつつ,見出し以下に有益なURLや実験結果などを書き込んでいく.本当にメモなので,多少雑でもいいから書きこんでいく.

3,実際の作業が終わったら(だいたい発表の前日ぐらい),来週に向けての話や,気になる話題,相談したい内容(学会出たいです,この論文わけわからんかったなど)を書き込んでいく.

4,資料を見せながら発表(といっても今週やった話をするだけ).雑ではあるものの言いたいことは全部資料に書いてあることが分かっているので,話すときも楽ちん.

 

雑ですがだいたいこんな感じ.2番だけやっている人はおそらくたくさんいると思うけど,1番と3番はものすごく効くのでやったほうがいいと思っています.1番は実質的にはスケジュールをたてるのと同じなので,私のようにカレンダーやToDoリストに今週やるべきことを突っ込むのが面倒な人におすすめ.3番は,メンターさんが具体的な指示が出しやすくなったり,無駄な時間を使わなくなったりするのでぜひやるべき.

 

あと,これ書いているので日報を書かなくなりました.作業内容が書いてある見出しに日付を加えればそれで実質日報になるので.しかも研究に関する情報は全部一週間単位で一つのドキュメントになっているので管理も楽ちん.

 

というわけで,みんな資料作りながら研究しまししょう.資料作成駆動研究しましょう.

WindowsでUNIXのsortを使うメモ

www.k-tanaka.net

cmdのsortは列指定ができないということで驚愕しました.マジかよ.というわけでLinuxのsortコマンドをWindowsで使えるようにします.といっても一瞬で終わるお話で.

github.com

これインストールして,gsort --helpって打つと,

$ gsort --help
Usage: gsort [OPTION]... [FILE]...
Write sorted concatenation of all FILE(s) to standard output.

Ordering options:

Mandatory arguments to long options are mandatory for short options too.
  -b, --ignore-leading-blanks ignore leading blanks
  -d, --dictionary-order      consider only blanks and alphanumeric characters
  -f, --ignore-case           fold lower case to upper case characters
  -g, --general-numeric-sort  compare according to general numerical value
  -i, --ignore-nonprinting    consider only printable characters
  -M, --month-sort            compare (unknown) < `JAN' < ... < `DEC'
  -n, --numeric-sort          compare according to string numerical value
  -r, --reverse               reverse the result of comparisons

(以下省略)

ちなみに他にもいろいろ一緒にインストールされていて,gow -lって打つと出てくる.

$ gow -l
Available executables:

  awk, basename, bash, bc, bison, bunzip2, bzip2, bzip2recover, cat,
  chgrp, chmod, chown, chroot, cksum, clear, cp, csplit, curl, cut, dc,
  dd, df, diff, diff3, dirname, dos2unix, du, egrep, env, expand, expr,
  factor, fgrep, flex, fmt, fold, gawk, gfind, gow, grep, gsar, gsort,
  gzip, head, hostid, hostname, id, indent, install, join, jwhois, less,
  lesskey, ln, ls, m4, make, md5sum, mkdir, mkfifo, mknod, mv, nano,
  ncftp, nl, od, pageant, paste, patch, pathchk, plink, pr, printenv,
  printf, pscp, psftp, putty, puttygen, pwd, rm, rmdir, scp, sdiff, sed,
  seq, sftp, sha1sum, shar, sleep, split, ssh, su, sum, sync, tac, tail,
  tar, tee, test, touch, tr, uname, unexpand, uniq, unix2dos, unlink,
  unrar, unshar, uudecode, uuencode, vim, wc, wget, whereis, which,
  whoami, xargs, yes, zip

素晴らしい.

Pythonで全角・半角記号をまとめて消し去る

これ,早いのか分かりませんけど,とりあえず手元の環境ではそれなりにうまく行っているので,書いておきます. このコードはPython3で書いています.Python2でも似たようなことをすれば動くみたいですが,若干違うので,後半の参考URLを見てください.

import unicodedata
import string

def format_text(text):
    text = unicodedata.normalize("NFKC", text)  # 全角記号をざっくり半角へ置換(でも不完全)

    # 記号を消し去るための魔法のテーブル作成
    table = str.maketrans("", "", string.punctuation  + "「」、。・")
    text = text.translate(table)

    return text

ざっくりとコードの説明を.unicodedata.normalize()は,Unicode文字列の互換等価性なるものに基いて文字列の置き換えをしてくれます.全角記号の文字には互換等価性があるらしく,ようはその等価性がある文字が半角記号らしいので,結果的にこの関数をかませると大体の記号が全角から半角になってくれます.

その後,str.maketrans()で実際に置き換える規則を指定します.この関数,第一引数と第二引数に文字列を指定すると,それぞれ特定の文字単位で置き換えられます.イメージとしては("abc","ABC")を指定した時,aがAに,bがBになります.が,今回はそこの引数は使わなくて,第三引数のみを使います.第三引数に指定した文字は削除してくれるので,ここに消し去ってほしい記号をぶっ込みます.

更にその後,作成したテーブルを元にtranslate()で実際に置き換えをして処理終了.お疲れ様でした.これで確実に全ての記号を消せたかというとちょっと微妙なのですが,大体の記号は消せるみたいです.

参考にしたURLは以下の通り.

Pythonでの文字列置換をマスターする - orangain flavor

Best way to strip punctuation from a string in Python - Stack Overflow

string - translate() takes exactly one argument (2 given) in python error - Stack Overflow

4. 組み込み型 — Python 3.5.2 ドキュメント

6.5. unicodedata — Unicode データベース — Python 3.5.2 ドキュメント

kh.log: Pythonで unicodedata.normalize を使って全角半角を正規化する方法

議論する準備

これはとても当たり前で,当たり前の話なんですけども,議論をするには議論のネタが必要なんですよ.必要不可欠.で,今しがたメンターさんと面談してきたんですけど,その部分が準備不足でなにかすごく無益な時間を過ごしてしまいました.

 

今週に関しては作業の取捨選択が上手くできていなかったので,そのせいで報告できる内容が全くもって薄っぺらになって,結果的に議論のネタができていませんでした.メンターさんも「まぁ進まないのは仕方ないけど,今回の場合はバッサリ切っていい部分だったかもしれないよ」とやんわり注意されて,申し訳ない気持ちでいっぱいに.

 

それと,先週の記事ではタスクを設定する部分が完全に振り出しに戻ったとか言ってたんですけど,どうやら私が先走っていただけのようで,そのあたりも反省.

今日メンターさんにハッとしたんですが,「自分の研究なんだから,もうちょっと自由に好き勝手やって良いんだよ」という一言.なんというか,これまでわりと指示された研究ばかりだったので,今回もそうなるもんだと思っていたんだけど(先週の指摘もあるし),でも結局やるべきはそうじゃなかったみたいで.もっと好きにやったらどうと言われて少し元気が出た.

 

ひとまず来週までに取り組む内容が決まったので,粛々とこなしていくつもり.頑張るぞい.

研究が1歩進んだと思ったら実は進んでいなかった

はい.タイトルのとおりです.面談したお陰で相談できる人が増えたのはいいんですけど,自分の研究のタスク決定が振り出しに戻りました.うへぇ.

 

自分自身ではある程度方向性が決まったと思っていたんですが,先日の進捗報告会で色々言われてしまいました.おそらく,うちのボス的にはあのタスクに意味があると思えなかったのだと思います.個人的にも強烈にこだわりがあるわけではなかったので,別に取り組んでいたタスクが(もちろんオブラートに包んだ上でですが)否定されても痛くも痒くもないのですが,どちらかと言うとまた色々やり直しになる方が苦しいですね.

 

基本的に取り組みたい題材自体は決まっているのですが,問題はそこから先のお話で,その題材をどうやって役に立つ形の研究するかに苦しんでおります.先行研究見りゃなんとでもできる気もしますが,研究室の研究自体にもある程度の貢献をするとハードルが格段に上がる気が.まぁ,素直に与えられたタスクこなすのでもいい気はするんですけど.とりあえずメンターさんと議論しつつ頑張ります.

 

あと,個人的に就活に向けて作品制作とかしていなかったのが今になって大変後悔しております.夏休み中になんかやってればよかったなぁと今更思っております.まぁ,でも今更なので.何とかして時間つくってUnity触りましょうか.

研究の相対速度とは

こんばんは.内田真礼さんのラジオ聴きながら書いてます.内田真礼さんってなんでこんなに素晴らしいんでしょう…….丹下桜さんもいいですけどこっちも別種の良さがありますねぇ…….

 

そういえばこんなの買ったんですけど.

 

 

最高すぎてまだ全部読めていない…….キュンキュンするぅ…….かわいすぎだろほんと…….

 

さて,今週の週報のようななにかですが.

修士に入ってサーベイも一段落したところで,ようやく自分の研究が始まりそうな感じになっているんですが,先月は本当にものすごい勢いで研究が進んだ,というか,進まさせられたというか,とにかくスピード感がすごかった.

いつだったかメンターさんに「いきなり高速道路乗るようなもんだけど,加速さえできれば大丈夫だよ^^」みたいなことを言われたんですけど,本当にハイスピード.早い.本当に早い.スピード感すげぇ.アクセルベタ踏みだよほんと.

ただ,思った以上に苦しいという感じはしていなくて,むしろ自分がちゃんと修士している気がしてきたのでホッとしているぐらいです.とは言え,やはりやるべきことは相当に存在しているので,頑張らねばと思います.

もうちょっと具体的な内容については,明日にでもちゃんとまとめて書く予定.

 

どうでもいい話ですが,数週間すると研究室見学の時期だそうで.いろいろやっている関係でうちの研究室の評判なんかもチラチラ聞こえてくるのですが,それによると弊研究室は「ブラックじゃないけど単純に大変」と言われているそうです.この表現,言い得て妙な感じがする.単純に大変なんですぅ!ゼミに出るだけでも必死ですぅ!

ホワイトな研究室とは

週報のような何かです.

 

やはり自分が思うに最強の研究室に入ったのは,正解だったような正解じゃないような気がしてきました.いや,少なくとも研究室のレベルという意味でははっきり言って最強です.そりゃもう,私は多分あの研究室の底辺なんだけど,みんなこう,底辺扱いしないというか,人格者が多すぎて頭良すぎて自分の悲惨さが逆に目立ってくるみたいな,そんな感じの研究室なんです.

 

ただ,その上で驚いたことがあって.というのも,研究室のメンターさんがごく当たり前のように「週って40時間しか無いのに,授業にゼミにいっぱい出たり課題こなしてるんだからよく頑張るよねぇ」なんて言うんですよ.

 

ホワイト,というレベルではないでしょう.研究を週40時間しかしないというのはどうなんですかねそれ.研究室の学生として正しいんでしょうか?わたしが麻痺しているだけ?

というか,もっともっと単純な話として,その作業時間じゃ私研究室のペースに着いてけないっすよそれ…….進捗出せないですよ…….私が今週末(木曜日→日曜日)までに20時間ぐらいは作業しますって言ったら,「おお頑張るねぇ.ムリしないでね」ってそうなるのか.そう言っちゃうのか.言えちゃうのか.進捗出てないのに.

 

それで気づいたんですけど,これ単純にメンターさんが最強に優秀過ぎるせいでホワイトな状態を維持できてるだけなんじゃないでしょうか?要するに,大学院でホワイトに生きるためにはそれ相応の能力が必要だってことではないでしょうか.そして私は,む~りぃ~.

 

まぁ,学生ですし.がんばりますよ.頑張ります.以上.