任意の年の出願件数上位企業を調べる

出願件数の多い企業に対して解析をしたくなると思います。そこで、出願件数上位企業 を調べる方法について説明します。

出願件数上位企業の出力方法

指定したTSVファイル中に出願人として含まれている企業の数を数えて、出願件数の多い 順に出力すれば良いのですが、この目的でlisting.rbを用意しています。

    D:\Patent> ruby listing.rb sample2.tsv --line 30

上の例では、出願件数の多い順か30位までを出願件数と出願人識別番号のセットで出力 します。出力数を指定するオプションが「--line」で指定しなかった場合は上位から20位 までを出力します。

出願人識別番号に対応した出願人・権利者名を得る

出願人識別番号に対応した出願人・権利者名を得る為には、予め対応表を用意しておく 必要があります。この目的で、name2id.rbを用意しています。

    D:\Patent> ruby name2id.rb sample2.tsv > id.lst

デフォルトでは指定したTSVファイル中の出願人識別番号と出願人・権利者名の組を 出力しますので、出力先をファイル(id.lst)とすることで目的とする対応表が得られます。 既に対応表のファイルを持っている場合、オプションで指定して対応表にない出願人識別 番号と出願人・権利者名を追加します。

    D:\Patent> ruby name2id.rb sample2.tsv --old id.lst > new_id.lst

対応表(id.lst)が得られたら、id2name.rbを使用することで出願人識別番号に対応した 出願人・権利者名が得られます。

    D:\Patent> ruby listing.rb sample2.tsv | ruby id2name.rb --file new_id.lst

id2name.rbは使用する対応表をオプション「--file」で指定可能ですが、デフォルト はid.lstになります。対応表にない出願人識別番号があると対応する出願人・権利者名 は得られませんが、特にエラーにはなりません。新しいTSVファイルで解析する際に、 対応表にない出願人識別番号が見つかったら、name2id.rbで対応表を更新すれば良いと 思います。

任意の年に出願された公報を抽出する

後は、解析対象のTSVファイルから指定した年に出願された公報が抽出できれば、それ をlisting.rbの入力にすることで、指定した年の出願件数の上位企業を出力することがで きます。ただし、2000年に出願された出願件数上位企業を調べようとして、以下のように pgrep.rbを使ってもうまく行きません。

    D:\Patent> ruby pgrep.rb 2000 sample2.tsv | ruby listing.rb | ruby id2name.rb 

これはpgrep.rbは2000が含まれている行を出力する機能しかないからで、審査請求日や 登録日に2000が含まれていた場合に区別することができないからです。そこで、出願日の 列だけで抽出できるように、pfgrep.rbを用意しています。

    D:\Patent> ruby pfgrep.rb --year 2000 sample2.tsv | ruby listing.rb | ruby id2name.rb > 2000.dat

実際に作業する場合には、バッチファイルを作成することで効率化が可能です。

file  = ARGV.shift; year1 = ARGV.shift; year2 = ARGV.shift

year1.upto(year2) {|i|
  puts "ruby pfgrep.rb --year #{i} #{file} | ruby listing.rb | ruby id2name.rb > #{i}.dat"} 

上のプログラムをmakebat.rbとして保存しておけば、以下のようにして2000年から2006年 までの出願件数上位10位までのデータが2000.dat~2006.datに得られます。

    D:\Patent> ruby makebat.rb sample2.tsv 2000 2006 > year.bat
    D:\Patent> year

[Powered by FreeBSD Logo]

連絡先:webmaster@nanodesu.jp

Valid XHTML 1.0 Strict