古い記事
ランダムジャンプ
新しい記事
よくやる作業を簡単に試せるワンライナーとしてメモ。
機械学習ツールの入力フォーマットの業界標準っぽい形にする処理。

cat sample-lf.txt
政治 選挙:1 速報:1 外交:3 防衛:2
政治 選挙:2 予算:1 防衛:2 オスプレイ:2
スポーツ 野球:1 速報:1 スタジアム:3 エネルギー:1
スポーツ 移籍:2 速報:1 日本代表:1 サッカー:2 スタジアム:1
エンタメ 不倫:1 結婚:1 離婚:1
エンタメ 速報:1 離婚:1 ものまね:1 破綻:2
エンタメ 結婚:1 離婚:1 独立:1
科学 感染症:2 環境:2 医療:1 遺伝子:3
科学 エネルギー:1 環境:1 惑星:3 ニュートリノ:1
perl -nle '
BEGIN{$L=$F=1}
($k,@r)=split(/ /,$_);
$l{$k}=$L++if!$l{$k};
print join" ",$l{$k},
sort{$a<=>$b}map{/^(.+):(.+)$/;$f{$1}=$F++if!$f{$1};"$f{$1}:$2"}@r;
' sample-lf.txt
1 1:1 2:1 3:3 4:2
1 1:2 4:2 5:1 6:2
2 2:1 7:1 8:3 9:1
2 2:1 8:1 10:2 11:1 12:2
3 13:1 14:1 15:1
3 2:1 15:1 16:1 17:2
3 14:1 15:1 18:1
4 19:2 20:2 21:1 22:3
4 9:1 20:1 23:3 24:1
 

関連記事

- 単語リストを数値化(ID化)するPerlワンライナー[2014-02-04-3]
(辞書を作る)
この記事に言及しているこのブログ内の記事