Google ColabでPatentfieldAPIを使用した類義語抽出
はじめまして、Patentfieldの公式noteです。
この記事では、Patentfieldの類似キーワード検索をAPIで利用する方法について、解説します。
1.類似キーワード検索とは
入力したキーワードに対して、機械学習によって得られた類似度の高いキーワードを検索できるPatentfieldの機能です。日本語・英語に対応しています。
Patentfieldでは、数千万件の公開済み特許公報を学習しているので、特許検索シーンに最適な類義語や同義語を探すことができます。
2.事前準備
・PatentfieldのAPIトークン(APIトークンがなくても、実行環境の構築までは可能です)
※PatentfieldのAPIサービスは有料オプションですが、無料トライアルも随時受付しています。ご興味あれば、APIトークンを発行しますので、下記URLからぜひお問合せください。
https://patentfield.com/apply#/
3.プログラミング言語、開発環境
・プログラム言語:Python
・開発環境:Google Colab
Google Colab(名称:Google Colaboratory)は、ブラウザベースの無料の開発環境で、Googleアカウントがあればインストール不要で、Pythonプログラミングを簡単に始めることができます。
https://colab.research.google.com/
4.作成したもの
今回作成したものを実行すると、以下のような出力が得られます。
キーワードを入力すると、指定した取得件数に応じて、右側に検索結果の類似キーワードと類似度スコアが表示される簡単なWEBアプリケーションです。
Google Colab環境でPythonを使用して、PatentfieldのAPIにアクセスし、Gradioを使ってWebアプリ化しています。
Gradioは、機械学習モデルのデモを行うWebアプリケーションを簡単に作ることができるPythonのライブラリです。
https://www.gradio.app/
5.実装
Google Colabでの実行手順は、次の通りです。
(1)ライブラリのインストール
# ライブラリインストール
!pip install requests
!pip install gradio
(2)ライブラリインポート
# ライブラリインポート
import os
import requests
import gradio as gr
import pandas as pd
from datetime import datetime, timedelta, timezone
(3)Googleドライブマウント
APIから取得したデータをCSVファイルとして取得するために、Googleドライブをマウントします。
# Googleドライブマウント
from google.colab import drive
drive.mount('/content/drive')
(4)CSVファイル保存関数
# CSVファイル保存関数
def save_csv_to_drive(df, prefix):
# タイムゾーンの生成
JST = timezone(timedelta(hours=+9), 'JST')
timestamp = datetime.now(JST).strftime("%Y%m%d%H%M%S")
# CSVファイル名を生成
csv_filename = f"{prefix}_{timestamp}.csv"
# Googleドライブの保存先パスを設定
drive_path = "/content/drive/My Drive/"
full_path = os.path.join(drive_path, csv_filename)
# DataFrameをCSVファイルとして保存
df.to_csv(full_path, index=False, encoding="cp932", errors="ignore")
return full_path
(5)類似キーワード検索
ここでAPIに対してリクエストを送り、APIからのレスポンスデータを処理しています。
# 類似キーワード検索
def search_similar_keywords(query, access_token, limit):
# Patentfield APIエンドポイント
req_url = 'https://api.patentfield.com/api/v1/patents/search'
# Patentfield APIリクエストヘッダー
req_headers = {'Authorization': 'Token ' + access_token, 'Content-Type': 'application/json'}
# APIパラメータ
req_params = {
'q': query,
'search_type': 'similar_words',
'limit': limit,
'page': 1,
'columns': ['_key', '_score']
}
# API呼出
response = requests.post(url=req_url, headers=req_headers, json=req_params)
# APIレスポンス処理
if response.status_code == 200:
data = response.json()
records = data.get('records', [])
# Pandas DataFrameに変換
df = pd.DataFrame(records)
# CSVファイル保存
prefix = "SimilarKeywords"
csv_filename = save_csv_to_drive(df, prefix)
return str(response.status_code), df, csv_filename
else:
return str(response.status_code), pd.DataFrame(), None
(6)Webアプリ(Gradio)の定義
# Webアプリ(Gradio)定義
with gr.Blocks() as app:
gr.Markdown("類似キーワード検索")
with gr.Row():
with gr.Column():
query = gr.Textbox(label="検索したいキーワード",lines=1, placeholder="検索したいキーワードを入力してください (例:機械学習)")
access_token = gr.Textbox(label="APIアクセストークン",lines=1, placeholder="APIのアクセストークンを入力してください")
limit = gr.Number(30, label="類似キーワード取得件数")
submit = gr.Button("APIリクエスト送信",variant="primary")
reset = gr.Button("リセット")
with gr.Column():
status_code_output = gr.Textbox(label="APIステータスコード", lines=1, interactive=False)
response_output = gr.Dataframe()
download_fpath = gr.Text(label="ダウンロードファイルパス")
submit.click(
fn=search_similar_keywords,
inputs=[query, access_token,limit],
outputs=[status_code_output, response_output, download_fpath]
)
reset.click(
fn=lambda: ["", pd.DataFrame(), ""],
inputs=[],
outputs=[query, response_output, download_fpath]
)
(7)Webアプリ(Gradio)を起動
ここでWebアプリ(Gradio)を起動します。
# Webアプリ(Gradio)起動
app.launch(debug=True, height=1000)
Gradioが起動したら、類似キーワードを検索したいキーワードとAPIアクセストークンを入力して、APIリクエスト送信をクリックしてください。
取得した類似キーワードはGoogleドライブのMy Driveに「SimilarKeywords_{YYYYMMDDhhmmss}.csv」というファイル名で保存されています。
6.おわりに
Patentfieldとは
Patentfieldは、4つの機能(プロフェッショナル検索・データ可視化・AI類似検索・AI分類予測)を組み合わせて、ワンストップで総合的な検索・分析ができる『AI特許総合検索・分析プラットフォーム』です。
無料で検索もできるので、ご興味あればぜひアクセスください。
https://patentfield.com/
PatentfieldのAPIについて
PatentfieldのAPI連携サービスは、情報参照だけではなく、特許検索機能をはじめPatentfieldの各機能をAPI経由で連携することで、社内で運用しているグループウェアへの組み込みや、特許検索・分析の独自アプリケーションの開発が可能になります。
AIセマンティック検索やAI分類予測などのAI機能や、PFスコアや類似キーワードの取得などPatentfieldの多彩な機能を利用して、特許に関わる社内のニーズに合わせて最適なワークフローやアプリケーションを構築できます。
このようにPatentfield APIを使うと、ブラウザ版と同じ機能をAPIを使って実現することができ、社内の独自システムにも容易に組み込むことができます。
次回以降も、特許検索や分析実務で役立つ開発実装例を紹介していきます。
実践的なケーススタディを通じて、みなさまの知財業務変革のヒントになればと思います。
#Python
#GoogleColab
#AI
#Patentfield
#特許
#知財
#知的財産