Skip to content

memorist17/editor_recommend_engine_public

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Editor's Board Recommend Engine

編集部掲示板のレコメンドエンジンです。小説・掲示板のCSVデータのembedding、類似度計算とクラスタリングを行います。

データーフロー及び構造

graph TD
    %% データソース
    subgraph データソース[入力データ]
        M[CSV入力データ]
    end

    %% Embedding生成プロセス
    subgraph Embedding生成[Embedding生成プロセス]
        E[csv_embedding.py] --> F[データ前処理]
        F --> G[Embedding生成]
    end

    %% 類似度計算プロセス
    subgraph 類似度計算[類似度計算プロセス]
        I[csv_similarity.py] --> K[類似度計算]
        K --> L[結果出力]
    end

    %% クラスタリングプロセス
    subgraph クラスタリング[クラスタリングプロセス]
        C[clustering_meanshift.py] --> D[Mean Shiftクラスタリング]
        D --> H[クラスター結果出力]
    end

    %% データの流れ
    M --> E
    G --> O[chroma_db/]
    O --> I
    O --> C
    L --> P[outputs/]
    H --> P

    %% スタイル調整
    style データソース fill:#e1f3e1,stroke:#666
    style Embedding生成 fill:#e1e1f9,stroke:#666
    style 類似度計算 fill:#f9e1e1,stroke:#666
    style クラスタリング fill:#f9f3e1,stroke:#666
Loading

セットアップ

  1. 必要なパッケージのインストール:
pip install -r requirements.txt
  1. 環境変数の設定: .envファイルをプロジェクトのルートディレクトリに作成し、以下の内容を設定してください:
OPENAI_API_KEY=your_api_key_here
EMBEDDING_MODEL=text-embedding-3-small
  1. データファイルの準備:
  • document/フォルダにCSVファイルを配置
    • dashboard_interview&contents.csv: インタビューデータ
    • novels.csv: 小説データ:

dashboard_interview&contents.csv

インタビューデータのCSVファイル

必要な列:

  • company: 会社名
  • content: インタビュー内容のテキスト
  • その他のメタデータ列

novels.csv

小説データのCSVファイル

必要な列:

  • title: 小説のタイトル
  • content: 小説の内容テキスト
  • その他のメタデータ列

注意事項

  • CSVファイルはUTF-8エンコーディングで保存してください
  • テキストデータは適切に前処理されている必要があります
  • 大きなファイルの場合は処理時間がかかる可能性があります

プロジェクト構成

  • main/: メインスクリプト
    • csv_embedding.py: CSVデータのembedding生成
    • csv_similarity.py: 類似度計算
    • clustering_meanshift.py: MeanShiftクラスタリング
    • utils.py: ユーティリティ関数
  • document/: CSVデータファイル(データは含まれません)
  • chroma_db/: ChromaDBのデータベースファイル(データは含まれません)
  • outputs/: 計算結果の出力ファイル(結果は含まれません)

使用方法

  1. CSVデータのembedding生成:
python main/csv_embedding.py
  1. 類似度計算:
python main/csv_similarity.py
  1. クラスタリング実行:
python main/clustering_meanshift.py

機能詳細

Embedding生成

  • OpenAI APIを使用してテキストのembeddingを生成
  • ChromaDBに保存して効率的な検索を実現

類似度計算

  • 小説とCSVデータ間の類似度をコサイン類似度で計算
  • 上位15件の結果を可視化

クラスタリング

  • MeanShiftアルゴリズムを使用
  • t-SNEで3次元に削減して可視化
  • インタラクティブなHTMLファイルとして出力

注意事項

  • OpenAI APIキーは.envファイルで管理し、GitHubにはアップロードしないでください
  • CSVデータファイルは各自で準備してください
  • outputs/ディレクトリには計算結果が出力されます
  • 日本語フォント(Hiragino Sans)を使用したグラフ生成

依存関係

  • Python 3.8+
  • OpenAI API
  • ChromaDB
  • NumPy
  • scikit-learn
  • matplotlib
  • plotly

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages