メモです

メモです

Google Colaboratoryでフォルダ内のファイルを一括ダウンロード

※一部修正
ダウンロードしたいフォルダにcdで入って以下のコードを実行する。
サブディレクトリがある場合を考慮してないので注意。

from google.colab import files
import os

file_list = os.listdir(".")

for file in file_list:
    files.download(file)

人狼 JIN-ROH の冒頭

 あの決定的な敗戦から十数年。

 占領軍統治下の混迷からようやく抜け出し、国際社会への復帰を図るべく高度経済成長の名の下に強行された急速な経済再編成がその実を結びつつある一方で、この国は多くの病根を抱えていた。

 強引な経済政策が生み出した失業者の群れとその都市流入によるスラム化を温床とした凶悪犯罪の激増。わけても武装闘争を掲げた反政府勢力の急速な台頭はこれに対処すべき自治体警察の能力を超えて深刻な社会不安を醸成していた。

 自衛隊の治安出動を回避し、あわせて国家警察への昇格を目論む自治警内部の動きを索制すべく、政府は第三の道を選択した。首都圏にその活動範囲を限定しつつ、独自の権限と強力な戦力を保有する国家公安委員会直属の実働部隊「首都圏治安警察機構」通称首都警の誕生がそれである。

 迅速な機動力と強大な打撃力によって治安の番人としての栄誉を独占し、第三の武装集団として急速に勢力を拡大した首都警。

 しかし、当面の敵であった反政府勢力が非合法化を含む様々な立法措置によって解体し、離合集散の末にセクトと呼ばれる都市ゲリラを生み出すにおよんで状況は大きく転回することになる。首都警の中核をなす特機隊とセクトの武力衝突は熾烈を極め、時に市街戦の様相を呈することもしばしばであり、激しい世論の指弾を浴びた。経済的繁栄への期待に向けて流れ始めた世相の中、その宿敵であるセクトと共に急速にその孤立を深めつつあった。

 強化服と重火器で武装し「ケルベロス」の俗称と共に武闘路線をひた走り続けた特機隊の精鋭たちもその歴史的使命を終え、時代は彼らに新たなそして最終的な役割を与えようとしていた。

 

 

StripeでNo such tokenが出る。

【状況】

Rails Checkout Guide

をコピペして

Testing

にあるカード番号を入力したらno such tokenってエラーが出る。

【解決策】

テスト用カード番号に対応した専用のトークンがある。気付きにくいがタブで切り替えられる。

例えば「4242424242424242」を入力した場合、専用のトークンである「tok_visa」じゃないとダメだった。

customer = Stripe::Customer.create(
    :email => params[:stripeEmail],
    :source  => params[:stripeToken]
  )

をそのままコピペしてはダメ。

SafariでscrollToのbehavior:smoothが動作しないので代わりに書いた

SafariでscrollToのbehavior:smoothが動作しないのでネットで見つけたサイトを参考にしつつ関数を作った。

横方向にsmoothにスクロールする関数なのであまり使い道はない。
5とか15の数値は適当に決めた。
再帰を使うことで行数が減る。

const scroll_smooth_x = (target) => {
  let now = window.pageXOffset;
  const flag = (target < now) ? 'left' : 'right';
  
  const scrollMe = (now, target, flag) => {
    setTimeout(() => {
    if (target - now > 5) { 
      if (flag === 'left') { 
        now = now - (now - target) / 15; 
      } else if (flag === 'right') {
        now = now + (target - now) / 15;
    }
      window.scrollTo(now, 0);   
      scrollMe(now, target, flag);  
    } else {    
      scrollTo(target, 0);   
    }
    return;}, 5);
  }

  scrollMe(now, target, flag);
}

参考:
ページ内リンクをスマートにするsmoothScroll.js - to-R

bakermatの読み方

英語圏の人は

baker+matでベーカマットって発音しているっぽい。

そして、bakerはベーカーと表記されることが多い。

 

以下、事例。

0:25~

ベーカマット

Bakermat Backstage - YouTube

バーカマットっぽい…

bakermat pronunciation: How to pronounce bakermat in Dutch

TensorFlow Neural Machine Translation (seq2seq) TutorialをWindows10+Cygwin64+PowerShellでやると大変だった

Windows10+Cygwin64+PowerShell

TensorflowのNMTのチュートリアル

GitHub - tensorflow/nmt: TensorFlow Neural Machine Translation Tutorial

をやったらきつかった。

以下、はまったとこのメモ

①「ImportError: attempted relative import with no known parent package」が出る

ImportError: attempted relative import with no known parent packageの解決方法 - Qiita

②tmpフォルダの位置

f:id:tanaka-kiiti:20180524000950p:plain

Cygwincurlをインストール

開発ツール/CygwinにcURLコマンドをインストールする手順 - Windowsと暮らす

インストールしないとdownload_iwslt15.shが実行できない

④mkdirのpath

ルートディレクトリ以外にフォルダを置いていたのではまった。

nmt/scripts/download_iwslt15.sh /tmp/nmt_data

のコマンドが 期待した通りに実行されず、そのままpython -m nmt.nmt (以下略)を走らせると

ValueError: vocab_file '/tmp/nmt_data/vocab.vi' does not exist.

が出る。

原因はmkdirコマンドでオプションの文頭にスラッシュがあると期待した動作をしない。

よってチュートリアルにあるコマンドはそのまま使えない。

 

変更前

nmt/scripts/download_iwslt15.sh /tmp/nmt_data

変更後

nmt/scripts/download_iwslt15.sh tmp/nmt_data

 

変更前

mkdir /tmp/nmt_model
python -m nmt.nmt \
--src=vi --tgt=en \
--vocab_prefix=/tmp/nmt_data/vocab \
--train_prefix=/tmp/nmt_data/train \
--dev_prefix=/tmp/nmt_data/tst2012 \
--test_prefix=/tmp/nmt_data/tst2013 \
--out_dir=/tmp/nmt_model \
--num_train_steps=12000 \
--steps_per_stats=100 \
--num_layers=2 \
--num_units=128 \
--dropout=0.2 \
--metrics=bleu

 

変更後

mkdir tmp/nmt_model -vp

python -m nmt.nmt --src=vi --tgt=en --vocab_prefix=tmp/nmt_data/vocab --train_prefix=tmp/nmt_data/train --dev_prefix=tmp/nmt_data/tst2012 --test_prefix=tmp/nmt_data/tst2013 --out_dir=tmp/nmt_model --num_train_steps=12000 --steps_per_stats=100 --num_layers=2 --num_units=128 --dropout=0.2 --metrics=bleu

 

⑤「UnicodeEncodeError: 'cp932' codec can't encode character~」というエラーが出る。

Windowsの標準出力の問題。CP932については

本当は怖くないCP932 - Qiita

Cygwin文字コード変換方法については

Cygwin 1.7.9 で日本語を使う

使っていた環境ではこれでうまくいかなかったのでPowerShellを使った。

PowerShellでは chcp 65001を叩くだけでUTF-8に切り替わる。

Synthetic and Natural Noise Both Break Neural Machine Translation

Synthetic and Natural Noise Both Break Neural Machine Translation

https://arxiv.org/pdf/1711.02173.pdf

【概要】

トレーニングデータにノイズ(タイプミスとか)を混ぜるとBLEU値がどのような値を示すかを研究。

 

 

ãã¤ãºã¨ãã¦ã®ããã¿ã¹ã®å£åãå¢å ãã

↑ノイズが入るとBLEU値が下がる。

 

åãã¤ãºã¿ã¤ãã®æ§è½

↑ノイズを混入させたときの結果。Syntheticの欄にある4つが人工的に発生させたノイズ。Natは人間が実際にミスした(自然に発生した)文を使っている。charCNN(LSTMベース)、char2char、Nematus(BPEベース)の3つの実装で計測。

  1. Swap:単語内の二つの文字を入れ替える。 
  2. Mid:単語の最初と最後の文字以外をシャッフルする。
  3. Rand:単語の文字を完全にシャッフルする。
  4. Key:隣り合う文字を入れ替える。

※Midは以下のコピペで有名な研究に触発されたアイデア

こんちには みさなん おんげき ですか? わしたは げんき です。

この ぶんょしう は いりぎす の ケブンッリジ だがいく の けゅきんう の けっか

にんんげ は もじ を にしんき する とき その さしいょ と さいご の もさじえ

あいてっれば じばんゅん は めくちちゃゃ でも ちんゃと よめる という けゅきんう に

もづいとて わざと もじの じんばゅん を いかれえて あまりす。

どでうす? ちんゃと よゃちめう でしょ?

ちんゃと よためら はのんう よしろく

 

ãã¤ãºã¨ãã¦ã®ããã¿ã¹ã®å£åãå¢å ãã

↑結果。人工的に発生させたデータでは自然に発生するノイズは克服できない。