キーワード検索機能の検討用タタキ台として作成したリポジトリのREADMEを整理した内容です。
GitHub上のリポジトリは社内向け・非公開のため、フォルダそのものを共有しています。
※実装仕様書ではなく、機能理解・検討用の資料です。
動作確認はMac 環境で行っています。
理系学生(大学4年生・大学院生)を対象にした、企業の求人情報と求職者のプロフィールをキーワードベースでマッチングさせるシステム
https://cognavi-keyword.cap.six1.jp
cognavi-keyword/
├── data/ # データファイル
│ ├── raw/ # 元のExcelファイル
│ ├── processed/ # 前処理済みCSV
│ ├── keywords/ # 抽出キーワード
│ ├── related/ # 関連キーワードデータ
│ ├── clusters/ # クラスタリング結果
│ └── embeddings/ # 埋め込みベクトル
├── config/ # 設定ファイル
├── src/cognavi_keyword/ # ソースコード
│ ├── api/ # FastAPI
│ ├── cli/ # CLIツール
│ ├── nlp/ # NLP処理
│ ├── db/ # リポジトリ
│ └── common/ # 共通ユーティリティ
├── static/ # 静的ファイル (HTML/CSS/JS)
├── tests/ # テスト
└── docs/ # ドキュメント
git clone <https://github.com/tomohirof/cognavi-keyword.git>
cd cognavi-keyword
python3 -m venv venv
source venv/bin/activate # Windowsの場合: venv\\Scripts\\activate
pip install -e ".[dev]"
python -m spacy download ja_ginza
npm install
cp config/.env.example config/.env
# 必要に応じて.envファイルを編集
以下のファイルが必要です:
data/raw/求人データ.xlsx - 求人データ (元データ)data/raw/企業.xlsx - 企業データ (元データ)これらは事前に data/keywords/ と data/related/ に処理済みデータとして含まれています。
source venv/bin/activate
uvicorn cognavi_keyword.api.main:app --host 0.0.0.0 --port 8000 --reload
ブラウザで以下にアクセス:
ckw ingest --input data/raw/求人データ.xlsx --output data/processed/jobs.csv
# v2キーワード抽出 (推奨)
ckw keywords-v2 --input data/processed/jobs.csv --output data/keywords/jobs_keywords_v2.csv
ckw related --input data/keywords/jobs_keywords_v2.csv --output data/related/jobs_related_v2.json
# v2検索API (推奨)
curl -X POST <http://localhost:8000/api/v2/search> \\
-H "Content-Type: application/json" \\
-d '{"query": "機械設計", "top_k": 10, "include_related": true}'
curl "<http://localhost:8000/api/v1/keywords/機械学習/related?limit=5>"
クラスタリング関連の仕様およびAPIの詳細については、
本資料とあわせて共有しているフォルダ内(docs 配下)に含まれる資料を参照してください。
# クラスタリング実行
curl -X POST <http://localhost:8000/api/v1/clusters/create> \\
-H "Content-Type: application/json" \\
-d '{"keywords": ["機械学習", "深層学習"], "min_cluster_size": 3}'
# クラスタ一覧
curl <http://localhost:8000/api/v1/clusters>
# 全テスト実行
pytest
# 高速テストのみ (MLモデル不使用)
pytest -m "not slow and not ml"
# 特定のテストファイル
pytest tests/unit/test_cluster_api.py -v
CSSの変更時は以下でコンパイル:
npm run build:css
監視モード (開発時):
npm run watch:css
caprover deploy
data/keywords/jobs_keywords_v2.csv)data/related/jobs_related_v2.json)data/related/jobs_keywords_v2_embeddings.npy)python -m spacy download ja_ginza
npm run build:css
仮想環境が有効になっていることを確認:
source venv/bin/activate
which python # venv内のPythonが表示されるはず
※上記資料は、共有しているフォルダ内(docs 配下)に含まれています。
MIT License
Fukuda Tomohiro