不勉強にてxmlって
ブラウザで見られるけど何これ?
と以前思ってました。、、、恥ずかしい
よくよく調べるととても便利そうです。
で、xml形式の特許があると解析に使えそうと思うわけです。
集めてきた特許から、番号や、優先日、出願人とかの情報をささっと一覧にできると
いいよなーと思っていたこともあったので、
google先生に聞くとそんなことずいぶん前からなされているようでした。。。
さて、xml形式の特許が結構簡単に入手できる環境が整ったので
テスト的にスクリプトを作ってみました。
これは同じフォルダにある.xml形式のファイルをを全部読み込んで出願人とかをタブ区切りで出力します。
フランス語とか、エンコでこけるのでアブスとは英語に限定しました。
相当行けてないスクリプト感ただよいますが、一応動いた。のでモチっと改良する予定
#!/usr/bin/env python # -*- coding: utf-8 -*- from xml.etree.ElementTree import * import sys, glob patentlist = glob.glob("./*.xml") f = open("pase_result.txt", "w") f.write("PATENT_NO\tTITLE\tAPPLICANT\tABST\n") for patent in patentlist: tree = parse(patent) root = tree.getroot() patent_no = root[0][0][0][0].text+root[0][0][0][1].text+root[0][0][0][2].text title = root.findall(".//invention-title")[0].text applicants = root.findall(".//orgname") applicant = "" for i in applicants: applicant += i.text+"," abst = root.findall(".//abstract") for i in abst: if i.get("lang") == "eng": l = i.getiterator("p") abstract = "" for i in l: abstract += i.text f.write("%s\t%s\t%s\t%s\n"%(patent_no, title, applicant, abstract)) else: pass f.close()
xmlの階層構造がそもそも勉強に使っていた例に比べるとかなり入り組んでいたのでまだ不具合たくさん出そうです。
がんばると、テキストなのでバラバラにして複数の出願人がどれくらいの頻度出るかとか、簡単に見れそうです。