強弱と高低

Python3をメインに

国際会議で口頭発表をする人のために

確認すべきこと

  1. 発表する国際会議の現地時間
  2. 発表時間と質問時間
  3. セッション名

何時から口頭発表するのかや,発表していいのは何分間か? という情報が無いことにはスライドは作りようがありません. あとは質問時間.大体の国際会議は発表+Q&Aで25分とかで指定されていますが, 中にはQAは最低5分取れと指示があったりもします.

あとはセッション名も確認しておきましょう. セッション名と自分の発表タイトルがどこで繋がっているかにより, 聴衆は変わってきます.QAが出ず座長から質問されることの無いよう聴衆が聞きたいものを想定します.

スライドやスクリプトは何を参考にするか

スライド

スライドは好みの問題が大きいため,イキリサイトみたいにあーだーこーだーとは言いません. スライド作成術みたいな書籍でも参考にすれば良いと思います. ただし,1つ言うとしたら,割と字は入れて良いと思います. 字を少なくするのが時流ですが,我々は英語が母国語ではないので 思ったことを口にしたときに英語がとっさに出てきにくいと思います. スクリプトを読み上げる発表だけは避けるべきですから,スライドを見てポインターで指示しながら 自然とスライドを見てスクリプトが思い出せる程度には字を入れてよいはずです. スライドに書かない部分としては,

  • 間投詞 All right,ok, well... とか
  • I'd like talk about ~,In the next slide, I'd touch on ~ とかの表現

スクリプトを全部スライドに書いていて,肝心の図が小さすぎて見えないというアジア人も 観測したことがあります.あと,分野によっては字だらけのスライドでOK!というとこもあるようですね. 慣例に習うもよし,フロンティアを拓くもよしで,最後は指導教員と相談でしょうかね.

スクリプト

スクリプトは,暗記します.発表の場で読み上げるのは推奨されていませんし, 日本人以外やっているのを見たことないレベルとも言われます.上述した通りですが,一部矛盾に思われるかもしれません.暗記するけども,暗記しないと終わるようなスライドは作らなくて良いです.例えば,全部写真とかのああいうカッコいいやつです.覚えることがプレッシャーになってしまうので,スライドの中にキーワードやセンテンスを入れ込んでしまえば良いと安心しましょう. 最もプレゼンテーションの中で言いたいところは確実に滑らかに言えるようにしましょう.

肝心のスクリプトは,書籍とネイティブスピーカーに頼るのが一番だと思います. Web記事もあるにはありますが,ネイティブチェックが入っているちゃんとしたとこ以外は, 英語表現の参考には到底なりえないと思います. 自分が使った書籍は,「国際学会 English スピーキング・エクササイズ 口演・発表・応答」(ISBN-13: 978-4263433393) というものです. Amazon CAPTCHA 使える表現が結構掲載されているので使えました.CDも使ってリスニングの助けにもなりました. 他にも何冊が読みましたが,一番良かったこの書籍を紹介しておきます.


初めて海外に行く人向けには,

  1. パスポートを取得すること
  2. 往復の飛行機を予約すること

のここまでを出発の1ヶ月前までに終えられるような時間感覚でいたほうがいいですよ,と言っておきます.

ハゲタカ出版社チェックはしておきましょう

ハゲタカ出版社

金を出してくれたら,論文誌に掲載してやるよという出版社. 論文誌や国際会議に優劣を付けてはいけないという善意に漬け込んだ悪い商売をしているようで, 何も知らない人からみたら,論文誌1件は1件なのだ. 研究者界隈から見たら,嘲笑の的ではあるのだが.

どうやってチェックするか

現在はここでチェックするのが一番.2011年くらいからリストを更新し続けている.

beallslist.weebly.com

少しサンプルを見てみる

WASET (リンクは貼らない)

有名なハゲタカ出版社のWASETです. 見てください,この分野の網羅率. ありとあらゆる国際会議を開催(笑)しています. 分野を絞ってしまっては,稼ぎが落ちてしまうことからこうせざるを得ないのでしょう. 見るからに怪しい... f:id:Accent:20180522125728p:plain

iaster (リンクは貼らない)

これもまたすごいです.分野という分野を網羅しているのではないでしょうか. それになんだか古めかしいUIも香ばしいですね.どんな分野でもOK,みたいなのは怪しいですね. しかし,ここは Impact Factor(IF)が4.0を超えた雑誌として掲載されています. IFが偽装されたらそれこそ何が悪いのか決めようがないです. f:id:Accent:20180522134452p:plain

試しにwaset 賞 -wasteで検索してみる

-wasteは検索の都合上の問題で,Googleがスペルミスかな?と気を利かせてくれていたので.

学生の頃から情報系で論文誌3ヶ月に1本とかやってのけていた人. WASETは箔付けに駆け込み的に通したんじゃないでしょうかね. 服部 峻(室蘭工業大学)

国際会議をWASETで稼ぐ. 藤田 素弘 - 研究者 - researchmap

WASETで座長とか色々と ICCSP 2011 in Phuket

科研費の成果としてWASET https://kaken.nii.ac.jp/file/KAKENHI-PROJECT-23593135/23593135seika.pdf

自信満々のWASET http://home.hiroshima-u.ac.jp/aerosol/event.html

かっこいい www.yamanashi.ac.jp

WASETの賞も1件に数えられるんだよな

https://www.hosei.ac.jp/documents/gaiyo/johokokai/kyoiku/kenkyu/2_97.pdf

福岡工業大学|研究者情報|

文献を列挙しているところにWASETがあったら拾ってきたが,他に挙げた文献がハゲタカ出版かは確認していない.

科学をダメにするハゲタカ出版社

件数稼ぎが,常勤職を手に入れるためにあまりにも必要になってしまった今,不当に稼いだ方が 真剣にやって研究成果が少ないよりもバカを見ない....のか?

ちゃんと研究やってきた人が報われない世界になるのだけは避けなければいけないでしょう.

学生でもハゲタカ出版社に出して賞もらった方が,奨学金免除になりやすい,なんてなったらもうお終いです. ただでさえ,情処全国大会とかEIC全国大会は賞のバラマキだというのに.

pythonのzipの扱いは注意

事象

例えば, 下のようなプログラムがあったとしよう. ここで期待されるのは, i, jが標準出力されることである.

for i, j in zip(list_A, list_B):
    print(i, j)

しかし, なぜかi, jの中身がprintされない...なぜだ...となった.

原因

zipは短い方のリストに合わせてしまうため, 片方が空リスト[]だと, forが初手でループを終えてしまい, for以下が実行されない.

for i, j in zip(list_A, []):
    print(i, j)

こうなってしまっているとき, zipはlist_Aがどれだけ長かろうが空リストの数しかイテレーションをしない. つまり, forが回らない.

空リストを渡さなければ良いわけだが, 空リストを与える可能性は少なからず存在し, 例えば境界条件を与えるときとかの挙動を見るときなど. こういうときに見落としがちになる.

対策

  1. lenによる判定を追加する
  2. from itertools import zip_longest を使う

len によるリストの長さ判定

これは言わずもがなである. 空じゃなければ, for文を回せば良い.

itertoolsのzip_longest を使う

ただのzip は, 短い方に合わせてしまう

A = [1, 2, 3, 4, 5]
B = [6, 7, 8]
zip(A, B) --> zip([1, 2, 3], [6, 7, 8]) 短いリストBの長さ3に合わせてしまう ※書き方は正しくないけれど,こういうこと

しかし, zip_longestは, 長い方のリストに合わせ, 足りない分はNone で埋めてくれる.

pycharmでGit Pushができなくなってしまったら, 設定を見直す

pycharmでGitを使ったPushができなくなってしまう現象

バージョンを上げたあたりから, GitでPushやPull等, リモートを通信する機能が すべて使えなくなってしまった.

解決するには設定を見直す

Gitの設定で, SSH executableNative から Built-in に変える. f:id:Accent:20180515085507p:plain

pycharm のNativeでは鍵の置き場とか何も指定していないので認証エラーがでてしまうのでしょう.

matplotlibで目盛りと目盛線を消す方法

目盛りを消す -> 表示させない

位置指定ができる

(略)

plt.tick_params(labelbottom=False, labelleft=False, labelright=False, labeltop=False)

目盛線を消す

(略)
plt.tick_params(color='white')

これは白にしたら見えないだろ,という戦法.本筋ではないが.

Kerasでモデルのロードがしくってしまったら

エラー文

ValueError: Optimizer weight shape (1024,) not compatible with provided weight shape (165, 1024)

(1024とかは埋め込み適当な数字なのであしからず.)

モデルを読み込むときにエラーが出てしまう.... model.load()でエラーが出る.... といったところ.

モデルの再利用ができないと先に進めないこともあるので困ってしまう.

解決

Can't load_model with error “Optimizer weight shape (256, 32) not compatible with provided weight shape (4,)” · Issue #4044 · fchollet/keras · GitHub

Saving multi-branch model : Unable to create group (Name already exists) · Issue #3974 · fchollet/keras · GitHub

load_model fails to load optimizer · Issue #3964 · fchollet/keras · GitHub

ソースは↑.的外れな解決法があったりするので注意が必要だが,概ねバージョンの問題. 要するに pip install -U Keras で解決してしまう.

Kerasのバージョンが違う場合に読み込みエラーが出るのかと思っていたら,そうでもないようだ.現状版 2.0.8では解決されている.自身のKerasバージョンをチェックすべし.

pip freeze or conda list 等で調べてみよう. 2.0.02.0.2のあたりだったら最新版にアップデートしないとダメ.

mongodb で空のドキュメントを含むレコードを見つけるクエリ

MongoDB v3.4.5であるキーの中身が空のリストになっているレコードを見つけたい

{ _id: xxxxxxx,
  Nakami: [1,2,3],
}

{ _id: xxxxxx1,
  Nakami: []
}

こういった具合。ちなみにNakamiにはindexをふっていない前提。

さていくつか方法があるのでみていきたい。 実行時間が速い順に並んでいる。

TEMP.find( { Nakami: { $size: 0} } )
TEMP.find( { Nakami: []} )
TEM.find( { $where : "thie.Nakami.length == 0" } )

最後の $whereを使うのはだいぶ効率が悪い。今は $sizeを使うのがいいだろう。

参考ページ

mongodb - Query for documents where array size is greater than 1 - Stack Overflow

Find MongoDB records where array field is not empty (using Mongoose) - Stack Overflow