edic2convを使った後、例文を削って自分用のankiフォーマットに編集するスクリプトをpythonで書いた

この記事を見るような方ならば、きっと以下のサイトを目にしていることだろう。

kanzenmap.nomaki.jp

rubyu.hatenablog.com

E-DICをcsv形式で出力してくれるツールが提供されており、大変ありがたい。

ただ、出力されたcsvファイルをankiにそのまま流し込んだものは、個人的には学習しづらかった。

そこで、自分用に編集した話を書き残しておく。

以降では『英和イディオム完全対訳辞典』の編集について書く。『動詞を使いこなすための英和活用辞典』も編集したのだがスクリプトの内容はほぼ同じであるため、記事にはしない。

編集方針を立てる

edic2convを使用すると

  • 英和イディオム完全対訳辞典 語義
  • 英和イディオム完全対訳辞典 対訳(英和)
  • 英和イディオム完全対訳辞典 対訳(和英)

の3種類のcsvファイルが出力される。

出力すればわかるが、「対訳」の例えば英和のファイルの内容は次のようになっている。

  • 1列目(ankiカードの表に対応):英語の例文
  • 2列目(ankiカードの裏に対応):その訳

f:id:armik:20191007112834p:plain
英和イディオム完全対訳辞典 対訳(英和)

和英は1列目と2列目が逆転したものになっている。

見ての通り見出しがないため、このままankiに流し込んでは覚えにくいと思った。いきなり例文だけが表に現れることになるためだ。

見出しを追加しても良いのだが、例文からそれにに対応する見出しを選び出すのは(少なくとも私の技術力では)難しい。

一方、見出しがあるのは「語義」の方だ。「語義」のファイルの内容は次のようになっている。

  • 1列目:見出し
  • 2列目:見出し+意味+例文①+例文①の訳+例文②+例文②の訳+...

f:id:armik:20191007112841p:plain
英和イディオム完全対訳辞典 語義

こちらは1列目に例文がなく、2列目にまとまっているのだが、このままankiに流し込むと見出しだけで覚えることになり、効率が悪い。

また、一つの見出しにつき例文が複数ある場合がある*1

さらに、一つの見出しに意味が複数ある場合もある。

  • 1列目:見出し
  • 2列目:見出し+意味1+例文1-①+例文1-①の訳+...+意味2+例文2-①+例文2-①の訳+...

複数の意味がある場合、それぞれに用意された例文の数も見出しによって異なるため、判別が難しい。そこで今回はスキップすることにした。

私の理想は次のような形だ。

  • 1列目:見出し+例文①
  • 2列目:意味+例文①の訳

つまり、表には見出し+例文を置き、裏に意味+例文の訳があるのが望ましい。

例文②以降を削ることになってしまうが、仕方ない。

「語義」から私の理想に近づけていくには、2つの手順を踏めばよい。

  • 2列目の見出しの削除
  • 2列目の例文①を1列目に移動する

手でやるのは地獄なので、テキストエディタpythonを使って編集していく。

2列目の見出しの削除

これはさほど難しくはない。csvファイルを適当なテキストエディタ(サクラエディタvscodeなど)で開き、正規表現を用いた置換で

  • 置換前:,".*?<br><br>
  • 置換後:,"

とした。csvファイルがカンマ区切りであること、意味の前にbrタグが現れていることを利用している。

2列目の例文①を1列目に移動する

これが厄介だった。テキストエディタの置換でできる範囲を超えている。

結論から書くと、上に書いた置換を施したcsvファイルに対して次のpythonスクリプトを実行した。

import csv
import re
import pprint
with open('idiom/idiom2.csv', encoding='utf-8') as f:
    reader = csv.reader(f)
    l = [row for row in reader]
idiom_regex = re.compile(r'¶.*?(')
Jap_regex = re.compile(r'[\.\"\!\?](.*?)')
Men_regex = re.compile(r'「.*?」.*?¶|[①②③④⑤⑥⑦⑧⑨⑩].*?¶')
Pl_regex = re.compile(r'[①②③④⑤⑥⑦⑧⑨⑩].*?¶')
num = 0
for row in range(len(l)):
    mo = idiom_regex.findall(l[row][1])
    mo_jap = Jap_regex.findall(l[row][1])
    mo_men = Men_regex.findall(l[row][1])
    mo2 = Pl_regex.search(l[row][1])

    if len(mo) > 0 and len(mo_jap) > 0 and len(mo_men) > 0 and mo2 is None:        
        l[row][0] = l[row][0] + '<br>' + mo[0].replace('¶', '').replace('(', '')
        l[row][1] = mo_men[0].replace('¶', '') + '<br>' + mo_jap[0].replace('.', '').replace('¶', '')
        
with open('idiom/idiom_modified.csv', 'w', encoding='utf-8') as f2:
    writer = csv.writer(f2)
    writer.writerows(l)

冗長だが最低限はできているかと思う。

4行目と21行目で入出力ファイル名を指定している。

7~10行目でそれぞれ例文、例文の訳、意味、意味が複数ある場合の判定を取得するための正規表現を指定している。

18・19行目で取得した内容をcsvファイルに配置している。

最後に

ざっと見た限りは思うようにできたと思う。python便利。

見出しは全部で17547個あるが、手で移動しなければならない項目(一つの見出しに意味が複数あるもの)は2376個まで減らすことができた。

残りの2376個も自動化したいところ。

E-DIC 英和|和英 (イーディック) 第2版 (<CDーROM>(Win版))

E-DIC 英和|和英 (イーディック) 第2版 ((Win版))

全ての元凶。

python全般、正規表現によるマッチングについて書かれた本。csvファイルの扱いにも触れている。

rs.luminousspice.com

編集後のインポートの方法はこちら。

*1:これが例文から見出しを出力するのが難しい原因

DAMの採点で90点を超えるまでの道筋

f:id:armik:20190626110850p:plain:w300
藤井フミヤのTRUE LOVE

カラオケについては既に書き尽くされている感じがあるが、せっかく90点を超えたので書いておく。

本格的に練習し始めて*1から約10ヶ月での達成となった。

自分の音程にあった曲を選び、抑揚をつけるようにして練習すればもっと早く達成できると思う。

10ヶ月の間にやったことを羅列していく。

あくまで私のケースなので、参考程度にしてほしい。私は独学でやってしまったが、無理に独学で進めるよりは、プロの指導を仰いだ方がよいこともあるだろう。

前準備

本を読むこと
Youtubeを見ても良かったのだが、何を信用すればよいのか分からなかったためまずは本を読んだ。

発声練習関連の本にはCD付きのものとなしのものがある。

自分の発声が合っているかを判断するため、CD付きのほうを選んだ。

CD付きのものにも、ただモデルの音声が流れるだけのものと、練習の目的や注意点についての説明が入っているものがある。

つまり、本を見ながら練習するものと、音声のみである程度完結しているものとがある*2

本を見ながら練習するのは面倒なため、音声のみで完結しているものにした。

本は購入せず、図書館で借りた。

スピーカー・スマホのアプリ

風呂の中で練習したかったため防水のものを買った。

Bluetoothで接続でき、湯船にも浮く。

また、自分の発声を録音すればフィードバックしやすい。

細かくチューニングしたければ

play.google.com

Vocal Pitch Monitor

Vocal Pitch Monitor

  • Tadao Yamaoka
  • Music
  • $0.99

などのアプリがある。

声を出す(1ヶ月目)

言葉と声の磨き方

言葉と声の磨き方

歌う前に、まずは声の出し方について頭に入れた。

  • 胸式呼吸の声と腹式呼吸の声の違い
  • チェストボイス・ミドルボイス・ヘッドボイスの違い

について示してくれるのが上の本である。活舌の改善方法も扱っている。

1日1周を1週間ほど繰り返すと、今出している声が腹式呼吸なのか胸式呼吸の声なのかがわかるようになってきた。

練習を続けると、チェストボイス・ミドルボイス・ヘッドボイスの違いもつかめるようになり、狙ったものを出せるようになった。

歌い始める(2ヶ月目~3ヶ月目)

発声方法をある程度身につけ、こちらに移った。

発声と歌の違いは、チェストボイス・ミドルボイス・ヘッドボイスのそれぞれを混ぜつつ、瞬間的に切り替えるかどうかだ。

会話では切り替える必要はないが、歌の場合は単語単位で切り替わるため難しい。

特に難しいと感じたのは喚声点と呼ばれる、裏声と表声の中間の高さの声だった。

音程を上げていく(3ヶ月目~現在)

私の場合、喚声点は大きく2つある。1つはチェストボイスからミドルボイスに切り替わるmid2E付近で、もう1つはミドルボイスからヘッドボイスに切り替わるmid2G#付近だ。

1つ目の喚声点はリップロールで、2つ目の喚声点はストロートレーニングで多少はマシになった。

リップロールやストロートレーニングについてはこちら


3種の声を混ぜる、いわゆるミックスボイスを重点的に扱っている本が次の2冊だ。

3オクターブは当たり前! 喉に優しい魅惑のハイトーンボイス養成メソッド

3オクターブは当たり前! 喉に優しい魅惑のハイトーンボイス養成メソッド

これらの本のトレーニングをリップロールやストローでこなしてから発声すると比較的楽に出せるのには驚いた。

リップロールやストローでなぜ声を出しやすくなるのかがわからないが、胸式呼吸だったり、喉を締めすぎているとうまくできないため、これらを防ぐ効果があるのかな、と感じた。

ミックスボイスの練習は今でも続けている。

さらに音程を上げていく(5ヶ月目~7ヶ月目)

改訂版 プログラムCDつき 奇跡のハイトーンボイストレーニングBOOK

改訂版 プログラムCDつき 奇跡のハイトーンボイストレーニングBOOK

発声の切り替えが上達してきたら、こちらの本でさらに音域を広げていった。

私の場合、この本に取り組む前に「奇跡のボイストレーニング」をやっていた状態だったため、「ハイトーン」のレベルAとレベルBは難なくこなせた。

レベルBをこなせれば、カラオケの目安とされるhiAをミックスボイス気味に出せるようになっている。

レベルCとDは高いので、飛ばした。

また、ハイトーンよりもミックスボイスの方が苦手だと感じたため、途中で切り上げた。

ビブラートをかける(6ヶ月目~現在)

腹式呼吸ができるだけでもかなり歌えるようになるのだが、ビブラートをかけられるとさらにそれっぽくなる。

ビブラートについてはYoutubeだけで済ませてしまった。

いろいろやり方があるらしいが、個人的には音程を揺らす方法が感覚をつかみやすかった。

横隔膜を揺らす方法は難しい。まずは音程を揺らすことを覚えれば、横隔膜も自然と揺れてくる。

カラオケで練習する(1ヶ月目~現在)

発声練習だけではモチベが続かないので、2週に1回カラオケに行った。

あまり音域や得点を意識せず、歌いたい曲を入れていた。

記事の初めにも書いたが、高得点を手っ取り早く取りたいなら、歌いたい曲よりも自分の音域に合わせた曲を歌うのが良いと思う。

DAMとものアカウントを作れば、得点の記録が残る上、高得点者の録音を聞けるため参考になる。

もちろん原曲が一番のお手本ではあるが、原曲にはない音程やリズムの変化があるため注意する。

また、スマホで録音するとどこが下手かが一発でわかる。

終わりに

ものごころついた時には私は話せるようになっていたため、今まで自分の発声について意識したことはなかったが、それを見つめ直す機会になった。

練習しているうちに感じたのは、発声にしても歌にしても、体を動かす行為ということだった。

その意味では自転車や筋トレに近い。ある程度練習しなければならないし、一度コツをつかむとコツをつかむ前には戻れなくなる。

また、連続して使うと喉には疲労がたまる。2, 3日連続で練習した後は最低1日の休みを挟むと、より声が出やすくなる。

ストレス解消になる上、1時間歌っても600円程度とリーズナブルだ。

藤井フミヤは点を取りやすいため、次は89点台で伸び悩んでいるMr.Childrenで90点を狙いたい。

*1:週5の自宅での練習と2週に1回のヒトカラ。それまでカラオケには年に数回しか行っていなかった

*2:もちろん、本にはさらに詳しい情報が載っている

懸垂ができない人間ができないなりにスパルタンレースのモンキーバーとマルチリグの攻略法を考える

スパルタンレースの障害物の中で特に難しいと感じるのはモンキーバーとマルチリグである。

これまでに2回スパルタンレースに参加したことがあるのだが、他の障害物は気合でなんとかなっても、この2つは手も足も出なかった。

というわけで、来る7/6の大会に向けて、モンキーバーとマルチリグの攻略方法について考える。

断っておくと、これから書く方法で攻略できたわけではない。おそらくこれで攻略できる(少なくとも改善はする)と考えたため、それに従ってトレーニングをしていくつもりだという決意表明である。

目次

結論

  • 攻略に必要なのは腕力というよりも握力(もちろん腕力があるに越したことはない)
  • 握力は体重の半分程度を30秒~1分出力し続ける必要がある
  • 手袋の助けを借りるとよい

タイトルにもあるように、私はこの記事を書いている段階では懸垂ができない。

ただ、懸垂ができないからといって全く歯が立たないということはないだろう、というのがこの記事の趣旨である。

もちろん懸垂ができれば余裕をもってクリアできるようになるとは思うが、エンジョイ勢としてはなかなか難しいものがある。

スパルタンレースとは?

スパルタンレースはアメリカ発祥の本格的な障害物レースである。

日本でも年に数回開催されている。

www.youtube.com

spartanracejapan.info

階級が複数あり、比較的容易なSPRINTは約5kmのコースに障害物が20個、上級者向けのSUPERは約13kmのコースに障害物が25個ほど配置されている。

障害物をクリアしつつ、ゴールまでのタイムを競う。

モンキーバーとマルチリグは障害物の1種である。

モンキーバー・マルチリグはどんな種目?

動画を見てほしい。要は雲梯であり、使う体の部位や動きは似ている。

www.youtube.com

www.youtube.com

使うのは基本的に手と腕である。まずぶら下がること、そしてその状態から次のバーやリングに移動することを繰り返していく。

ぶら下がる・次のバーに移動するとはどういうこと?

まず、「ぶら下がっている」という状態について考えてみる。

f:id:armik:20190329170027p:plain
摩擦力と重力の綱引き

あまりに当たり前すぎて言うのもはばかられるが、「ぶら下がっている」ということは手と棒の間の摩擦力と重力が釣り合っているということだ。

摩擦力が重力より小さければ下に落ちる。

摩擦力は接触面に垂直な方向の力と摩擦係数の積で表される*1

f = \mu N

垂直方向の力は握力である。ぶら下がるために必要なのは握力であり、腕力ではない*2

摩擦係数は現時点ではなんともいえない。ただ、1より大きければぶら下がるために必要な握力は体重以下となり、1より小さければ体重以上の握力が必要になりそうだということはわかる。

さらに、バーからバーへ移り変わる際には瞬間的に片手だけで全体重を支えることになる。

どのくらいの力が必要?

移動ではなくぶら下がる状態を考えると、使うのは両手であるため、それぞれが体重の半分を支えればよい。

また、人の皮膚の摩擦係数は1.0~2.5程度であるらしい*3*4。バーの状態にもよるが、話を単純にするために摩擦係数は1とする。

すると、握力は体重の半分は出せなければぶら下がることすらできない。

動画を見ると、スムーズに進んだ場合でも移動には30秒~1分程度かかる。最低でも体重の半分の握力をこの時間出し続ける必要がある。

さらに、次のバーへ移る際には片手だけが棒に触れるため、一瞬だけでも全体重の分の握力を出せることが望ましい。

摩擦係数を上げればより少ない握力でよさそうである。これについては後述する。

レーニン
成人男性であれば、体重が100kg超というような人でもない限り、体重の半分の握力を出せない人は少ないだろう*5

仮に出せなかったとしても、ハンドグリップを使えば数週間で出せるようになるはずだ。ドンキやAmazonで売っている。

(少なくとも私にとって)問題となるのは持久力のほうだ。

これを解決するため、ひとまず何も持たずに手を握って1秒キープし、手を開く、というトレーニングを1セット50回、1日3セットすることにした。

これは毎日やっている。

次に、ぶら下がるトレーニングをする。

近所に自分の身長より高い鉄棒があればそれでよいし、なければブランコを薦める。

ぶら下がった状態で30秒キープする。初めはできないため、10秒からはじめて時間を延ばしていく。これを3セットやる。

できれば、ぶら下がった状態で片手を離す。また、ぶら下がった状態で前後に体を揺らしてみる。

ぶら下がれただけではクリアは遠い。次のバーからバーへと移るという動きは実際にやらなければ身につかない。

Googleで「地名 雲梯」と検索したところ雲梯がある公園が出てきたため、そこで練習することにした。

また、攻略動画では移動の際に腕が伸び切っておらず、腕が曲がっていることがわかる。これは腕や肩の筋肉で体を支えていることを意味している。

私は懸垂ができないため、攻略動画のような動きは到底できないが、一応腕力も鍛えることにした。

いわゆるインバーテッドロウだ。

bukiya.net

公園でのトレーニングは週2~3回程度やっている。

雲梯はモンキーバー対策にはなっても、マルチリグの対策になるとは限らない。

ただ、マルチリグの練習ができるところは身の回りにはないため、今回はトレーニングしない。

摩擦係数を変える ~道具による補助~

スパルタンレースでは泥の中をほふく前進したり、泥まみれのジャングルジムのようなものを登ったりするため、グローブがあると楽になる。

モンキーバーやマルチリグでも、棒が冷たかったり汚れているとやりにくいため、手袋をつけて取り組むことになるだろう。

したがって、考えるべきはヒトの皮膚ではなくグローブの摩擦係数ということになる。

安価なものとして軍手が考えられる。実際、私は前回のレースで軍手を着用した。

ただ、軍手は摩擦係数が小さく、素手よりもすべりやすい。

代案として作業用のゴム手袋がある。ダイソーやワークマンで売っている。

item.rakuten.co.jp

天然ゴムの摩擦係数は1以上らしい。私はダイソーのものを使っているが、確かに素手と変わらないかそれ以上に楽にぶら下がれる。

www.toishi.info

さらに、摩擦係数を1.2とすれば、必要となる握力の最大値は体重70kgの場合、約58.3kgとなる。

まとめ

手袋は安いので、適当に買って試してみると良いと思う。

*1:もちろんこれは点接触の場合の話であり、面で接触する場合は一概に言えない

*2:腕が曲がった状態なら話は別

*3:嶋田明広, 韓鉉庸, & 川村貞夫. (1996). 人間の手指の摩擦特性の解析. 計測自動制御学会論文集, 32(12), 1581-1587.

*4:鈴木健太, 渡邉鉄也, & 田中基八郎. (2008). 指先の摩擦モデルに関する研究. 日本機械学会論文集 C 編, 74(746), 2549-2554.

*5:100kg超の人はまず痩せる方が先かもしれない