迷走ブログ

ファウスト的衝動を抱き、迷走している、凡人による気まぐれブログです。

【python】プログラミング初心者がデータ加工の練習として知財データの可視化を試みた

はじめに

f:id:yktmmrmtoosa03:20210922133844p:plain

 

最近、データ分析に興味があるため、今回は企業分析も兼ねてとある企業の特許出願について分析をしてみました。

 

僕は非エンジニアのしがない会社員であり、プログラミング初心者であるため、あたたかな目でお読みいただければ幸いです。

 

 こんな人におすすめ 

  • Pythonで特許データを加工したい人
  • Python初心者の人
  • 企業の研究傾向を知りたい人

 

特許データをどこから持ってくるか

公開されている特許データについては、様々な方法で得ることができる様です。その中でも、お金を掛けずにJplat-patから取得するという方法があります。

 

今回は、Jplat-patを利用しました。なお、ググると、ぼくのように特許データをお金をかけずに集めようとする方がいましたので、こちらの記事も参考にしました。

【特許分析】Pythonでお金を掛けずにパテントマップを作ってみた - Qiita

 

ただし、結局上記に書かれている方法で真似て加工しても勉強にならないと考えたため、やり方を変えて、一からデータを集めるところから考えました。

 

大まかな方針

まず、Jplat-patから集めることは集めますが、上記のサイトのようにhtmlとして保存するのではなく「一覧印刷」を「選択」して、直接手作業でエクセルに張り付け、保存することにしました。

 

次に、保存したエクセルを読み込んで加工、分析、可視化という流れにしました。

 

もちろん、htmlに出力する方がスマートですが、ちょっとそこは別の方法で強行突破してしまいました。本当はスクレイピングをしたいところですが、それは禁止されているため諦めました。

 

また、今回は特定の企業について知りたいため、そこまでの件数がないという前提ですので、この方法でも問題ないかなと思っていました。

 

行ったこと

Jplat-patからデータを集める

まず、Jplat-patで今回調べたい企業について、ググりました。

そう、僕が知りたいのは、OPTiMさんの特許戦略なので、「出願人/権利者/著者所属」に「オプティム」と追加で「出願人/権利者住所」に「佐賀」を選択することで検索しました。

 

f:id:yktmmrmtoosa03:20220110003241p:plain

jplat-patの検索画面

 

この時にはじめ、オプティムだけで調べると、関係ない会社も含まれてしまっていたため、住所も加えて検索を試みました。

 

その際に初めて知ったのですが、OPTiMは佐賀に登記しているみたいですね。

f:id:yktmmrmtoosa03:20220110003543p:plain

一覧印刷ボタンの場所

 

f:id:yktmmrmtoosa03:20220110003901p:plain

一覧印刷の表示画面

一覧印刷のボタンを押すと、「一覧印刷」の画面へとランディングします。そこで、これらの表示された結果を選択して、下まで範囲選択しました。

 

次に、エクセルにその選択した結果を貼り付けます。

f:id:yktmmrmtoosa03:20220110004712p:plain

エクセルに張り付けた

ここでデータが集まりましたので、とりあえずはよしとします。

最終的に筆頭のFIが分かればいいので、「他」のところはちょっと無視をすることに決めました。

 

エクセルに張り付けたデータの加工を試みる

まず、Jupyter notebook上にてデータを読み込みました。

以下が出力結果となります。

 

gistf62ed5b8097ee9def7501c6cf9251c0a

 

エクセルに張り付けた時点で気が付いてはいましたが、同じ特許に付与されている複数のFIのところがやはり複数行に渡ってしまっており、このままでは困りました。

 

しかし、上述で述べた通り、とりあえず、今回はFIを細かく分析するということは主眼においていないので、強行突破として、NaN部分を含む行を取っ払ってしまうことにしました。

 

gistf0f718d1232935e5c3647d2fd04c298f

 

そして、次に、出願日のところを加工していきます。日という細かな単位は必要なさそうなので、出願年だけを取り出していきました。

 

可視化を試みる

ここまでで、とりあえず出願の推移を時系列にまとめることができそうなので、可視化をしました。

 

可視化のために使用しているのは、plotlyにしました。僕の中で今もっともあついライブラリーであり、綺麗なグラフを作成できるので好きです。

 

f:id:yktmmrmtoosa03:20220110010943p:plain

OPTiMの国内特許出願の推移

次に、筆頭のFIを取り出して行こうと思います。

FIのタームの分類とかは正直すべて理解しきれていない部分もあるのですが、とりあえず、メイングループを取り出していきました。

 

gist1f434f0203b25e7683a702cbbd8fba11

 

うまくFIの部分をもとのデータに結合するところまでいっきに進めました。

 

ここからは、FIの可視化をしていきます。

まずは、FIの付与されている合計値が高いものからソートして棒グラフで可視化しました。

 

f:id:yktmmrmtoosa03:20220110031137p:plain

付与数の多いFIトップ10

 

やはり、プログラムに関する技術が強みのようですね。

 

まあ、そんなことは会社のHPを読めばはやいんでしょうが、ここはPythonの勉強という建前上、細かいことは気にしないでいきます(笑)

 

次に、上記の付与数の多さが直ちに会社にとって重要な技術とイコールだとは限らないため、出願年も合わせてわかるような可視化を色々と試してみました。

 

f:id:yktmmrmtoosa03:20220110031624p:plain

可視化の試み1

まず、棒グラフで引き続き可視化してみました。

プログラムに関する技術はやはりコンスタントに出願していることが把握できそうです。

 

f:id:yktmmrmtoosa03:20220110031713p:plain

可視化の試み2

次に、散布図的な表現を試みました。

これは、縦軸にFI、横軸に特許番号を並べてみました。

その上で、それぞれの軸の値が大きいものを基準にソートしています。

 

ここで行いたかったのは、出願年が変化することに強みとなる技術が変化しているのかどうかを把握したかったという意図がありました。

 

正直、どのように可視化すればよいのか判然としないため、とりあえずこれで良しとしました。

 

ここにきて、衝撃の事実が判明!

Jplat-patには、「分類コードランキング」なる機能が実装されていることをいまさらながら気が付きました(笑)

 

おい、まじですか、という感じですね。

 

表示結果のファイルの出力は、一気に数百件などできないという仕様なのに、なぜにここに集計機能を設けているのか。。。

 

よくみると、筆頭だけでなくすべての付与されているFIの数をカウントしているようなので、こちらを可視化した方がより正確であると思いましたが、精根尽き果てたため、断念。

 

とりあえず、いつの日かのために先ほどと同じようにエクセルにコピペし保存しておきました。

f:id:yktmmrmtoosa03:20220110034623p:plain

fiの解説

 

商標のデータを可視化する

次に、特許の時と同様に商標のデータをコピペしてきます。

検索式も特許と同様に「出願人/権利者/名義人」に会社名、「出願人/権利者/名義人住所」に登記されている場所を指定して検索しました。

 

あとは特許のときと同じような処理を繰り返しましたのでここでは省略します。

 

f:id:yktmmrmtoosa03:20220110040144p:plain

商標出願の推移

 

OPTiMが東証一部に上場したのが2015年らしいのですが、やはりその前後で一気にサービス名や商品名を表示する商標の出願が増加しています!

 

特許の時もそうですが、やはり爆発的に伸びる会社はその前後で特許や商標へお金をかけることができるようになるのですね

 

また面白いのが、特許の出願数が減るのに呼応するかのように、2015~2018年くらいの商標の出願数も落ち込んでいるような印象が見受けられます。

 

サービスの過渡期というか、方向転換でもあったのでしょうかね。

 

参考文献

おわりに

pythonの使い手におれはなる!