とりあえず今日は寝るとして…明日の昼くらいまでに終わってなかったら無圧縮でやり直しにしよう。
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)という流れになってたんですね…
(無圧縮だと4時間くらいで終わったタスクが6時間近く経過しても終わりません…)
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:~$
ジョブを仕掛けて寝ちゃいたいし、無駄にディスクを消費したくないことを考えると…
uaa@emeraude:~$ time cat ja.txt | ./nwc-toolkit/build/nwc-toolkit-unicode-normalizer |./nwc-toolkit/build/nwc-toolkit-text-filter |mecab -Owakati > ja.txt.1
とでもしとこうかね。
nwc-toolkit-text-filterは必須だな。句点までを一文と認識して区切ってくれる。これで正しく<BOS><EOS>として処理ができるようになる。
uaa@emeraude:~$ cat ja.txt | ./nwc-toolkit/build/nwc-toolkit-unicode-normalizer |./nwc-toolkit/build/nwc-toolkit-text-filter > ja.txt.1
こんなんでどうかなー
正規化→文抽出→形態素解析→コーパス作成、の手順で良いんだろうな多分。
処理を行うたびに75GB近いディスクを食っていくんですけど…w
Web を母集団とした超大規模コーパスの設計 (浅原 正幸, 前川 喜久雄, 2013) https://www2.ninjal.ac.jp/past-events/2009_2021/event/specialists/project-meeting/files/JCLWorkshop_no3_papers/JCLWorkshop_No3_27.pdf によると、収集したものを正規化→形態素解析という手順で処理していくとあるので、正規化が先ということで良いみたい。
デョスコード死んだのにまだ誰も「デスコード」って言ってなかったりする?
このアカウントは、notestockで公開設定になっていません。
パナソニック? 贅沢な名前だねえ‥‥ あの時のお前の名前は松下電器産業だ。いいかい、松下電器産業だよ。
@hfp 害はないんでしょうけど、あんまり好きじゃないんですよね影が付くの…まあ諦めますw
このアカウントは、notestockで公開設定になっていません。
そういえばWindows11、デスクトップのアイコン名に影を付けない設定にしているにも関わらず、影が付いてるんですが…これ直らないのかなあ。一旦付ける設定にしてから戻しても変わらないし。
明日のお宝は今日の空腹を満たしちゃくれない、どっかのTRPG関連の本で見た台詞なんですが…まさにそれ。
とはいえ、我々の懐が潤わないことにはやる気も上がりませんよ。鶏と卵の関係かもですけど…活力が欲しいんならそれに見合うもんを「先に」寄越せとは日々思っておりますので。
DSIRNLP06 Nested Pitman-Yor Language Model (2014.10.14) https://www.slideshare.net/uchumik/dsirnlp06-nested-pitmanyor-language-model
「ちなみにNPYLMは特許が取られているため、公開される場合には注意が必要です」と最終ページにある(先のpostにあるmusyokuさんの記事でも同様の記述あり)
教師なし形態素解析とその周辺(持橋大地, 2013/3/27) http://chasen.org/~daiti-m/paper/Robotics-20130327.pdf
ベイズ階層言語モデルによる教師なし形態素解析(NPYLM)(2016/12/14) http://musyoku.github.io/2016/12/14/%E3%83%99%E3%82%A4%E3%82%BA%E9%9A%8E%E5%B1%A4%E8%A8%80%E8%AA%9E%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AB%E3%82%88%E3%82%8B%E6%95%99%E5%B8%AB%E3%81%AA%E3%81%97%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90/
https://github.com/musyoku/python-npylm
<tr1/なんとか>、を<なんとか>に直すのと、error_at_line()はerr()に無理やりまとめるところまではやったんだけど…CMakeが見つけたライブラリのヘッダ(は対応しているが)に加えてライブラリのパスも通さないといけないところで力尽きた…
nwc-toolkit、OpenBSD対応しようかと思ったけどなんかめんどいからLinux専用で放置しとこう。何かしらの環境で動けば良いし。
公式ストアのカウンターにPiZero2Wリリース号が飾られてたんだけど、その号のインタビュー記事私なんですよね……(スーッ……)となった
公式ストアで紙版が買えるのと、PDFは無料でダウンロードできる(寄付も可能)。
異国の雑誌だから格好よく見えてしまう(補正がかかっている)のか、それとも日本のこの手の雑誌があんまし(自粛)なのか…
今日のラズピッピストアの戦利品。トート、マウスパッド、ステッカー、マグネットあたりはおみやげに。デバッグプローブはそのうち買おうと思ってたのでついでに。あとCM4。私は8GB RAM/16G eMMCになったのでこれからあそぶ
test.c:11:2: warning: implicit declaration of function 'errc' is invalid in C99 [-Wimplicit-function-declaration]
NWC_TOOLKIT_ERROR("%s", string);
^
test.c:4:2: note: expanded from macro 'NWC_TOOLKIT_ERROR'
errc(-(__LINE__), errno, "%s:%d: " fmt, __FILE__, __LINE__, ## __VA_ARGS__)
町田某所で見たモバイルCT車から知ったんだけど、東芝メディカルシステムズってキヤノンメディカルシステムズに変わってたんですね…(5年前から)。
Raspberry Pi 5 実機レビュー(外観編) | Japanese Raspberry Pi Users Group
https://www.raspi.jp/2023/09/raspberry-pi-5-interfaces-review/
外見を舐め回すレビュー記事です
error_at_line(-(__LINE__), 4, __FILE__, __LINE__, "%s", string);
errc(-(__LINE__), 4, "%s:%d: " "%s", __FILE__, __LINE__, string);
完全に同じではないけど大体同じ感じになる。
statusは必ず-(__LINE__)なので0以外、であれば…
errc(_(__LINE__), errno, "%s:%d" fmt, __FILE__, __LINE__, ## __VA_ARGS__)
みたいな形に置き換えるのも手かなあ(できるんなら)。
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/error_print_progname.3.html
error_at_line(status, errnum, filename, linenum, format...)
statusが0以外だとexit(status)する。メッセージは標準エラー出力に吐き出す。
<error.h>なんていうLinux方言を使うなああああああああ💢💢💢💢💢💢(BSDユーザの叫び)
40行に満たないCMakeLists.txtを書いて、ビルドできちゃいましたね…下手にautotoolsで苦労するくらいなら、CMakeに置き換えちゃうのも手なのかも。
オッサンに対する敬意は無くても、爺さんには敬意が伴うもんだし。
g++ -Wall -Weffc++ -I../include `pkg-config --cflags icu-i18n` -g -O2 `pkg-config --libs icu-i18n` -o nwc-toolkit-text-extractor nwc-toolkit-text-extractor.o ../lib/libnwc-toolkit.a -llzma -lbz2 -lz
ああ、これダメだ。libnwc-toolkit.aより後にicuをリンクしないと。
C++のことだし、メソッドの引数の型があってないので対応するメソッド呼べないだけっしょ?と雑に考えてるけど果たしてどうかなー…?
undefined reference to `icu_72::UnicodeString::~UnicodeString()'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
この辺の問題を解決できればいいんだとは思うが…
undefined reference to `icu_72::UnicodeString::extract(int, int, char*, unsigned int, char const*) const'
undefined reference to `icu_72::UnicodeString::UnicodeString(char const*, int, char const*)'
undefined reference to `vtable for icu_72::UnicodeString'
undefined reference to `icu_72::Normalizer::normalize(icu_72::UnicodeString const&, UNormalizationMode, int, icu_72::UnicodeString&, UErrorCode&)'
ぎゃあああああああああautoupdateしたらconfigure.acがああああああ><
イマドキのC++の文字列操作って<string>読み込んでstd::stringの話ばっかりだから、String使ったコードを扱う場合にどうすりゃいいか分からないんだもん(昔のC++の本を引っ張り出せと…?)
std::stringじゃなく、String型の話ってのはどこにあるんだろ。
え゛ー、-DU_DISABLE_RENAMING=1でもだめなんか
C++(g++)のエラーメッセージがやたらと長いので解読に困ってる
U_DISABLE_RENAMINGについては特に何もないみいたいではある…かどうかは、icu-configじゃないので分からない。
uaa@emeraude:~/nwc-toolkit$ pkg-config --cflags icu-i18n
uaa@emeraude:~/nwc-toolkit$ pkg-config --cflags icu-io
uaa@emeraude:~/nwc-toolkit$ pkg-config --cflags icu-uc
uaa@emeraude:~/nwc-toolkit$
こいつはどーしたもんかな…
uaa@framboise:/usr/local$ icu-config --cppflags
-DU_DISABLE_RENAMING=1 -I/usr/local/include
uaa@framboise:/usr/local$ pkg-config --cflags icu-i18n
-I/usr/local/include
uaa@framboise:/usr/local$ pkg-config --cflags icu-io
-I/usr/local/include
uaa@framboise:/usr/local$ pkg-config --cflags icu-uc
-I/usr/local/include
uaa@framboise:/usr/local$
Debian上でpkg-configすれば…
uaa@emeraude:~/nwc-toolkit$ pkg-config --libs icu-i18n
-licui18n -licuuc -licudata
uaa@emeraude:~/nwc-toolkit$
uaa@framboise:/usr/local$ icu-config --ldflags
-L/usr/local/lib -licui18n -licuuc -licudata
uaa@framboise:/usr/local$ pkg-config --libs icu-i18n
-L/usr/local/lib -licui18n -licuuc -licudata
uaa@framboise:/usr/local$ pkg-config --libs icu-io
-L/usr/local/lib -licuio -licui18n -licuuc -licudata
uaa@framboise:/usr/local$ pkg-config --libs icu-uc
-L/usr/local/lib -licuuc -licudata
uaa@framboise:/usr/local$
OpenBSD上でこれ。
iconv見つからないんですけど、はiconv無ければ即エラーとするconfigure.acを直せば良いとして…icu探すのにicu-configが無いって問題はちょっと面倒かも。
とりあえずnwc-toolkit-0.0.2のビルドはOpenBSD上での話は置いといて、Linux(Debian)上でやる訳ですが…iconv見つからないんですけどとか言われる問題を直さないといけなくて。
configure:5182: c++ -E conftest.cpp
conftest.cpp:22:10: fatal error: 'unicode/unistr.h' file not found
#include <unicode/unistr.h>
^~~~~~~~~~~~~~~~~~
1 error generated.
CFLAGS/CXXFLAGSは設定しているのに、それを反映せずヘッダ読もうとしてるそちらさんの問題では…?
checking unicode/unistr.h usability... yes
checking unicode/unistr.h presence... no
configure: WARNING: unicode/unistr.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: unicode/unistr.h: proceeding with the compiler's result
checking for unicode/unistr.h... yes
いやいやそんなこと言われてもですね。
ん-、nwc-toolkit-0.0.2、OpenBSD上だとicu4cを見つけられないぬー。ちゃんと/usr/local/includeにヘッダ置いてるのに(まあいつものことでこのディレクトリを見てくれないだけだと思うけど)。
なんつーか、「今更あんたそんな古いもん触ってるの?時代はもっと先よ??」、もしくは「バスはとっくに出ちゃってるけど今更乗り場に来た訳?時刻表ちゃんと見た??」感が凄くてすごく嫌なんだけどね。そう思われるのが嫌というのもちょっとあるけど、むしろ間の悪さっていうのかな…祭りの終わった後にのっそりやって来てその虚しさを味わうというか。
いつもいつも、そんなのばっかりで。
nwc-toolkit、Google Codeへのリンクを張って「使えなさそうで使えません.」というなら…国語研のアレも0.0.2を使っている以上は0.0.2を改修して使うのが筋だろうか。改修ったってエラーが出てビルドできない状態を直すだけですが。 http://www.s-yata.jp/projects/
nwjc2vec:『国語研日本語ウェブコーパス』 に基づく単語の分散表現データ (浅原 正幸, 岡 照晃, 言語処理学会 第23回年次大会 発表論文集, 2017.3)によれば、nwc-toolkit-0.0.2を使っているが「現在公開停止」の注釈がある。
…どういうことだ…
nwc-toolkit、Google Codeでは0.0.2になっているけど https://code.google.com/archive/p/nwc-toolkit/ GitHub上でが0.1.0になっていて https://github.com/xen/nwc-toolkit/commit/2ae8448c16eecc822cf7dfb22abd53ad7ff6ccd8 、ログを見る限りでは作者の手による最新版っぽいものに見えるんだけど… とはいえその作者はGitHub上に居ないか別垢で活動してるかのどっちかといった状態っぽいんだよなあ。
メンテしないことには全く動かせないんだけどそのフィードバック先があるんだか無いんだか分からないしリポジトリも荒らしたくないし、それ以前にどこを作業の起点にすれば良いのやら。
このアカウントは、notestockで公開設定になっていません。
https://store.steampowered.com/app/2478020/Rayz_Arcade_Chronology/ Ray'z Arcade Chronogy…待て待て待て待て、そんなの出たって聞いてないぞ(今は無理だけどいつか買う!)。
ギンガフォースとナツキクロニクルが割引価格で出ていたけど…SHUMP(Shoot 'em ups)フェスの影響なのかなあ。とりあえず積んでみたけど(やれよ>自分)。
そういえばSteamポイントって何に使えるんだろう。よく分からんのでとりあえず貯めとくけど、貯めとくだけで役に立たないっていうのもなんかねー…って。
ラジルギ2(初代ラジルギ収録!) Switch/PS4/PS5だったら何故Steamへ来ないの…? https://www.beep-shop.com/sap/radirgy2/
バテンカイトス/斑鳩はGAMECUBEから他のプラットフォーム(PC)へ来るだろう/とっくに来ているので…あとはラジルギをぜひともお願いしたい。流石に任天堂タイトルのF-ZERO GXは無理だろうけど(それはイマドキの任天堂機でやれば良いって話なんだろうし)。
バテンカイトス、リメイクが出るって知ったのは実は最近で(3月くらいから話出てたみたいですね)Switch版しかないならSwitch版買うかーって思ってはいたんですが…Steam(PC)配信あるなら当然PCでしょ。
やっぱ今後もGMOとは距離を置くのが正解っぽいですねー(ConoHa VPSが気になってた時期はあったけどGMO系という理由で手を出さないでいたんですが…この扱いも継続で良いですね)
このアカウントは、notestockで公開設定になっていません。
ゲームキューブの名作RPGがPCにも?『バテン・カイトス I&II HD Remaster』PC版がオーストラリア等級審査委員会の評価を受ける(2023.9.26) https://www.gamespark.jp/article/2023/09/26/134482.html
PC版出るなら買いますよ?GAMECUBE版は中古で買って最初の方だけ遊んではいましたが…続きをやろうにもGAMECUBE動かなくなっちゃってどうにもならなくなってしまいましたし。
s3-ap-northeast-1.amazonaws.com ってどこにあるんだろう。tracerouteすると、nfgw1-be1.at-dc.zaq.ad.jpの次…J:COM出たらすぐそこって感じの場所にいるみたいなんだけど。国内?
printf(fpo, "%ls\t%ld\n",
あれか、<inttypes.h>を使えと…あとで直しておこう
VMware Player上のRaspberry Pi Desktopだと動いちゃいるみたい。fprintfの引数がおかしいと怒られたけど。
(こういう時に、下手にあれこれ対応するようツールを拡張した自分を呪いたくなる)
ChaSenとMeCabは置いといて、libkakasiだけでもOpenBSD上で使えるようにしておくべきか…いちいちLinux機へログインして作業するのはすっっっっっっごく不便だし。
nwc2010-libkkc、なんかWSL2上のUbuntuじゃファイルを生成できないんですけど…その割にエラーも出ないという…どうなってるのこれ。
POSIX互換だからってことでbashじゃなくdash使ってるのか、Debian/Ubuntu。個人的にLinuxはbashであるべしと思っているので(Slackwareから始めた身だから…刷り込みは怖い)、しれっとdashを混ぜるというのはどうかと思ってしまう。
bashとdashのエスケープシーケンスの挙動の違いに最近悩まされたような気がする…ウッ
とはいえ、うちのガキんちょ共にこれ見せても多分「なんでこんなに音質悪いのー?」と言われるのがオチなんだろうなあ。
あの時代の貧弱なハードウェアで、どうにかしてやっちまおうという部分が見ていて燃えるのに(ゲームの内容についてはあんまり考えてないです、すみません)。
逆に言えば、あの時代を見ていないと何が凄いのか全く理解してもらえないってことなんだろうなあ。そこまで説明するのが面倒なのでもういいやって自分はぶん投げちゃうダメな人なんですけど。
Tales of Phantasia(SFC)とかオープニングで歌ってましたよね。今の技術だったらSFCでももう少しクリアな音質で歌わせることができるんでしょうか…?(わくわく)
SFC/GBA 世代だと拡張なくてもサンプル流せるからそういう意味での拡張音源の需要は下がったんだろうか(でも SFC には スーパー FX チップとかがあるな……)
MSXだってOPLL(MSX-MUSIC)だのY8950(MSX-AUDIO)だのSCCだのといった拡張音源をカートリッジに載せて、PSG鳴らす(のでPSGと拡張音源との音量バランスが問題になった)なんてのがありましたねえ…
https://oldshop.switch-science.com/pressrelease/evy1shield/ こんなのが売られてたのか…NESの音声入力端子に入れられれば何つないでも良いはずなので…そういうのもアリかも(震えてる)
悪魔城伝説(VRC7)とかGimmick!(SunSoft5B)は結構イイ音してるし、なんかそういう拡張音源カートリッジを沢山突っ込んで鳴らしてみた系の動画とかもあるようで。
ファミコンの拡張音声機能はこんなにたくさんのゲームで使われていたのか。
https://www.nesdev.org/wiki/List_of_games_with_expansion_audio
Intel ArcのAV1エンコードって画質どうなんだろう…(動画のエンコードってあんまりやらないのでよく分かっていない)
1) 用法、用量を守ること。
2) 服用する前によく考えること。
3) 大きな薬効には大きな副作用が伴うこと。
それにしても、(分かっていることではありますが)その辺のdata.arpaをlibkkc-data製造用のツールにぶち込んでもうまく動かない問題への対処法について、未だ反応無いっすね…まあそーゆうもんなんでしょうが。
一体どんな言語資源から学ばせたんだよと小一時間問いつめませんけど…この辺りの、資源の選択とかも考えないといけないんだろうなあ。
とはいえ、そもそもdata.arpaの作り方が公表されてるかどうかよー分からんので自力で無理矢理作ってみることが発端ですしそれが分かった以上はあとは誰かにぶん投げたいというのが正直なところなんですよ。終わりがないので。
結局暮らしの中に取り入れて使ってみないことにはこの手のツールの使いやすさは判断しづらいものがあるからなあ。
「あるからなあ」が「あるからなア」になってるムキー…
出現頻度750辞書にしたせいかは分からないけど、「ですよねー」が「ですよネー」にならない。出現頻度の閾値を下げて単語数を増やしゃいいってもんじゃないのは確かそうだな。
とはいえ、どこで線を引くのがまあまあ使いやすい辞書になるのかというのは正直よく分からない。640は使いにくい感じがあった、さて750はどうなんだろう(ここんとこ750しか使ってないけど)。
口語体で書くと、語尾の部分を「ですよネー」な形で片仮名化してくれるのがちょっと面倒だな。出現頻度750の時はそんなに感じなかった気がするが…?
7〜8割の人が抱える問題の、7〜8割くらいが解決できるようなもので十分じゃないのーと割とユルく考えてるんですが…フツーの人は「それって49〜64%しか物事解決できてないですよね、不合格じゃないんですか」とバツつけてくれますよねー…
nwc2010-libkkcの、kakasiだと「ヴ」をちゃんと扱えない問題を修正したので(面倒なのであんまりやりたくなかった)辞書の作り直し。出現頻度を750→640にして少し単語数を増やしてみたけど使い始めたばかりなので評価しようがない。
(議題、というキーワードからふと連想してしまったけど…でも議事録の内容はちょっと偏りがあるかなあ?)
国会の議題が公開されていても人々は見ないし、ソフトウェア開発の課題リストが公開されていても人々は見ないし、どちらも正式版がリリースされてから大騒ぎになるということなのかもしれない
ChaSen対応は意外に簡単にできたけど…どうも漢字かな変換に癖があるな。MeCab, kakasiと比べてみたけど…なんとなく、雑にフリガナを振るならkakasiが良い気がする。まあ形態素解析器を辞書代わりに使うのと、漢字仮名交じり文を平仮名に変換することを目的としたプログラムなら、後者の方が良いのでは?というのは特に不思議な話ではないだろうし。
出力結果をパースしないといけないのかと思ったけど、chasen、出力フォーマットを指定すれば読みだけ簡単に取れるのね…
uaa@emeraude:~$ echo "生麦生米生卵" | chasen -F "%y"
ナマムギナマヨネオタマゴ
uaa@emeraude:~$
ナマヨネオはともかくとして。
uaa@emeraude:~$ echo "生麦生米生卵" |chasen -b -c
生麦 ナマムギ 生麦 7 0 0
生 ナマ 生 42 0 0
米生 ヨネオ 米生 11 0 0
卵 タマゴ 卵 2 0 0
EOS
uaa@emeraude:~$
…ちょ
juman対応入れてはみたけど一晩回しても結果が出ないのは流石に遅すぎて使えないのでテスト用のブランチに放り込んで寝かせておくことにします。代わりにkakasi使用時に「ヴ」を含む文字列がちゃんと処理できなかったバグを見つけて潰せたので、無駄な作業ではなかった。
このアカウントは、notestockで公開設定になっていません。
MeCabに倣い、カタカナ化すればいい
uaa@emeraude:~/nwc2010-libkkc$ echo "ヴァイオリン" |nkf -e |kakasi -ieuc -KK -JK |nkf -w
ヴァイオリン
uaa@emeraude:~/nwc2010-libkkc$
なるほど、これに引っかかってkakasiだと「ヴ」を含む候補が処理できない…
uaa@emeraude:~/nwc2010-libkkc$ echo "ヴァイオリン" |nkf -e |kakasi -ieuc -KH -JH |nkf -w
う゛ぁいおりん
uaa@emeraude:~/nwc2010-libkkc$
JUMANの処理が遅すぎる…というか、漢字を含まない(ひらがな/カタカナのみ)ものであればひらがな変換するコードを通せばいい…いちいち形態素解析エンジンにお願いする理由は無いんだよな。
もしかして:JUMANサーバ、OpenBSD上の実マシンじゃなくnwc2010-libkkcの動くLinuxマシン上のQEMU上で動かした方が実は早いのでは…
chasen-2.4.5、サーバモード削除してる?2.2.9ではサーバモードあるみたいなんだけど。 http://whitewell.sakura.ne.jp/semi2/chasen-man.pdf
ChaSen(-legacy)、OSDNにあるけど…なんでこんなクソ重いのOSDN。 https://ja.osdn.net/projects/chasen-legacy/
TCP/IP越しにJUMANサーバへアクセスしているのでこれがまあ遅い遅い遅い遅い…止まっていないだけましなんだろうけど。
ChaSenのサーバモードって、JUMANと同じプロトコルなのかなあ。同じだとしたら、こっちも楽できるんだけど…
kakasiですら「菓」を読めているというのに??
uaa@framboise:~/juman/dist/bin$ echo "菓匠禄兵衛" | nkf -e |kakasi -JH -KH |nkf -w
かたくみろくべえ
uaa@framboise:~/juman/dist/bin$
これは通るのに?
uaa@framboise:~/juman/dist/bin$ echo "菓子折" | ./juman
菓子 かし 菓子 名詞 6 普通名詞 1 * 0 * 0 "代表表記:菓子/かし カテゴリ:人工物-食 べ物 ドメイン:料理・食事"
折 折 折 未定義語 15 その他 1 * 0 * 0 NIL
EOS
uaa@framboise:~/juman/dist/bin$
…へ?
uaa@framboise:~/juman/dist/bin$ echo "菓匠禄兵衛" | ./juman
菓 菓 菓 未定義語 15 その他 1 * 0 * 0 NIL
匠 たくみ 匠 名詞 6 普通名詞 1 * 0 * 0 "代表表記:内匠/たくみ カテゴリ:人"
禄 ろく 禄 名詞 6 普通名詞 1 * 0 * 0 "代表表記:禄/ろく カテゴリ:人工物-金銭"
兵 へい 兵 名詞 6 普通名詞 1 * 0 * 0 "代表表記:兵/へい 漢字読み:音 カテゴリ:人 ドメイン:政治"
衛 まもる 衛 名詞 6 人名 5 * 0 * 0 "代表表記:衛/まもる 人名:日本:名:628:0.00025"
EOS
uaa@framboise:~/juman/dist/bin$
uaa@framboise:~$ echo "生麦生米生卵" |nkf -e |kakasi -JH -KH | nkf -w
なまむぎなまこめなまたまご
uaa@framboise:~$
uaa@framboise:~$ telnet localhost 32000
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200 Running JUMAN version: 8.0
RUN -b -c
200 OK
生麦生米生卵
生 せい 生 6 1 0 0
麦 むぎ 麦 6 1 0 0
生 せい 生 6 1 0 0
米 こめ 米 6 1 0 0
生卵 なまたまご 生卵 6 1 0 0
EOS
ええええええええええ…
まあメンテナがnamazuな方なので多分なんとかなる…よね…?
とりあえずreportbug投げてみる。
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1052526
あ…文字コードがUTF-8になってない(JISじゃんこれ)
Debian-12で、デフォルトのgcc-12じゃなくgcc-11に落としても状況変わらず。WSL2上のUbuntuはgcc-11だったという理由で試したんだけどねえ。
juman-serverはIPv4専用っぽいな。v6まで考えなくて良しと。
OpenBSD上ではちゃんと動いてる。まあ最悪の場合ここでjuman-serverを試すということで良いんだろうけど。Debian-12機が壊れてる可能性もあるので他のDebian-12機でもjuman試しているけど、同様に動いてないのでDebianの問題と言って良いのかも(でもDebianになんか変なクセってあったっけ…?)
juman(juman++じゃない方)、aptなパッケージじゃなくgithubからビルドしてもDebian-12上だと何突っ込んでもEOSしか返らない現象が起きますねえ。辞書はちゃんと参照できてるみたいなんだけど。
Cの場合、if (hoge == TRUE)とか(fuga == FALSE)って確かすべきではない(どっちかというと禁じ手)じゃなかったっけ?単にif (hoge)ないしif (!fuga)で足りるんじゃ