Skip to main content

Kaomojis の方法論 — 収集・分類・品質管理

本ページでは、Kaomojis がどのように61,000件以上の顔文字を収集・分類・品質管理しているかを技術的に説明します。単なるコピペサイトではなく、データ設計・重複検出・多言語付与・ランキング算出・翻訳監査の全工程を工学的に運用しています。

1. 収集 (Ingestion)

顔文字の一次ソースは、日本の BBS・SNS に長年流通するパブリック顔文字です。加えて編集部が新規に創作した顔文字、ユーザーからの /request 経由のリクエストを精査して加えます。

収集段階で著作権コンテンツ(キャラクター名・商標・引用)の自動スクリーニングを実施。該当する候補は拒否されます。

全文字列はUnicode NFC 正規化を行い、半角/全角・合成文字の揺らぎを統一します。

2. 重複検出 (Deduplication)

すべての顔文字テキストに対して SHA-256 ハッシュを計算し、UNIQUE 制約でデータベース層で重複を拒否します。

更に類似度が高い候補(Levenshtein 距離や部分一致)は人手レビュー対象としてフラグされます。

実運用で、候補投入のうち約8%が重複として自動拒否されています。

3. 分類アルゴリズム (Categorization)

分類は3層構造です: カテゴリ (emotion系: happy/sad/love/angry/cute...)、イベント (event系: birthday/christmas/halloween...)、シーン (scene系: cat/morning/sakura...)。1つの顔文字は複数の分類に所属できます。

分類候補は AI 下書き → 編集者レビューの2段階で決定。最終的なカテゴリ配列は SQLite の JSON カラムに保存されます。

「Phase 122 — 細粒度感情タクソノミー」以降、従来の7感情から48感情に拡張し、ロングテールクエリへの対応を強化しました。

4. スコアリング (Ranking Algorithm)

各顔文字には動的スコアが計算されます: score = α × copyCount + β × favoriteCount + γ × engagementSec − δ × daysSinceLastCopy

α, β, γ, δ は運用で調整するハイパーパラメータ。現在は copyCount の比重が最も高く設定されています。

スコアは15分毎にバッチ更新され、ランキング・人気表示・関連顔文字提案に使用されます。

5. 多言語メタデータ付与 (i18n Pipeline)

各顔文字には12言語(ja/en/zh/zh-TW/es/ko/hi/pt/fr/ru/de/id)の使用例 (usage)・キーワード (keywords)・文化的注釈 (note) が付与されます。

初稿は AI 翻訳、重要言語(日・英・中・韓・西・葡)は人手監査。

キーワードは逐語訳ではなく「その言語の検索語として自然な表現」へ展開します。例: 日本語「癒し」→ 英語 ["healing", "soothing", "comfort", "calm"]。

6. 翻訳品質監査 (Translation QA)

scripts/audit-translations.mjs --strict を週次で実行し、未翻訳率を言語ごとに計測。目標は5%未満。

新規言語追加時は `.claude/skills/adding-language` スキルのチェックリストに従い、16ファイルを漏れなく更新します。

翻訳エラーの指摘は [email protected] から歓迎しています。

7. インフラ・配信 (Infrastructure)

スタック: Astro 6 SSR + React 19 Islands + SQLite (better-sqlite3) + PM2 cluster mode + Cloudflare CDN

1リクエストのTTFB: 温態で約25ms

サイトマップ: 415,000+ URL(kaomoji 詳細 × 12言語 × alternate link)、Google の50MB上限を回避するために複数シャードに分割

CDN 戦略: Cloudflare で s-maxage=86400 ベース。A/B テストは cookie ベースだが SSR は固定 variant で CDN HIT を維持

8. 継続改善 (Continuous Improvement)

Phase 1 以来、継続的改善を「Phase 番号」で記録。2026-04 時点で Phase 554。

GA4 + GSC 分析を毎日5回 (`/analytics-review` cron) 自動実行し、改善機会を検出して翌日には実装することも多いです。

A/B テストは `/ab-test` スキル経由で自動評価・勝者判定・次テスト起動されます。

最終更新: 2026年4月15日 (Phase 554)