自動タグの突発的進展
去年同時期ごろ、かつてブログ移転の必須条件としていた自動タグ付与について妄想していました(#07382 / 2024年03月03日)。
自動タグ付与自体はずいぶん前から妄想していたことですが、
生成AIの登場当時は「ChatGPT APIを噛ませればちょちょいのちょいでできるのでは?」と思ったものでした。
しかしよくよく考えてみると
いくらChatGPTでもゲーム内の固有名詞などググっても出てこないような言葉の判別は不可能なので、
そういった固有名詞とタグの関連づけは結局人力でやらざるを得ない……
ということはつまり現実的ではない……というのが去年時点の結論でした。
現実的ではないと思ったので、20周年に際してはスッパリ諦めることにしました。
そもそも2025年現在、7700本もの記事をAIに読み込ませるのはかなり高いハードルがあります。
少なくとも無料の範囲では無理なんじゃないでしょうか。
50本以下でいいならNotebookLMという選択肢がありますが、ケタが2つ足りません。
なのでいわゆるローカルLLMを構築するというアプローチで妄想していたこともありますが、
ハードウェアと専門知識の両方を求められるという点でなかなか着手しにくい分野です。
しかも、どんなに頑張ったところでGPT-4oには敵わない。
そんな中、昨日たまたま「Dify(ディファイ)」という
ノーコードで生成AIを介したバッチ処理プロセスを作成できるツールを知りました。
まぁ、それはきっかけでしかなかったのですが、Difyでできることは何なのかをChatGPTくんに訊くなかで、
それよりもPythonの自然言語処理ライブラリを使った方が有望かもしれないという可能性に行き着き、
それを掘り下げていったらみるみるうちに現実的に実現できそうなところまで手が届くようになりました。
こういうところが本当に生成AIの恐ろしくも愛おしいと思わせる部分です。
TF-IDF解析によって記事内の重要単語を抜き出すスクリプトはもうできていますが、
それで試しに直近100本の記事を回してみると、必ずしもスコアが高い単語=タグとして有望というわけでもない。
ただ、このブログの過去記事についてはすべて人力で付与してきたタグがいちおうあります。
なので記事の重要単語と人力タグを紐づけることはできる。
ここまではもうカードが揃っているので、ごく機械的なタグ付与ならもうできるかもしれません。
実際には、新語や固有名詞を正常に認識しない問題や
(たとえば、MeCabの形態素解析では「雷電将軍」は「雷電」と「将軍」にわけてしまうなど)、
1記事1トピックスの原則が確立したのはわりと近年になってからなので
複数トピックスのある記事をどう処理するかなど、実用レベルに持っていくにはまだ壁がいろいろあります。
しかし、かつては夢物語だった自動タグプロジェクトが今日一日でものすごい進展しました。
ChatGPT APIを使ってなんとかするのではなく、ChatGPTと一緒に考えるというアプローチが正解だったんだなと。
もちろんAPIを使うという選択肢も残っていますが、現状だとPythonだけでなんとかなりそうではある。
本家ブログの適切なタグ付与は過去記事を掘り下げるためにもきわめて重要な機能なので、
このまま行けるところまで行って、過去記事探索をさらに快適にしたいところです。