728x90
기술경영 분야에서 주로 활용하는 방법 중 하나가 특허분석이다.
과거에는 특허분석에 있어서 USPTO에서 쉽게 특허정보를 추출할 수 있었지만 최근 들어 API를 요청한 후 접근하여 데이터를 뽑아야 하는 상황이다.
https://patentsview-support.atlassian.net/servicedesk/customer/portal/1/group/1/create/18
해당 링크를 통해 USPTO Patent view를 통해서 개인만의 API key 를 얻을 수 있다.
이후 과정은 크롤링하는 과정이라고 생각하는게 편하다.
json으로 접근해서 쿼리식을 작성한 후에 데이터를 얻을 수 있다.
Github에 다양한 Patent View API wrapper와 관련된 코드를 참고할 수 있고 내가 참고한 깃허브 코드 링크는 아래 첨부한다.
https://docs.ropensci.org/patentsview/index.html
R언어에 존재하긴 하나 꽤나 오류가 많은 편이다(비추)
내가 작성한 코드를 공유하자면
import requests
import json
import pandas as pd
import urllib.parse
api_key = # 본인이 발급받은 Key 를 사용할 것
def fetch_page(query_url, page, api_key):
options = {#사용자지정}
url = query_url + '&f=' + json.dumps(fields) + '&o=' + json.dumps(options)
response = requests.get(url, headers={"X-Api-Key": api_key})
if response.status_code == 200:
return response.json()
else:
return None
# Your existing code to build the query
query = {
# 본인이 작성한 쿼리
]
}
fields = #본인이 작성한 Field
query_string = json.dumps(query)
encoded_query = urllib.parse.quote(query_string)
base_url = 'https://api.patentsview.org/patents/query?q='
query_url = base_url + encoded_query
# Initialize an empty list to store DataFrames
dataframes = []
# Initialize a variable for the current page
current_page = 1
# Loop to fetch each page
while True:
data = fetch_page(query_url, current_page, api_key)
if data and data.get('patents'):
# Convert the data to a DataFrame
df = pd.DataFrame(data.get('patents'))
dataframes.append(df)
# Increment the page number for the next request
current_page += 1
else:
# Exit the loop if there are no more results
break
# Concatenate all DataFrames into a single DataFrame
all_patents = pd.concat(dataframes, ignore_index=True)
# Save the complete DataFrame to a CSV file
csv_file_path = 'all_patents.csv'
all_patents.to_csv(csv_file_path, index=False)
print(f"Data successfully saved to {csv_file_path}")
https://patentsview.org/apis/api-query-language
쿼리식은 해당 링크에서 아주 잘 설명해준다
잘 나오긴 한 것 같다.
728x90
'T&DI LAB > 토픽모델링' 카테고리의 다른 글
USPTO Patent View API에서 특허 데이터 추출 후 전처리하기 (0) | 2024.01.15 |
---|---|
STM 실습 (4) 토픽모델링의 해석 / 의의와 한계 (1) | 2023.11.15 |
STM 실습 (3) 토픽모델링 적용 (1) | 2023.11.15 |
STM 실습 (2) 데이터 가공 (0) | 2023.11.14 |
STM 실습 (1) 데이터 탐색 및 목표 설정 (1) | 2023.11.14 |