특허 분석
4359 단어 Python
작업에 특허 조사가 필요하기 때문에 조사 대상의 특허 경향을 파악하기 위해python에서 분석용 간단한 스크립트를 만들어 봤다.
전제 조건
조사 대상 특허의 정보는 J-PlaatPat을 이용해 취득한다.J-PlatPat에서는 검색 결과에 대한 특허 정보를 csv 파일로 내보낼 수 있습니다.csv 파일을 통해 검색 결과를 출력하고 스크립트와 같은 디렉터리에 폴더를 설정하여 이 폴더 아래에 csv 파일을 저장합니다.이번 전문검색에서는 검색 옵션으로'전기차'and'AI'를 지정하고, 출원일을 2019/1/1 이후 얻은 특허 정보로 분석 대상으로 지정했다.
조사 대상 특허의 경향은 출원 건수의 매년 추이와 검색 키워드와 연관된 분야에서 특허 출원 활동에 주력하는 기업에서 포착됐다.전자는 matplotlib으로 도표를 표시했다.후자는 기업당 출원 특허 수를 계산해 출원 특허 수가 많은 톱10을 표시하기로 했다.
각본
만든 스크립트는 다음과 같습니다.
import csv
import glob
import matplotlib.pyplot as plt
def get_filename(dir):
files = glob.glob(dir + "/*")
return files
def get_allpatent(files):
patent = []
for file_name in files:
csv_file = open(file_name, "r", encoding="utf-8", errors="", newline="")
f = csv.reader(csv_file, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True)
header = next(f)
length_line = len(header)
for row in f:
flag = 0
for tmp_patent in patent:
if len(row) < length_line:
flag = 1
elif tmp_patent[1] == row[1]:
flag = 1
if flag == 0:
patent.append(row)
for i in range(len(patent)):
patent[i][5] = patent[i][5].replace('\u3000', '')
return patent
def sort_y_down(data):
for i in range(len(data)-1):
for j in range(len(data)-i-1):
if data[j][1] < data[j+1][1]:
tmp_x = data[j+1][0]
tmp_y = data[j+1][1]
data[j+1][0] = data[j][0]
data[j+1][1] = data[j][1]
data[j][0] = tmp_x
data[j][1] = tmp_y
return data
def get_company(patent):
company = []
for tmp_patent in patent:
flag = 0
i = 0
for tmp_company in company:
if tmp_company[0] == tmp_patent[5]:
company[i][1] += 1
flag = 1
i += 1
if flag == 0:
company.append([tmp_patent[5],1])
sorted_company = sort_y_down(company)
return sorted_company
def sort_x_up(data):
for i in range(len(data)-1):
for j in range(len(data)-i-1):
if data[j][0] > data[j+1][0]:
tmp_x = data[j+1][0]
tmp_y = data[j+1][1]
data[j+1][0] = data[j][0]
data[j+1][1] = data[j][1]
data[j][0] = tmp_x
data[j][1] = tmp_y
return data
def get_year(patent):
year = []
for tmp_patent in patent:
flag = 0
i = 0
year_selected = tmp_patent[2][:4]
for tmp_year in year:
if tmp_year[0] == year_selected:
year[i][1] += 1
flag = 1
i += 1
if flag == 0:
year.append([year_selected,1])
sorted_year = sort_x_up(year)
return sorted_year
if __name__ == '__main__':
# 分析対象特許フォルダ配下のcsvファイルより特許情報を取得
files = get_filename("./分析対象特許")
all_patent = get_allpatent(files)
# 年ごとの出願数をカウント
year_count = get_year(all_patent)
year = [a[0] for a in year_count]
print(year_count)
# 企業の出願数をカウント
company_count = get_company(all_patent)
company = [a[0] for a in company_count]
for i in range(10):
print(company_count[i])
# グラフ表示
plt.plot([a[0] for a in year_count],[a[1] for a in year_count],marker="o")
plt.xticks(fontsize=7,rotation=30)
plt.show()
결실출력 결과는 다음과 같습니다.
[['2019', 999], ['2020', 347], ['2021', 76]]
['トヨタ自動車株式会社', 163]
['株式会社デンソー', 150]
['株式会社半導体エネルギー研究所', 68]
['エルジー・ケム・リミテッド', 63]
['ルノーエス.ア.エス.,日産自動車株式会社', 55]
['信越ポリマー株式会社', 45]
['ダイムラー・アクチェンゲゼルシャフト', 39]
['ソニーセミコンダクタソリューションズ株式会社', 31]
['本田技研工業株式会社', 30]
['株式会社すなおネット', 26]
최후
이번에 출원수 추이와 출원수가 많은 기업이 수출됐고, 특허 정보에도 개요 정보가 담겨 있어 MeCab 등 자연 언어 처리로 검색 키워드 이상에서 업체별 출원 경향을 추출할 수 있다.나도 시간을 내서 이것에 힘써 보고 싶다.
Reference
이 문제에 관하여(특허 분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KKAA86/items/8c91e1ac1ea999f5179e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)