1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

J-PlatPat特許検索データの分析

Last updated at Posted at 2022-10-06

 科学技術と関連するWebでの情報調査と分析を行っています。
特許データはJ-PlatPatで収集できます。J-PlatPatは独立行政法人工業所有権情報・研修館が提供する特許検索情報サイトです。特許庁のHPからもアクセスすることができます。

J-PlatPatでは、検索結果をcsvファイルにダウンロードできます。また、検索結果の分類コード(FI)ランキングを画面上で確認でき、コピペでスプレッドシートに保存できます。
さらに、検索された各特許は、全文をPDFファイルとしてダウンロードしたり、請求項と詳細な説明は画面上開いてコピペすることができます。

この記事では、J-PlatPatでの検索結果情報から、

  • 公知年別件数推移
  • 出願人別件数ランキング
  • FI分類コード別件数ランキング

をPythonで可視化しました。

ダウンロードするcsvには要約を含めることもできますので、自然言語処理を用いた分析や機械学習モデルの作成もできます。さらに、各特許の請求項と関連する文章を詳細な説明から抽出することもできるかもしれません。これらの検討は別の記事で紹介します。

今回は、以前属していた食品企業に関係の深い「食用油脂」の特許情報について検索しました。

J-PlatPat検索条件

検索サイト: J-PlatPat
検索論理式: [食用油脂/TI+食用油脂/AB+食用油脂/CL+食用油脂/BI]
TI:題名、AB:要約、CL:請求項、BI:書誌的事項
日付指定: 公知日、20150101〜
検索件数: 500件  *csvにダウンロードできるのは500件まで。超えた場合は、公知年を分けて検索ダウンロードして、結合して分析します。

開発環境

Google Colaboratory ノートブック
python
ランタイムのタイプ: ハードウェア アクセラレータ(None)

Install

プロット作成で日本語が使えるようにjapanize-matplotlibをインストールします。

install
# matplotlibでのplotに日本語を使えるように
!pip install japanize-matplotlib

Import

import
import pandas as pd
import collections     #重複数のカウントに
import matplotlib.pyplot as plt
import japanize_matplotlib
import seaborn as sns
sns.set(font="IPAexGothic")

J-PlatPatからダウンロードしたcsvファイルを読み込んでデータフレームに代入

read_csv
df = pd.read_csv('input/特実_国内文献.csv')
print(df.info())

各列の情報を確認します。

出力結果
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 500 entries, 0 to 499
Data columns (total 14 columns):
 #   Column   Non-Null Count  Dtype  
---  ------   --------------  -----  
 0   文献番号     500 non-null    object 
 1   出願番号     500 non-null    object 
 2   出願日      500 non-null    object 
 3   公知日      500 non-null    object 
 4   発明の名称    500 non-null    object 
 5   出願人/権利者  500 non-null    object 
 6   FI       500 non-null    object 
 7   要約       500 non-null    object 
 8   公開番号     489 non-null    object 
 9   公告番号     0 non-null      float64
 10  登録番号     294 non-null    object 
 11  審判番号     47 non-null     object 
 12  その他      72 non-null     object 
 13  文献URL    500 non-null    object 
dtypes: float64(1), object(13)
memory usage: 54.8+ KB
None

公知年別の件数推移をプロット

公知年別件数の関数定義
def yearnum(yn):
  # 列'公知年’を作成
  yn['公知年'] = yn['公知日'].apply(lambda x: int(str(x)[0:4]))
  # '公知年'と件数をデータフレームに
  c = collections.Counter(df['公知年'])
  yn_c = pd.DataFrame.from_dict(c, orient='index').reset_index()  # データフレームに変換
  yn_c = yn_c.rename(columns={'index': 'year', 0: 'number'})
  yn_c = yn_c.sort_values('year')
  yn_c = yn_c.reset_index(drop=True)
  return yn_c

print(yearnum(df))
出力結果
   year  number
0  2015      64
1  2016      70
2  2017      59
3  2018      64
4  2019      86
5  2020      67
6  2021      48
7  2022      42

棒グラフでプロット

Plot
df_c = yearnum(df)
fig, ax = plt.subplots(figsize=(12, 6))
ax.bar(df_c['year'], df_c['number'])
ax.set_title('食用油脂に関する特許件数推移', fontsize=16)
#ax.set_xticklabels(df_c['year'], rotation=20, ha='right')
ax.set_xlabel('公知年', size = 14, weight = "light")
ax.set_ylabel('件数', size = 14, weight = "light")
plt.show()
fig.savefig("output/patents_num.png")	#plot画像の保存

patents_num.png

出願人別件数ランキングをプロット

出願人別件数の関数定義
def applicantnum(an):
  # '出願人/権利者'と件数をデータフレームに
  c_applicant = collections.Counter(an['出願人/権利者'])
  applicant_most = c_applicant.most_common(10)
  an_c = pd.DataFrame(applicant_most, columns =['applicant', 'number'])
  return an_c

print(applicantnum(df))
出力結果
          applicant  number
0         キユーピー株式会社      86
1      株式会社Jオイルミルズ      75
2            日油株式会社      42
3    日清オイリオグループ株式会社      28
4  日清食品ホールディングス株式会社      19
5          昭和産業株式会社      19
6          不二製油株式会社      17
7        理研ビタミン株式会社      14
8         ミヨシ油脂株式会社      13
9         株式会社ADEKA      12

横棒グラフでプロット

Plot
df_c = applicantnum(df)
fig, ax = plt.subplots(figsize=(10, 6))
ax.barh(df_c['applicant'], df_c['number'])
ax.set_title('食用油脂に関する出願人特許件数ランキング', fontsize=16)
#ax.set_xticklabels(df_c['year'], rotation=20, ha='right')
ax.set_xlabel('件数', size = 14, weight = "light")
ax.set_ylabel('出願人', size = 14, weight = "light")
ax.invert_yaxis()
plt.tight_layout()
plt.show()
fig.savefig("output/applicant_num.png")	#plotの保存

applicant_num.png

FI分類コードランキング

 J-PlatPatの検索結果画面から分類コードランキングを表示できます。
表示された画面の表をエクセルやGoogleスプレッドシートにコピペして、csvファイルに保存することができます。このcsvファイルから読み込んで表で表示します。

FI分類コードランキング
df_fi = pd.read_csv('input/分類コードランキング.csv', index_col=0)
display(df_fi)

食用油脂そのものの開発特許件数と、食用油脂を利用した食品(例えば、ベイカリー、スープ・ソース、肉類、コーヒー、チョコレート)の特許件数などが見て取れます。
FIランキング.png

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?