SearchPaperByEmbedding — 論文の意味検索ツール
概要
SearchPaperByEmbeddingは、OpenReviewなどの会議投稿データを取得し、論文本文や要旨に対して埋め込みを作成して類似論文を検索できるリポジトリです。ローカルで動作するオープンソース埋め込みモデル(例:all-MiniLM-L6-v2)を用いて無料で運用できる一方、OpenAIの埋め込みAPIも選択可能で、より高品質な距離計算を行えます。埋め込みのキャッシュ機能により再計算を避け、シンプルなデモやクローラースクリプトで手早く導入できます。
リポジトリの統計情報
- スター数: 78
- フォーク数: 4
- ウォッチャー数: 78
- コミット数: 2
- ファイル数: 6
- メインの言語: Python
主な特徴
- OpenReview(例:ICLRの投稿)から論文情報をクロールしてローカルに保存。
- 埋め込みモデルはオープンソース(all-MiniLM-L6-v2等)とOpenAI APIの両方をサポート。
- 埋め込みのキャッシュ機能で再計算を削減し、高速な検索を実現。
- テキストクエリまたは例示論文によるセマンティック検索を提供。
技術的なポイント
本プロジェクトの核は「埋め込みベクトルを用いたセマンティック検索」のシンプルな実装にあります。まずcrawl.pyでOpenReview等から論文メタデータ(タイトル、要旨、著者、PDFリンク等)を収集し、ローカルファイルとして保存します。次にsentence-transformers系の軽量モデル(例:all-MiniLM-L6-v2)か、より精度の高いOpenAIの埋め込みAPIを使ってテキストをベクトル化します。生成したベクトルはファイルにキャッシュしておき、以降の検索では再計算せずに読み出して高速に類似度(通常はコサイン類似度)を計算します。ベクトル検索自体は単純な行列演算や既存のベクトル検索ライブラリ(FAISSなど)へ置き換え可能で、スケールに応じて拡張できます。設計のポイントは、外部APIへの依存を選択式にすることでコストと性能のバランスを取れる点、そしてデータ収集から埋め込み生成、検索までを分かりやすいスクリプト群(crawl.py / demo.py)で完結させている点です。要するに、研究用途やプロトタイプ作成に適した「軽量で実践的」なパイプラインになっています。
プロジェクトの構成
主要なファイルとディレクトリ:
- LICENSE: file
- README.md: file
- crawl.py: file
- demo.py: file
- requirements.txt: file
…他 1 ファイル
(主な用途)
- crawl.py: OpenReview等から論文を取得するクローラ。取得対象や保存形式はREADMEの指示に従って設定。
- demo.py: キャッシュ済み埋め込みを読み込み、テキストクエリや例示論文を使って類似度計算およびランキングを実行する簡易デモ。
- requirements.txt: 依存パッケージ(sentence-transformersやrequests、numpy等が想定されます)。
使い方の概略
- 依存関係をインストール:pip install -r requirements.txt
- crawl.pyで対象会議や期間の論文メタデータを収集。
- 埋め込みを生成(ローカルモデルかOpenAI APIを選択)。生成したベクトルはキャッシュされる。
- demo.pyで検索クエリを投げ、コサイン類似度に基づいて関連論文を取得。
(注意点)
- OpenAIを利用する場合はAPIキーが必要で課金が発生します。
- 大量データの高速検索にはFAISSなどの外部ベクトルDB導入を検討してください。
まとめ
シンプルで導入しやすい、論文向けセマンティック検索のプロトタイプ。
リポジトリ情報:
- 名前: SearchPaperByEmbedding
- 説明: 説明なし
- スター数: 78
- 言語: Python
- URL: https://github.com/gyj155/SearchPaperByEmbedding
- オーナー: gyj155
- アバター: https://avatars.githubusercontent.com/u/66156334?v=4
READMEの抜粋:
Paper Semantic Search
Find similar papers using semantic search. Supports both local models (free) and OpenAI API (better quality).
Features
- Request for papers from OpenReview (e.g., ICLR2026 submissions)
- Semantic search with example papers or text queries
- Support embedding caching
- Embed model support: Open-source (e.g., all-MiniLM-L6-v2) or OpenAI
Quick Start
pip install -r requirements.txt
1. Prepare Papers
from crawl import crawl_papers
crawl...