信頼度判定で誤分類を防ぐ3段階アルゴリズム

自動分類システムで一番怖いのは「誤分類」です。

大事なファイルが間違ったフォルダに入ってしまったら、後で探すのが大変。最悪、見つからずに期限を逃すなんてことも。

そこで導入したのが3段階の信頼度判定アルゴリズムです。

信頼度スコアとは?

信頼度スコアは、「このファイルをこのフォルダに分類して大丈夫か?」を0.0〜1.0の数値で表したものです。

  • 1.0に近い: ほぼ確実に正しい分類
  • 0.5付近: 微妙。人間の判断が必要
  • 0.0に近い: 分類できない、もしくは間違っている可能性大

3段階の判定基準

高信頼度(0.8以上)→ 自動移動OK

以下の条件を満たすファイルは、自動で移動しても問題ありません。

  • 拡張子が明確(.pdf、.docx、.pngなど)
  • ファイル名にキーワードが含まれる(contract、invoice、screenshotなど)
  • 過去の履歴から同じパターンが確認されている

例:
contract_2026_Q1.pdf → 書類フォルダ(信頼度0.95)
invoice_march.xlsx → 書類フォルダ(信頼度0.92)

中信頼度(0.5〜0.8)→ 手動確認フォルダへ

微妙なファイルは、いったん「自動振り分け待ち」フォルダに移動します。

  • 拡張子は分かるが、ファイル名が曖昧
  • 複数のカテゴリに該当する可能性がある

例:
report.pdf → 書類?プロジェクト資料?(信頼度0.65)
image_001.jpg → メディア?スクリーンショット?(信頼度0.6)

週次で手動レビューして、正しいフォルダに振り分けます。

低信頼度(0.5未満)→ そのまま残す

分類できないファイルは、Downloadsフォルダに残します。

  • 拡張子が不明
  • ファイル名が意味不明(aaa.tmptemp123など)

例:
unknown.dat → 分類不可(信頼度0.2)
.DS_Store → システムファイル(信頼度0.0)

スコア計算の実装例

簡単な例を示します。

def calculate_confidence(filename, extension, keywords):
    score = 0.0

    # 拡張子が既知 → +0.3
    if extension in KNOWN_EXTENSIONS:
        score += 0.3

    # キーワードマッチ → +0.4
    for keyword in keywords:
        if keyword.lower() in filename.lower():
            score += 0.4
            break

    # 過去の履歴マッチ → +0.3
    if check_history(filename):
        score += 0.3

    return min(score, 1.0)

この方法で、大半のファイルは高信頼度(0.8以上)に分類できます。

段階的な自動化

最初の1-2ヶ月は、高信頼度ファイルのみ自動移動し、中信頼度ファイルは手動レビューします。

誤分類がないことを確認してから、中信頼度ファイルも自動化する方針。

慎重すぎる?いえ、慎重すぎるくらいがちょうどいいんです。

まとめ

信頼度判定を導入することで、自動分類の安全性が格段に上がります。

「いきなり全自動化」ではなく、「段階的に信頼度を高める」アプローチが成功の鍵です。