見出し画像

ログ分析ツールのためにTF-IDFのプログラムをGitHUBでForkした

今朝は5時から開発開始です。
昨日、AIの作ったTF-IDFのプログラムを添削しましたが、使えそうもないので、助手の猫のアドバイスを聞いて自分で考えることにしました。
まずは、

のプログラムを真面目に読み込んでみました。
中の作りも良くできています。
良い点は

  • 単語分割を拡張できる(日本語対応など)

  • 文書間の類似度を計算できる

  • 重複する文書を削減できる

などです。
悪い点は、

  • Glideという古いパッケージ管理を使っている

  • 中国語の単語分割のライブラリでワーニングがでる

です。
そこで、思い切ってForkして自分で開発することにしました。

オリジナルから

  • 中国語の対応を削除

  • 日本語に対応

  • パッケージ管理をgo modに変更

の変更をしました。
サンプルのプログラムを中国語版と同じように

	tokenizer := &seg.JaTokenizer{}
	defer tokenizer.Free()

	f = tfidf.NewTokenizer(tokenizer)

	f.AddDocs("東京大学", "早稲田大学", "東京工業大学", "北見工業大学", "慶応大学")

	t1 = "東京工業大学"
	w1 = f.Cal(t1)
	fmt.Printf("weight of %s is %+v.\n", t1, w1)

	t2 = "北見工業大学"
	w2 = f.Cal(t2)
	fmt.Printf("weight of %s is %+v.\n", t2, w2)

日本の大学名にしてみたら、結果が

weight of 東京工業大学 is map[東京工業大学:1.0986122886681096].
weight of 北見工業大学 is map[北見工業大学:1.0986122886681096].

のようになってしまいました。大学名は一つの単語になるようです。

オリジナルの中国語は

weight of 重庆市西南大学 is map[大学:0 市:0.18325814637483104 庆:0.10216512475319815 西南:0.3218875824868201 重:0.10216512475319815].

のように分割されます。
なので、サンプルは書き換えますが、今朝は時間切れです。

明日に続く

いいなと思ったら応援しよう!

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