めちゃくちゃ大変だった。
成果物
ファイル | 行数 | 「読み」 | 「表記」 |
---|---|---|---|
m.tsv | 82732 | 男のみ | 男のみ |
f.tsv | 76890 | 女のみ | 女のみ |
c.tsv | 4518 | 男女共通 | 男女共通 |
mc.tsv | 2072 | 男のみ | 男女共通 |
fc.tsv | 2437 | 女のみ | 男女共通 |
cm.tsv | 14151 | 男女共通 | 男のみ |
cf.tsv | 16504 | 男女共通 | 女のみ |
合計3618361
バイト。約3.5MB。
概要
日本人の名前TSVファイルを作る。(名字を除いたファーストネームのみ)
作業概要
- ネットで名前を検索する
- ブラウザから名前の「読み」と「表記」をコピペする
- TSV形式に整形する
要件
- 性別で絞込したい。たとえば男なら「太郎、大蔵、...」、女なら「花子、陽子、...」など
- 世代で絞込したい。古(太郎, 花子)、新(月, 亞里亞, )、間(その他)の3世代
- 古:
太郎
など昔からあったもの。名前から性別が判明するもの。 - 新: 特殊な読み。英語の読み。当て字。
- 間: 上記以外のすべて
- 古:
- Shellで実装したい
Shellは動作が遅い。よって高速化の工夫として、予め集計済みTSVファイルを作成することにした。
課題
- TSVの集計を1対多にする(高速化のため。行数を減らしてループ数を減らす)
- 世代による絞込が未実装。(今回のTSVファイルを世代ごとに細分化すべき)
所感
TSVファイルを作成するのが超大変で苦痛だった。名字のときよりも。手作業が最悪にキツかった。数日がかりの苦行でしたわ。
Webスクレイピングすべきなのはわかっていたけど、そのコードを書くのも面倒だった。なので小さいスクリプトを書いて一部自動化しただけ。
その後、TSVをスクリプトにより分類するのも大変だった。
完成したスクリプトは、実行完了までに4時間くらいかかるという悪夢。
しかも、まだやりたいことは終わっていない。
まさかこんな大変だとは思わなかった。
対象環境
- Raspbierry pi 4 Model B
- Raspbian buster 10.0 2019-09-26 ※
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux