본문 바로가기
Python/Data Process

[안키/Anki 자동화] 영어 단어 뜻 자동화 프로그램 in Python

by 한PU 2024. 9. 4.
728x90
반응형

엑셀의 A열에 영단어를 입력하면 자동으로 B열에 영어 뜻, C열에 한글 뜻을 작성해주는 프로그램을 제작할 것이다.

 

Library:

$ pip install openpyxl requests googletrans==4.0.0-rc1

 

Source code:

import openpyxl
import requests
from googletrans import Translator

# Wordnik API 정보
api_key = 'your_wordnik_api_key'  # Wordnik에서 발급받은 API 키

# 엑셀 파일 불러오기
wb = openpyxl.load_workbook('your_excel_file.xlsx')
sheet = wb.active

# 구글 번역기 객체 생성
translator = Translator()

# A열의 단어를 읽고, B열에 영어 정의, C열에 한글 번역을 추가
for row in range(2, sheet.max_row + 1):  # 첫 번째 행은 보통 헤더이므로 2번째 행부터 시작
    word = sheet.cell(row=row, column=1).value  # A열의 단어 가져오기

    # Wordnik API에서 단어 정의 가져오기
    url = f"https://api.wordnik.com/v4/word.json/{word.lower()}/definitions"
    params = {
        'limit': 1,  # 첫 번째 정의만 가져옴
        'includeRelated': 'false',
        'useCanonical': 'false',
        'includeTags': 'false',
        'api_key': api_key
    }
    response = requests.get(url, params=params)

    if response.status_code == 200 and response.json():
        definition = response.json()[0]['text']  # 첫 번째 정의 가져오기
        sheet.cell(row=row, column=2, value=definition)  # B열에 정의 추가
    else:
        sheet.cell(row=row, column=2, value="Definition not found")  # 오류 시

    # 구글 번역 API로 단어를 한글로 번역하여 C열에 추가
    translation = translator.translate(word, src='en', dest='ko').text
    sheet.cell(row=row, column=3, value=translation)  # C열에 번역 추가

# 엑셀 파일 저장
wb.save('your_updated_excel_file.xlsx')

지피티 센세가 골격을 짜줬다. 입맛에 맞게 변화 시킬 예정이다.

영어 사전은 무료로 제공되는 토큰이 많은 Wordnik API를 사용하고, 한글 사전은 구글 번역 API를 사용할 예정이다.

(파파고 API는 서비스 종료...)

 

두 기능에 대한 API를 요청해놓았다.

한 일주일 걸린댄다.

 

API에 관심 있으신 분들은 아래 링크 참조!

https://developer.wordnik.com/

https://cloud.google.com/translate/?hl=ko

 

https://cloud.google.com/translate/?hl=ko

 

cloud.google.com

 

일주일 뒤에 API key를 받으면 실행되는 모습을 올리도록 하겠다.

728x90
반응형

'Python > Data Process' 카테고리의 다른 글

문제1 - 큰 수의 법칙 (Law of Large Numbers)  (0) 2023.09.14