とりあえず今日は寝るとして…明日の昼くらいまでに終わってなかったら無圧縮でやり直しにしよう。
OpenBSD(uaa@), Ham(JG1UAA), Ingress(Lv14, RES), Japanese(Sagamihara-city, Kanagawa)
Another side: https://social.tchncs.de/@uaa
npub1rarr265r9f9j6ewp960hcm7cvz9zskc7l2ykwul57e7xa60r8css7uf890
Messages from this Mastodon account can read via mostr.pub with npub1j3un8843rpuk4rvwnd7plaknf2lce58yl6qmpkqrwt3tr5k60vfqxmlq0w
とりあえず今日は寝るとして…明日の昼くらいまでに終わってなかったら無圧縮でやり直しにしよう。
マシンは速ければ速いほどいい
ストレージは多ければ多いほどいい
…思いっきり実感させられます、こういうことしてると。
このアカウントは、notestockで公開設定になっていません。
そもそも何故一般の個人が言語資源の入手だのテキストマイニングの真似事だのをしなければいけないんですかね…?(困惑中
(ただの分かち書きで十分なはずなんだけど、日本語ウェブコーパス2010の作り方では品詞データを付ける(その割には捨ててる)とあるのでそれに倣ったらこうなったんですよ…)
テキストを圧縮しているので小さくはなるんだろうけど、単に単語を分かち書きするんじゃなく品詞データを付けちゃってるので圧縮対象となるデータ量はもりもり増えているのです…
しかもよりによって、mecab -Owakatiではなくmecabで食わせているので元のデータより膨れてるw
xz -0はbzip2よりも速くて小さくなることがあるのでパラメーターが重要
やっぱそうですよねー(うっかりxzしちゃったので一旦止めようかこのまま放置しようか結構悩んでるところ…明日の朝まで放置かなあ)
このアカウントは、notestockで公開設定になっていません。
a8.netをブロックする方法って無いのかなあ。人気ランキングのバナーがデカくてウザい。
【研究】技術的側面からの検索エンジンの考察 ~第1回 テキストマイニングの基本中の基本、形態素解析とBOWとは~ (2018.04.09) https://mieruca-ai.com/ai/research-basics-of-text-mining/ JUMAN→ChaSen→MeCab→(Sen)という流れになってたんですね…
uaa@emeraude:~/nwc-toolkit/build$ time xzcat ~/ja.txt.xz |./nwc-toolkit-unicode-normalizer |./nwc-toolkit-text-filter |mecab | xz -c > ~/ja.mecab.txt.xz
ここから始めようか
頻度1以上 707235917
頻度10以上 56327440
頻度25以上 26442415
頻度50以上 14955969
頻度75以上 10679502
頻度100以上8390195
頻度1000以上 1097868
log(75)=1.875, log(395)=2.597、雑に計算して10倍程度の違いがあるから、頻度もそれくらいの違いで考えれば良いってことかなあ
日本語ウェブコーパス2010で頻度750以上の異なり数が8377628…これを満たす頻度を目指してみれば良いのかな
出現頻度1000で切ってみて、異なり数を数えてみると1097868、日本語ウェブコーパス2010の形態素N-gram(3-gram)だと6395754…1/6くらいのサイズしかないか。CC100-jaが75GB、nwc2010が396GBのテキストでやっているので、入力量に比例していると言っても良いのかも。
ソートは要らないかなあ…?どうせ読みを付加した時に付加するツール側でソートかけてるし。
3-gramだけ取れれば良いからzcat a.gz |awk '$4 {printf("%s %s %s\t%s\n",$1,$2,$3,$4)}'で。
ngram-counterの-sオプションは必須なのかなあ。これ1-gram, 2-gram, 3-gramを全部まとめて出すので後で分離しないといけないんだけど…
1-gram(単語)ではなく3-gramでの出現頻度で判断しているけど、出現頻度の一番大きい数が200617497なので、今作った3-gramではこれがどうなるかを調べることかなあ。
uaa@emeraude:~$ time nwc-toolkit/build/nwc-toolkit-ngram-counter -n 3 -l 24576 ja.txt.1
input: ja.txt.1
sentences: 592537734, tokens: 13797626505 (x23.29) (8105sec)
output: ngms-20230930-031634.0000.gz
real 167m6.627s
user 163m18.095s
sys 0m39.184s
uaa@emeraude:~$
あとはngram-mergerで3-gramの結果を得れば良い訳か。問題は出現頻度の値をどう設定するか、だよなあ。
uaa@emeraude:~$ !1989
time cat ja.txt | ./nwc-toolkit/build/nwc-toolkit-unicode-normalizer |./nwc-toolkit/build/nwc-toolkit-text-filter |mecab -Owakati > ja.txt.1
output: (standard output)
input: (standard input)
output: (standard output)
input: (standard input)
74360361986 / 74359156435 (15614sec)
74359156435 / 70019552893 (15614sec)
real 260m15.239s
user 257m11.925s
sys 17m23.622s
uaa@emeraude:~$