Newer
Older
TelosDB / docs / plans / lda / lda_04_phases.md

LDA 計画: 04 実装ステップ

計画トップ


実装ステップ(案)

段階 内容 v0.3.3 Community
Phase 1 LDA 学習・推論のモジュールを用意する。既存語彙(LSA と共通)で BoW を組み、LDA を学習して θ・φ を取得。クエリの θ 推定と、θ 同士の類似度計算まで。DB は触らない。 ✅ 含める
Phase 2 items_lda テーブルを追加し、学習後の θ を保存。起動時・再学習時の同期(heal / retrain)で LDA ベクトルを更新する。 ✅ 含める
Phase 3 検索パスで「LSA / LDA の切り替え」を反映。設定が LSA なら既存の LSA 検索、LDA なら items_lda とクエリ θ で類似度検索。再学習(retrain)も選択中の方式のみ実行する。 ✅ 含める
Phase 4 UI 改造03 UI 改造)。設定パネルに「ベクトル化: LSA / LDA」の単一選択、LDA 時のトピック数 K(規定 128、ユーザー指定可)、再構成ボタン。K 変更時の再構成実行。設定の永続化。 ✅ 含める
Phase 5(任意) トピックラベル表示(各トピックの代表語から φ で取得)、文書の主トピック表示。 以降

v0.3.3 の範囲: Community 版で Phase 1〜4 までを実装する。LSA と LDA の切り替え、規定 128 次元・ユーザー指定での再構成、およびそれに必要な UI 改造を含める。


テスト・検証

種別 内容
単体 LDA モジュール(学習・θ/φ 取得・クエリの θ 推定・類似度計算)を、既存の LSA テスト(src/backend/src/utils/lsa.rstest_lsa_variance 相当)と同様にユニットテストする。固定 BoW で学習し、クエリを投げて類似度の順序や範囲が妥当か検証。
結合 items_lda への θ 保存と、検索パスで「LDA 選択時」に items_lda を参照してランキングする流れを、テスト用 DB で検証。LSA 切り替え時は従来どおり items_lsa/vec_items が使われることも確認。
手動 Community 版で「ベクトル化: LDA」に切り替え、再学習(再構成)後に検索クエリを実行し、結果が返ること・類似度が付与されることを確認。K を変更して再構成したあとも同様に動作することを確認。
UI / E2E 設定パネルで「LSA / LDA」の切り替えと「LDA 次元数 K」「再構成」ボタンが表示・操作できることを、12 UI テスト方針 や既存 E2E に沿って検証する(実装後にスペック追加)。
既存 KPI との関係 Community の既存テスト(test-and-heal、検索ヒット確認)が LDA 導入後も壊れないことを確認。LSA 選択時は従来どおりのパスを通るため、LSA の KPI はそのまま使える。LDA 選択時用の KPI を追加するかは必要に応じて検討。