# 計画: LDA（潜在的ディリクレ配分）の扱い

## 1. 目的と背景

**LSA と LDA はコミュニティ版専用**の実装とする。Pro 版は埋め込みモデルのみでベクトル化し、LSA/LDA のコードは含めない。

現在の Community 版は **LSA（Latent Semantic Analysis）** のみで文書チャンクをベクトル化している。ここに **LDA（Latent Dirichlet Allocation）** を追加し、**LSA と LDA を切り替えて使える**ようにする。設定で「ベクトル化: LSA」か「ベクトル化: LDA」を選び、選択した方だけを学習・検索に用いる。LDA のトピック数 K は**規定 128 次元**とし、ユーザー指定で再構成可能とする。

**リリース目標**: **v0.3.3 の Community 版**で LDA 対応を実装・出荷する。Pro 版は従来どおり埋め込みのみ。

```mermaid
flowchart LR
  subgraph 現状
    A1[文書・チャンク] --> B1[TF-IDF]
    B1 --> C1[LSA / SVD]
    C1 --> D1[50次元ベクトル]
    D1 --> E1[検索]
  end
  subgraph 追加したい
    A2[文書・チャンク] --> B2[語彙・カウント]
    B2 --> C2[LDA]
    C2 --> D2[トピック分布 128次元 規定]
    D2 --> E2[検索 or トピック表示]
  end
```

---

## 2. 検討事項別ドキュメント

各検討事項は別ファイルに分割している。

| No. | 項目 | ファイル | 内容 |
|-----|------|----------|------|
| 01 | **スコープ** | [lda_01_scope.md](lda_01_scope.md) | 対象エディション、役割、LSA/LDA 切り替え、LDA 次元数（規定 128・ユーザー再構成）。 |
| 02 | **技術方針** | [lda_02_tech.md](lda_02_tech.md) | LDA の性質、Rust 実装候補、ストレージ（items_lda）。 |
| 03 | **UI 改造** | [lda_03_ui.md](lda_03_ui.md) | 設定パネルにベクトル化切り替え・LDA 次元数 K・再構成の追加。 |
| 04 | **実装ステップ** | [lda_04_phases.md](lda_04_phases.md) | Phase 1〜5 の実装順序。v0.3.3 に含める範囲。**テスト・検証**（単体・結合・手動・UI/E2E・既存 KPI）を含む。 |
| 05 | **注意事項・未決定** | [lda_05_considerations.md](lda_05_considerations.md) | K の範囲、学習コスト、切り替え時再学習、Pro 版方針。 |
| 06 | **参照** | [lda_06_references.md](lda_06_references.md) | LDA 論文、Rust クレート、既存コード参照。 |
