見出し画像

ログ分析ツールに昨日リリースしたTF-IDFのパッケージを組み込もうとして悩む

今朝は4時半から開発開始です。
昨日リリースしたTF-IDFのパッケージをログ分析ツールに組み込もうと思って早く目が覚めました。
ログ分析ツールの検索条件の設定の

異常ログ検知の特徴量の計算方法にTF-IDFを追加しようと考えました。
ログの1行からTF-IDFで数値のベクトルを作成できればよいのです。
これはいけると思って、昨日リリースしたTF-IDFのパッケージで取得できる結果を見てみると、なんとなく違っていることに気づきました。
心配になって、TF-IDFについてもう一度調べてみることにしました。

この解説を読むと、文書単位のベクトルデータを作成する時に、読み込んだ全文書に含まれる全単語をソートして使っています。私のは対象の文書に含まれる単語のデータしか取得できません。TFIDFの値が0のものが含まれていないということです。
対応するためには

読み込んだ全文書に含まれる全単語をソートしたリスト

が必要です。
同じようにTF-IDFのGO言語パッケージをGitHUBでForkした人が、同じ悩みをもって対策しようとしていました。

でも、この人の修正は間違っているようです。採用しないことにしました。
AIに相談しようかと思いましたが、助手の猫がのアドバイス
「自分で考えたほうがよい」
を思い出して、自分で考えることにしました。
テストデータを、先程のサイトの説明と同じ

犬  可愛い 犬 大きい
猫 小さい 猫 可愛い 可愛い
虫 小さい 可愛くない
虫 小さい 可愛くない

にして計算することにしました。
このテストデータで試してみると、今回の課題とは違う問題を2つ見つけました。

  • 読み込みで空の行を追加してしまう

  • 同じ行のデータがドキュメント数に含まれない

まずは、この2つを修正したところで、時間切れになってしまいました。

明日に続く


開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。