Bag of ML Words

ML = Machine Learning, Music Love, and Miscellaneous things in daily Livings

Zoteroの使い方(我流、逐次更新)

Mendeley+DropBoxで運用していたんですが、PC移行のときから調子が悪くなったのでずっと乗り換えたいと思っていました。

 

で、Twitterで相談したら、"Zoteroいいよ"ということなので、早速導入始めています。

自分の導入過程のメモ書きも兼ねているので、逐次更新です

 

Zotero?

Opensourceの文献管理ソフトウェア?ぽい

https://www.zotero.org/

 

 

導入にあたって、以下の記事を参照しています~

 

humosy.hatenablog.com

 

目標要件

クラウドストレージにPDF本体を大量に保存

zoteroのサーバには文献DB情報のみを格納させる

クラウドストレージのパスを適切に参照させることで、将来的にPCを移行しても苦労しないですむようにする

当然Overleafとかようのbibは必要

 

インストール

まずは何も考えずに公式サイトからstand aloneのバイナリをダウンロードして展開。何も問題なくインストールされる。あ、いきなり日本語でした。素晴らしい

 

f:id:Dr_KayAi:20200209233812p:plain

 

Zotfile

Zotfileってのは上記3リンクいずれもおすすめしているので導入する。

指摘したディレクトリ構造を維持するように、文献アイテムに添付したPDFをrenameしてmvしてmkdirしてくれる。

 

https://ohdachi.github.io/ohdachi_lab/researches/2018/02/02/zotero_zotfile.html

にあったように、zotfile preferenceの"Use subfolder defined by"に/%w/%yと書いた。これで雑誌-発行年というディレクトリになるはず・・・ならなかった。あー、これマックだ。Windowsの場合は\%w\%yと書く。

 

嫌な感じのディレクトリでも、設定を変えて再度renameすると勝手にPDFを移動してくれる。つまり、この機能を使うと、取得したPDFを適切なディレクトリ(私の場合はGoogle drive)に移動して名前を変える手間がなくなる、ということかな?

  • 書誌情報をzoteroに登録
  • PDFを落としてきて、添付ファイルとしてリンク。落とす場所はどこでも良い。
  • すかさず右クリックでzotfile rename

下記のchrome extensionを使うともっと楽になるのかも?

 

あーちょっとがっかりポイント

 

文献管理とノート整理に Zotero が最適だった - 博士以前

にあるように、論文/Projectごとにサブフォルダ(コレクション、と呼ばれる)を切って、それぞれにPDFを登録するようにしたい。この場合、zotfileのsubfolder設定は\%cとなる

 

ただ、一つの論文が複数のProjectに入る可能性が十分あるので、一つの文献アイテムと対応するリンクが複数のコレクションに入ってほしいんだけど、それは無理っぽいな?

一つのPDFは一つのサブフォルダにしか置けない。

 

f:id:Dr_KayAi:20200209233809p:plain

 

ただ、文献アイテムを複数のサブフォルダに登録することは問題ないようだ。

zoteroが正しく機能していれば、PDFのありか自体は気にしない(直接探しに行かない)のが正しい運用っぽい。

ふむー。そうすると/%cとかするよりは年数とかで分けたほうがいいような

 

ガッカリポイント2

あと、名前決めるときにjournal名はみてくれるけどproceedingはみてくれないのか?設定でなんとかできないのかなーICMLとか出てくれないと困る。

とりあえず、文献アイテム登録時にpublisherにICMLとかの会議略称書いてしまえば運用できるけど、それって嘘bibtexの元だなぁ・・・

ちゃんと設定できたよ!

zotfile preferences --> renameing rulesにPDFのファイル名自体のrename規則を指定するところがある。

 

{%a_}{%y_}{%j_}{%t}

 

とすると、第一著者_発行年_書誌名(proceedingsもOK)_タイトル.pdf

としてくれる。最高か!

 

ただ、proceedingsの会議略称名はつけられないぽい。

あと、ディレクトリ名には会議名がでてこないのかな・・・昨夜出てきた気がするんだけど、なんだったんだ・・

ここが解決出来れ場完璧なので、できれば自分でrename jsonをいじりたいんだけど、いじり方が分からない(JSONファイルにアクセスできない)

 

ディレクトリに振り分ける際に、%jを使ったら、会議名しっかりそろえる機運になるかもしれないな?

 

Chrome addon

Zoteroをインストールしたら、勝手にaddonのインストールをお勧めされたのでインストールした。

 

早速つかってみました。

試しにICLRのOpenReviewで、アドオンボタンをポチっとしてみる。

 

f:id:Dr_KayAi:20200210133214p:plain

 

 おお。。。リンクされてるPDFまで一緒に保存されたぞ

 

f:id:Dr_KayAi:20200210133400p:plain

 

 

このあとrenameすれば保存用google driveに整理されて保存されるっつう寸法!

すごい・・・

 

Better Bbitext

文献管理ソフト Zotero ~ 設定編~ - humosy’s blog

これは必要そうなので導入

 

ToDo

chrome addon つかう

Overleafとの連携; https://libanswers.caltech.edu/faq/204206

 

 

今更だけど、chaier trainer + optunaで探索枝かりするとき

chainer.org

 

こんなのが出た直後でなんですが、OPTUNAは今後も開発継続されます

 

で、まあchainerはわかりやすいしdocもかなり充実してるので、メンテナンスモードはいってもしばらくは使われると思います。

 

そこで、chainer + optuna prunerの使い方。

 

optuna.readthedocs.io

 

生コードの実例だと、trainerじゃなくてちょくせつepoch回して、pruningの基準となる量をtrialに報告してるけど、まあtrainer使うよね・・・

そのときどーすんの?とおもったけど、

Integration moduleを使えばよいっぽい。

 

optuna.readthedocs.io

ばっどのうはう:np array(とくに三次元以上の多次元配列)のリスト、これをnp.arrayしても通らないときは、swapaxesしてみると通ることがある

完全にバッドノウハウだけど現象としてはわかっている。

n=1,2,3,...N個の多次元np arrayがリストになっていて、
n番目の多次元配列の次元がD x l_n x l_nである。
つまりどのn番目のnp.arrayも最初の次元のサイズはDで一定で、二次元目三次元目がn依存のサイズ。

このlistをnp.arrayやnp.anyarrayなどでまるっとarray化しようとするとコケる。

原因は、第一次元がDでそろっていて、へんなスライスの類推がはたらくため。

対策は、swapaxesで一次元目と他の次元を入れ換える。これでいける。
array化したあと、あらためてswapaxesで次元の順番を戻せばよろしい。

Dockerつくったらscreenが動かないとき

screenすると、

/var/run/screen のパーミッションが悪いといわれる。

 

そういうときは、SCREENDIRを作るといいよ。

 

こんなのを.bashrcや.zshrcに書いておくか同等の作業を実施する

 

###
# safety for screen
###
if [ ! -d /home/me/.screen ]; then
mkdir /home/me/.screen
chmod 700 /home/ime/.screen
fi
export SCREENDIR=/home/me/.screen
 

 

Dockerfileの中でファイルやディレクトリ作るとownerがroot:rootになっちゃうのが嫌な時・・・

COPYコマンド(ADDよりはCOPYのほうがいいらしい)でchownオプションがつけられるよ!

 

COPY --chown=[user name]:[user name] from_dir_path_in_local to_dir_path_in_container