Jupyter Notebookで特許分析(1)

先の「特許データで自然言語処理」からは少し離れて、ベーシックな特許分析をJupyter Notebookでどう行っていくかについて解説していきます。自然言語処理と異なり、形態素解析のことは考えないので、Windows環境でもとりあえず、anaconda.comからAnacondaをダウンロードしてデフォルト設定でインストールしてしまえば処理を試してみることができます。インストールが終わったら、Jupyter Notebookのショートカットから起動するだけです。

サンプルとして先の記事でも使ったZITの特許データリストを用いた処理を行っていきます。Excel形式でpatentdata.xlsxという名前で予めJupyter Notebookの作業フォルダに保存してあります。

まずは、pandasとNumpyをインポートします

import pandas as pd
import numpy as np
次にデータフレームdf1に準備したExcelファイルを読み込みます。コマンドはpd.read_excel(ファイル名)です。読み込みのパラメータは色々と設定は可能ですが、今回はデフォルト設定で読み込みます。
df1 = pd.read_excel('patentdata.xlsx')
データフレームdf1が正しく作成されたか確認するためにdf1.head()でデータフレームの先頭の内容を確認します。
df1.head()
OKのようですね。
公報番号 出願日 優先日 公開日 IPC FI Fターム 出願人 発明等の名称 要約
0 特開2017-123147 2016-10-18 2015-11-03 00:00:00 2017-07-13 G06T 1/00@AFI(JP);G01B 11/24@ALI(JP) G06T 1/00 315;G01B 11/24 K 2F065 AA03;2F065 AA04;2F065 AA06;2F065 AA19;2F… ザ・ボーイング・カンパニー ロボットを案内するための特徴位置の特定 【課題】構成要素の特徴を視覚的に識別する特徴検出システムを提供する。【解決手段】特徴検出シス…
1 特開2017-120659 2011-02-15 NaN 2017-07-06 G06F 13/00@AFI(JP);G06Q 30/02@ALI(JP);G06K … G06F 13/00 510 C;G06Q 30/02 446;G06Q 30/… 5B084 AA02;5B084 AA12;5B084 AA27;5B084 AA30;5B… サターンライセンシングエルエルシー 広告システムおよび広告方法 【課題】商品の小売の利便性を高めることができる広告システムを得る。【解決手段】本開示の広告シ…
2 特開2017-120655 2015-08-12 NaN 2017-07-06 G06F 13/00@AFI(JP);G06F 13/12@ALI(JP);H04M … G06F 13/00 351 B;G06F 13/00;G06F 13/00 5… 5B084 AA01;5B084 AA24;5B084 AB16;5B084 AB37;5B… 太田崇博 関連ユーザ情報を用いた情報機器間の連携 【課題】図1で示す、情報機器でインターフェースが異なる複数情報機器間で通信をする際に、そのま…
3 特開2017-118550 2012-12-13 NaN 2017-06-29 H04M 1/00@AFI(JP);H04M 11/00@ALI(JP);G08C … H04M 1/00 U;G08C 19/00 H;G08C 1… 2F073 CD11;2F073 GG10;2F073 CC03;2F073 BC02;2F… カシオ計算機株式会社 行動管理装置、行動管理システム、行動管理方法及びそのプログラム 【課題】面倒な操作や持ち歩きの不便さを解消して、行動の管理に関するサービスを受けることができ…
4 特開2017-117456 2016-12-14 2015-12-14 00:00:00 2017-06-29 G08G 1/09@AFI(JP);G08G 1/00@ALI(JP);B60W … G08G 1/09 H;B60W 30/10;B60W 30/182;B60… 3D241 BA15;3D241 BA21;3D241 DC57Z;3D241 DC54Z;… ローベルトボツシユゲゼルシヤフトミツトベシユレンクテルハフツング データ値を受信し、車両を動作させるための方法及び装置 【課題】第1自動走行車両を安全かつ快適に動作させるための方法及び装置を提供する。【解決手段】…
まあ、よくある集計ってことで、先ずは出願年別の件数集計から。一般的な日付データであれば、データフレームに読み込む際に自動的に日付データとして扱われているので、下記のコマンドで年データに出願日データを変換できます。Excel関数でいうところの=year(A2)みたいなものです。
df1['出願日'].dt.year.head()
このように年データが表示されます。
0    2016
1    2011
2    2015
3    2012
4    2016
Name: 出願日, dtype: int64
この年データでグループ化して、公報番号データの数をカウントすると、出願年別の出願件数集計になります。
df1['公報番号'].groupby(df1['出願日'].dt.year).count()
出ましたね。
出願日
2000     1
2001     1
2008     1
2009     1
2011     5
2012    15
2013    13
2014    25
2015    42
2016    17
Name: 公報番号, dtype: int64
さらに、出願人と出願年でグループ化して集計すると、出願人別の出願年別出願件数集計になります。
df1['公報番号'].groupby([df1['出願人'], df1['出願日'].dt.year]).count()
どうでしょう。出願人のデータに関して名前の統一(名寄せ)が上手くいっていないことと、共願人の処理が上手くいっていないことから、若干違和感のある部分はありますが、あっさりした集計としてはこんなものではないでしょうか。
出願人                                     出願日 
みこらった株式会社                               2014    1
                                        2015    1
アイフォーシーイノベーションズインコーポレイテッド               2014    1
アクシスアーベー                                2016    1
アディダスアーゲー                               2012    1
アーマッド・アルサエド・エム・アルガジ                     2015    1
アール・エイ・アイ・ストラテジック・ホールディングス・インコーポレイテッド   2015    1
ア-カムアーベー                                2015    1
イウン、スツ・ファン;チャン、マーク・キット・ジウン              2015    1
インタートラストテクノロジーズコーポレイション                 2015    1
インターナショナル・ビジネス・マシーンズ・コーポレーション           2016    1
インテルアイピーコーポレイション                        2015    2
インテルコーポレイション                            2016    1
インテル・コーポレーション                           2016    1
ウィルマーディング・コミュニケーションズ・エルエルシー             2015    1
ウテエス・ア・デシャン・エ・フィス                       2016    1
エスゼットディージェイアイテクノロジーカンパニーリミテッド           2013    1
オムロン株式会社                                2013    1
カシオ計算機株式会社                              2012    1
キム,ヨンソク                                 2015    1
キヤノンマーケティングジャパン株式会社;キヤノンITソリューションズ株式会社  2016    1
ギガコリアコーリミテッド                            2014    1
クアルコム,インコーポレイテッド                        2014    3
                                        2015    1
グリー株式会社                                 2013    2
グーグルインコーポレイテッド                          2013    2
                                        2014    1
                                        2015    1
コウアヒェ,ノルディン                             2014    1
コーテックインダストリーズプロプライアタリーリミテッド             2015    1
                                               ..
ルノーエス.ア.エス.                             2015    1
ルミラディーエックスユーケーリミテッド                     2014    1
ローベルトボッシュゲゼルシャフトミットベシュレンクテルハフツング        2015    1
ローベルトボツシユゲゼルシヤフトミツトベシユレンクテルハフツング        2016    1
ヴァイアヴィ・ソリューションズ・インコーポレイテッド              2016    2
ヴェルトアナリティクスオサケウフティオ                     2014    1
三星電子株式会社                                2016    1
国立大学法人東北大学;株式会社東芝                       2014    2
国立研究開発法人情報通信研究機構                        2014    1
太田崇博                                    2015    1
富士ゼロックス株式会社                             2016    1
小米科技有限責任公司                              2015    1
日本信号株式会社;国立大学法人埼玉大学                     2012    1
日立マクセル株式会社                              2012    1
旭化成ホームズ株式会社                             2016    1
東芝ライテック株式会社;株式会社東芝                      2012    1
株式会社カカオ                                 2015    1
株式会社ケット科学研究所                            2013    1
株式会社スクウェア・エニックス・ホールディングス                2012    1
株式会社ブリヂストン                              2012    1
株式会社リコー                                 2012    1
株式会社ワイティーエム                             2011    1
株式会社三洋物産                                2012    1
株式会社北電子                                 2011    1
株式会社半導体エネルギー研究所                         2000    1
                                        2001    1
株式会社Agoop                               2013    1
株式会社REALONETECHNOLOGY                   2016    1
華為技術有限公司                                2014    1
華為終端有限公司                                2014    1
Name: 公報番号, Length: 109, dtype: int64
先の記事でも紹介したe-patentの野崎氏の「特許情報分析とパテントマップ作成入門 改訂版」では、Excelを用いた特許分析を紹介していますが、Excelは出願人データにおける共願人のような1項目に複数のデータが入る場合の集計処理は簡単には行うことができません。上記書籍でも出願人データは筆頭出願人のみを抜き出して処理する事例が示されています。Jupyterは比較的簡単なステップでこれらの処理が可能です。また、自然言語処理の記事でも述べましたが、Jupyterは作業がスクリプトとして記録されるため、中身が違うデータに対しても同じ処理を繰り返し適用する(patentdata.xlsxの中身を入れ替えれば、色んな元データから一発で今回の出願年別件数処理を行う)ことができます。ExcelでもVBAを組めばスクリプトとしての記録が出来ないことはないですが、Jupyterのほうが直感的に作業しながら分析処理をスクリプトとして記録していくことができると感じます。
次回以降はJupyterでの出願人データの集計の扱いや、同じく1項目に複数のデータが入る特許分類の集計の扱いについて説明していく予定です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

%d人のブロガーが「いいね」をつけました。