1.ファミリを何とかする(その3)
今回は外国特許のファミリの取得を容易にするための処理方法を紹介したいと思います。
2.今回やろうとしていること
今回やろうとしていることは「J-platpatで表示させたワン・ポータル・ドシエのページの、登録番号の情報だけを抜き出す」ことになります。
手作業としては「J-platpatをアクセスして出願番号、公開番号、登録番号のいずれかを入力、ワン・ポータル・ドシエのページを表示させ、登録番号を含むテキストデータをコピペする」ここまでは手作業です。
プログラムでは、コピペしたテキストデータから登録番号を抽出する処理をします。
J-platpatをアクセスして番号入力すると、ワン・ポータル・ドシエのページを表示させる以下のようなボタンが表示されるはずです。
「OPD」ボタンをクリックすると外国特許を含んだファミリ情報が表示されますので、表示されたページのテキストデータを以下のプログラムの「ワン・ポータル・ドシエ(OPD)照会うんたら・・・」の行にペーストしてください。
前回同様ExcelのClean関数等で改行コードを除くこと、また、特殊な文字("■")もエラーになりますので、特殊文字を含まない範囲でコピペするもしくはSubstitute関数をかける等、無い状態にしておく必要があります。
import re
jplt =["ワン・ポータル・ドシエ(OPD)照会うんたらJP.7776655.B2かんたらJP.6665544.B1うんたらUS.8887766.B2"]
index =0
for item in jplt:
patinf = jplt[index]
idg1='\r\n'.join(re.findall("JP.[0-9]{7}.B[1-2]", patinf))#JP特許全件を抽出し改行コードを挟んで結合する
idg2='\r\n'.join(re.findall("US.[0-9]{7,8}.B[1-2]", patinf))#US特許全件を抽出し改行コードを挟んで結合する
print(idg1)
print(idg2)
print("+++++")
index += 1
上記プログラムを実行すると変数「idg1」に日本特許、「idg2」に米国特許を抜き出すことができます。
プログラムのポイントは正規表現(re)で指定した文字列を全件抽出(findall)する処理で、これがプログラム1行で実現できます。pythonの優れた文字列処理機能であり、種々の応用が利くと思われます。
リストjpltの行(「"・・・",」)を増やせば何件でも一度に変換できます。
jplt =["ワン・ポータル・ドシエ(OPD)照会うんたらJP.7776655.B2かんたらJP.6665544.B1うんたらUS.8887766.B2",
"ワン・ポータル・ドシエ(OPD)照会かんたらUS.9998877.B1うんたらUS.10777666.B2かんたらUS.11666555.B1"]
2-2.ほかの国の特許も抽出する
国を指定する行を追加すれば、ヨーロッパや中国の特許も抽出できます。
”JP.[0-9]{7}.B[1-2]”のうち、
”JP.[0-9]{7}”→ 国記号JPと0~9までの数値7桁
”.B[1-2]”→ 登録符号(B1またはB2)
を示していますので、国記号、桁数、登録符号を各国ごとに修正・追加してください。
例:ヨーロッパ: "EP.[0-9]{7}.B[1-2]"
例:中国: "CN.[0-9]{9}.[BC]"
例:米国再発行: "US.RE[0-9]{5}.E"
3.最後に
一般的な商用の特許データベースではファミリ情報は多くがINPADOCを転用しているものと思いますが、特に日本出願に関してはINPADOCのファミリ情報は不備が多くJ-platpatを1件ずつ見ないといけないケースが少なからず存在します。今回の記事が何らかの助けになれば幸いです。