技術ブログを管理する上で、タグ付けの自動化は魅力的な課題ですが、同時に「ごみ」を生成しやすい罠でもあります。
システムに任せきりにするのではなく、「その言葉がどこに出現したか」で文脈を読み解く設計の勘所をまとめます。
1. その単語は「機能(動詞)」か「主題(名詞)」か
たとえば、「自動化」というタグについて考えてみます。
「ドメイン取得業者の選び方」という記事を書いたとします。その記事の目的は、どの業者が安くて使いやすいかを解説することです。しかし、その解説の中で「この業者は自動更新がデフォルトなので安心です」とか「DNSの設定が自動化されています」といった記述が出てくるのは自然なことです。
ここで、単なる文字列マッチングを行っていると、この記事に「#自動化」というタグが付与されてしまいます。これは明らかに誤爆です。読者が「自動化」のタグを辿ったときに期待しているのは、CI/CDやスクリプトによる効率化の話であり、ドメイン業者の機能比較ではないからです。
2. タイトルの持つ「独占権」
自動判定を「直感」に一致させるためには、キーワードを以下の2種類に分ける必要があります。
主題を決定づける固有名詞 (Proper Nouns)
Cloudflare,Astro,GitHub Actions- これらは技術スタックそのものを指すため、本文中に存在すれば、その技術について具体的に触れていると判断してタグを付けても大きな間違いではありません。
文脈に依存する一般名詞 (General Terms)
自動化,デザイン,SEO- これらは、タイトルに含まれているときだけタグを付けるという制約を課します。
タイトルは、その記事の「看板」です。看板に「自動化」と掲げているならば、その記事の主題は自動化です。しかし、看板が「ドメインの選び方」なのに本文にその単語が出ただけなら、それは単なる「機能の説明(動詞)」に過ぎません。
3. なぜLLMでタグ付けをしないのか
現代において、文章の文脈を読み解くならLLM(大規模言語モデル)を使うのが定石のように思えます。しかし、A3roプロジェクトではあえて原始的なキーワード・ベースの抽出を選択しています。
一貫性の欠如
エージェントにタグ付けを丸投げすると、モデルの気分やプロンプトの揺れによって、同じような内容の記事でもタグがバラバラになるリスクがあります。タグはブログ内の「共通インデックス」であるべきであり、一貫性が失われれば機能しなくなります。
費用の問題
かといって、タグ付けだけに特化したLLM APIをパブリッシュのたびに呼び出すのは、個人の技術ブログとしてはオーバーエンジニアリングであり、コストパフォーマンスが悪すぎます。
「正規表現とキーワードリスト」という枯れた技術であっても、そこに「固有名詞と一般名詞の分離」「タイトルの重み付け」という論理的なフィルタを一枚重ねるだけで、実用十分な精度と完璧な一貫性を、ゼロコストで手に入れることができるのです。
結論:看板と中身を混同しない
曖昧な一般名詞をキーワードのトリガーにして失敗したのは、その言葉が出現したときに、それが「主題」を指しているのか「動作」を指しているのかを無視していたからです。
あやふやな言葉をキーワードとして全編から拾い上げるのをやめ、「看板(タイトル)にあるなら主題(タグ)、中身(本文)に出ただけならただのノイズ」という明確な基準を設けること。このシンプルな設計こそが、自動生成をごみの山から救い、ブログの回遊性を守る唯一の道でした。