🙇‍♂️

AWS × Terraform でつくる特許検索MVP

に公開

背景

特許調査は、関連文献を横断的に調べて比較する作業が多く、時間と労力がかかります。
そこで 「文章で依頼 → 類似特許をリスト化 → 必要に応じて元ソースにジャンプ」 という流れを自動化するMVPを構築しました。
目指すのは、検索プロセスの自動化です。


設計思想と技術選定

1. Infrastructure as Code

  • Terraform を採用。
    → 再現性のあるインフラ構築が可能で、学習コストも比較的低い。
    → AWS CDK ではなく Terraform を選んだのは、YAML/HCLでシンプルに管理したかったからです。

2. ストレージ

  • S3 を利用。
    → フロントエンド(静的HTML/JS)をホスティング。
    → 特許データの正規化JSONやレポートMarkdownも格納。
  • DynamoDB と比較すると検索性は劣りますが、まずは「置く場所」としてシンプルにS3を採用。

3. メタデータ管理

  • DynamoDB を利用。
    → 特許のID、検索クエリ、タイムスタンプなど軽量なメタ情報を保存。
    → 低コストでスケールし、サーバーレスな設計に合う。

4. 検索エンジン

  • Google Custom Search (CSE) を利用。
    → 独自クローリングを作らずに、まずはGoogle Patentsに対して自然言語検索できる。
    → MVP段階なので既存の検索インフラを借りるのが合理的。

5. API 層

  • API Gateway + Lambda を利用。
    → CSE呼び出し、検索結果の正規化処理、S3/DynamoDBへの保存を実装。
    → HTTP APIにしたことでCORS対応も簡単。
    → LambdaはPython 3.12で記述、ライブラリ管理はTerraform + Lambda Layerで統一。

6. ワークフロー制御

  • Step Functions を採用。
    → 「検索 → 特許詳細の収集 → レポート生成」という一連の処理を可視化できる。
    → MVP段階では冗長に見えるが、後でAIによる類似度判定や外部API追加を組み込む余地を残した。

7. 将来的なAI導入

  • MVPではAIはまだ利用していません。
  • 将来的に予定しているのは:
    • Amazon Bedrock Titan Embeddings → 特許文書をベクトル化して類似性スコアリング。
    • OpenAI API → 要約や特徴抽出の比較精度向上。

AIを使わず機械学習で十分な理由

今回のMVPでは「特許の全文検索」「候補特許の一覧化」「請求項の比較」などの処理が中心です。
これらのタスクは、必ずしも最新の大規模言語モデル(LLM)を必要とするものではありません。むしろ、次のような既存の検索・機械学習技術で十分に対応できます。

  1. Google Patents(CSE)による検索

特許全文の検索はすでにGoogleがインデックス化しており、Custom Search APIを利用すれば高度なクエリ検索が可能です。
ここで得られる結果は既に機械学習ベースのランキングが適用されており、基本的な関連性は保証されています。

  1. OpenSearchによるインデックス化と検索

取得した特許データをOpenSearchに投入することで、全文検索やフィルタリングが容易になります。
これは古典的な BM25アルゴリズム などの情報検索モデルを利用しており、十分に高速かつ信頼性があります。

  1. 類似性比較(Embeddingやベクトル検索の利用も可能)

もし「請求項の近さ」を評価したい場合でも、必ずしもAIを使う必要はありません。

文章ベクトル化(TF-IDF, Word2Vec, Sentence-BERT など)

コサイン類似度でのスコアリング
といった機械学習ベースのテキスト類似度手法で多くのケースに対応できます。

  1. AIは「後から差し込める」設計
    MVP段階では「検索・収集・保存・比較」を中心とし、十分に実用的です。
    一方で、将来的にBedrock TitanやOpenAIのLLMを組み込めば「請求項の自然言語要約」「弁理士向けのレポート生成」「自動分類」など高付加価値な機能を後付け可能です。
    そのため、今はAIを無理に入れる必要はなく、まずは既存の機械学習・検索技術で土台を作ることが合理的です。

ユースケース

  • ユーザーが「段差を乗り越え/降りできる軽車両」と入力
  • → Lambda経由でGoogle Patents検索
  • → 結果リストが画面に表示され、クリックでGoogle Patentsの元ページへ遷移
  • → さらにStep Functions経由で特許詳細を収集し、レポートをS3に自動生成

まとめ

  • 「まずはCSE + AWSサーバーレス」で、シンプルな特許検索MVPを構築
  • 設計思想は 拡張性(AI追加を見据えた構造)簡素さ(無駄な自前実装を避ける)

  • OSSとして公開しています。
    GitHubリポジトリ:https://github.com/mailtotakaf/patent-research

Discussion