0
1

知財のあれこれをPythonで何とかする

Posted at

1.ファミリを何とかする(その4)

今回は欧州特許庁の「Espacenet」からの特許ファミリ情報の取得作業を容易にするための処理方法を紹介したいと思います。

2.今回やろうとしていること
今回やろうとしていることは「Espacenetで表示させた”INPADOC Family”のページの、登録番号の情報だけを抜き出す」ことになります。
手作業としては「Espacenetをアクセスして出願番号、公開番号、登録番号のいずれかを入力、Familyのページを表示させ、登録番号を含むテキストデータをコピペする」ここまでは手作業です。
プログラムでは、コピペしたテキストデータから登録番号を抽出する処理をします。
Espacenetをアクセスして番号入力しサーチすると、INPADOC Familyのページを表示させる以下のようなボタンが表示されるはずです。
1.jpg

"INPADOC family"ボタンをクリックすると外国特許を含んだ出願の情報が表示されますので、表示されたページのテキストデータを以下のプログラムの「Espacenet・・・」の行にペーストしてください。
なおそのままコピペすると改行コードとダブルクオーテーションマーク(")を含みエラーになるためExcelのClean関数等で改行コードを除きダブルクオーテーションマークはSubstitute関数をかける等で除去しておく必要があります。

qiita1.py
import re
jplt =["Espacenet云々US9998877B1US9998877B1US9998877B1云々US9998877B1云々US10777666B2云々US11666555B1云々JP7776655B2云々JP6665544B1"]

index =0
for item in jplt: 
    patinf = jplt[index]
    idg1 = '\r\n'.join(set(re.findall("JP[0-9]{7}B[1-2]", patinf)))#全JP番号を取得し重複削除し改行を挟み連結
    idg2 = '\r\n'.join(set(re.findall("US[0-9]{7,8}B[1-2]", patinf)))#全US番号を取得し重複削除し改行を挟み連結
    print(idg1)
    print(idg2)
    print("+++++")
    index += 1

上記プログラムを実行すると変数「idg1」に日本特許、「idg2」に米国特許を抜き出すことができます。
(実行結果)
2.jpg
プログラムのポイントは正規表現(re)で指定した文字列を全件抽出(findall)、重複する登録番号の削除(set)、改行コードを挟んだ登録番号の連結('\r\n'.join)で、これがプログラム1行で実現できます。
J-PlatpatのOPDとかもそうですが、単にデータをコピーすると同じ登録番号が重複して存在し面倒なところ、Pythonを使えば1つのコマンドで簡単に重複データを削除できるのはとても助かります。

リストjpltの行(「"・・・",」)を増やせば何件でも一度に変換できます。

qiita2.py
jplt =["Espacenet云々US9998877B1US9998877B1US9998877B1云々US9998877B1云々US10777666B2云々US11666555B1云々JP7776655B2云々JP6665544B1",
       "Espacenet云々US8887766B2US8887766B2US8887766B2云々US8887766B2云々US7776655B2云々US6665544B2云々JP5554433B2云々JP5435435B2"]

(実行結果)
3.jpg

3.最後に
今回の記事が何らかの助けになれば幸いです。

0
1
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
0
1