python 파파고 한일 번역기로 문장 교정 해보기
오늘 거를 대왕의 마지막인데 제가 궁극적으로 보고 있는 궁극적으로 보고 있는 것도 마찬가지입니다. 뭐냐면 번역기를 써서 문장을 교정을 해보는 거예요. 주로 제가 쓰고 있는 건 파파고 번역기를 많이 쓰고 있는데 이 원리가 뭐냐면요. 어떻게 번역기를 통해서 문장 교정이 되냐 라고 하실 수 있겠지만 다른 이유가 있습니다. 바로 파파고의 번역기 특징이기도 한데요. 구글 번역기를 사용해보시면 딱딱한 이상한 말들이 돼요 하지만 팝하고 번역기를 사용하시면 신조어 이런 것에 강합니다. 제가 사용한 바로는 그렇습니다. 많이 사용을 해봤었는데 특히 한국어와 일본어의 번역에 대한 수준은 구글 이상급이라고 단연코 말씀드릴 수 있을 것 같아요.
특히 파파고가 그렇게 번역 기능이 아주 좋아서 특히나 특히 일반적인 언어의 문장을 사용을 했었을 때는 파파고가 높임말까지 지원을 해줍니다. 특히 오탈자나 띄어쓰기 혹은 문장에 뭔가 문장이 어색하고 애매모한 문장들이 있잖아요. 그것도 한국어에서 일본어로 일본어에서 한국어로 번역을 해서 보여주면 교정이 돼서 나옵니다. 깔끔하게 나오는 경우가 많았어요. 아직 지금은 완벽한 수준은 아니겠지만 차후에 괜찮아질 것이다라고 생각을 해서 계속적으로 제가 말한 이런 것들도 계속 테스트를 한번 해보고 있습니다.
문장 교정이 너무 깔끔하게 되기 때문에 나중에 현재 네이버 클로바 스튜디오라고 지금은 클로즈 베타로만 진행을 하고 있죠 나오게 된다면 한번 트라이도 한번 해보고 싶기도 해요. 궁극적인 거는 제가 말하고 있는 구어체와 문어체와 관련됐었던 내용들도 이게 보완을 많이 해줄 수 있는지 그게 궁금해서 그런 차원에서 계속적으로 해보는 거다라고 보시면 될 것 같습니다. 이 파이스 코딩은요 그걸 한번 자동으로 만들어 놨어요. 기존은 셀레늄이고요. 여러분의 네이버 아이디와 비밀번호만 쳐서 그다음에 문장과 관련됐었던 내용만 여기다가 메모장 있죠 거기에다가 입력만 해놓으시면은 다 나옵니다. 어느 정도까지 이 문장을 매끄럽게 만들어주는가 이거에 대해서 파헤칠 수 있어요.
여기서 한 가지 에러가 나왔었던 거는 크롬 드라이브에서의 문제점이 파악이 됐었던 거죠. 크롬 드라이버로 사용하면 특정 유니코드의 문자열은 사용할 수 없다라는 에러 문구가 많이 떠서 이제 그게 이 밑에 있습니다. bmp라는 걸로 해서 어떤 특정 문자열은 지원하지 않는다 이것이 있어서 해결은 다 했습니다. 해결은 해서 최종적으로 완료는 되긴 했는데 그것보다 더 중요한 거는 얼마만큼 문장을 깔끔하게 교정을 해주는 거겠죠. 그걸 계속 한번 테스트도 해보고 그렇게 해서 유의미한 뭔가 결과가 있었다 한다면 차후에 공유를 해드리거나 그런 계기가 있으면 좋겠네요. 여기까지입니다.
#자료수집
from __future__ import print_function
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import os
from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
from googleapiclient.http import MediaFileUpload
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
import warnings
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.common.exceptions import NoSuchElementException,StaleElementReferenceException
from bs4 import BeautifulSoup as bs
import time
import pyperclip
import requests
import datetime
import pymssql
import pandas as pd
from pandas.core.frame import DataFrame
import matplotlib.pyplot as plt
import chromedriver_autoinstaller
import subprocess
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.alert import Alert
import chromedriver_autoinstaller
import subprocess
import shutil
import xlrd
import openpyxl
import pygsheets
import csv
import re
import webbrowser
import os
import sys
import urllib.request
import json
from pandas.io.json import json_normalize
import hashlib
import hmac
import base64
import numpy as np
import autoit #autoit는 반드시 autoit 프로그램이 깔려있어야됨
import pyautogui
from PIL import ImageGrab
try:
from PIL import Image
except ImportError:
import Image
import pytesseract
import cv2
import numpy as np
from google_drive_ocr.application import GoogleOCRApplication
import glob
warnings.filterwarnings('ignore')
try:
shutil.rmtree(r"c:\chrometemp") #쿠키 / 캐쉬파일 삭제
except FileNotFoundError:
pass
subprocess.Popen(r'C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\chrometemp"') # 디버거 크롬 구동
option = Options()
option.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
option.add_argument("--incognito") #추가 (이게 있어야 정상 작동됨, 다만 부분적으로 해결)
option.add_argument("--disable-site-isolation-trials") #추가
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36' #추가
option.add_argument(f'user-agent={user_agent}') #추가
chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0]
try:
driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
except:
chromedriver_autoinstaller.install(True)
driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
driver.maximize_window() #최대창
action = ActionChains(driver) #액션지정
time.sleep(1)
driver.implicitly_wait(10)
#네이버 로그인
#네이버 이동
url = 'https://www.naver.com'
driver.get(url)
time.sleep(5)
driver.implicitly_wait(10)
driver.find_element_by_class_name('link_login').click()
time.sleep(1)
driver.implicitly_wait(10)
#id, pw 입력할 곳 찾기
tag_id = driver.find_element_by_name('id')
tag_pw = driver.find_element_by_name('pw')
driver.implicitly_wait(10)
#id 입력
tag_id.click()
pyperclip.copy('id입력')
tag_id.send_keys(Keys.CONTROL, 'v')
time.sleep(2)
driver.implicitly_wait(10)
#pw 입력
tag_pw.click()
pyperclip.copy('비밀번호입력')
tag_pw.send_keys(Keys.CONTROL, 'v')
time.sleep(2)
driver.implicitly_wait(10)
#로그인 버튼 클릭
login_btn = driver.find_element_by_id('log.login')
login_btn.click()
time.sleep(1)
driver.implicitly_wait(10)
#네이버 로그인 완료
#번역 메모장 열기
n = 7
keywords = ['화왕전']
for keyword in keywords :
file = open('C:/Users/user/raw/literature/키워드_포스팅_'+str(n)+'_'+str(keyword)+'.txt', 'r', encoding='utf-8-sig')
f_result = open('C:/Users/user/raw/literature/키워드_포스팅_'+str(n)+'_'+str(keyword)+'_result.txt', 'w', encoding='utf-8-sig')
old_literature_text = file.read()
# 에러메세지 Message: unknown error: ChromeDriver only supports characters in the BMP
# 특수문자, 정규식으로 한문 제거 이후에 다시 트라이 해보기로 한다.
special_char = '「」≪≫〉〈\/*?"<>|-․()' #특수문자
for c in special_char:
if c in old_literature_text:
old_literature_text = old_literature_text.replace(c, '') # 특수 문자 제거
old_literature_text = old_literature_text.replace("ㆍ", ",") #특수문자 변환
old_literature_text = old_literature_text.replace(":", "는") #특수문자 변환
old_literature_text = re.compile('[一-龥]').sub('', old_literature_text) # 정규식 한문 제거
# 에러메세지 Message: unknown error: ChromeDriver only supports characters in the BMP try 2
#해결색으로 pyperclip으로 바꿔본다. (해결완료)
#target_text_ja = []
#try:
url = "https://papago.naver.com/?sk=ko&tk=ja&hn=1" #한일 번역화
driver.get(url)
time.sleep(1)
driver.implicitly_wait(2)
input_box = driver.find_element_by_css_selector('textarea#txtSource') #문장 넣을것
button = driver.find_element_by_css_selector('button#btnTranslate') #번역 버튼 클릭
x_button = driver.find_element_by_class_name('btn_text_clse___1Bp8a') #초기화 버튼 클릭
switch_button = driver.find_element_by_class_name('btn_switch___x4Tcl') #소스/타겟 언어 바꾸기 버튼 클릭
#text - 리스트에서 하나씩 번역
#for i in content :
#print('원본글:'+str(i)) #원본
#input_box.clear() #초기화
#input_box.send_keys(str(old_literature_text)) #문장 넣기
# click translate button
#해결색으로 pyperclip로 트라이
pyperclip.copy(str(old_literature_text)) #복사
input_box.send_keys(Keys.CONTROL, 'v') #붙여넣기
button.click() #번역 클릭
time.sleep(5)
driver.implicitly_wait(10)
# click switch button
switch_button.click() #바꾸기 클릭
time.sleep(5)
driver.implicitly_wait(10)
#번역된 문장글 긁기
soup = bs(driver.page_source, 'html.parser')
target_text = driver.find_element_by_css_selector('div#txtTarget').text
print(str(target_text)) #번역글 확인
f_result.write(str(target_text)) #번역글 넣기
#target_text_ja.append(target_text)
x_button.click() #초기화(x버튼)
time.sleep(3)
driver.implicitly_wait(10)
print('키워드_포스팅_'+str(n)+'_'+str(keyword)+' 의 한일 번역이 완료되었습니다.')
#except Exception as msg:
# error_msg = "번역기 에러:"+str(msg)
file.close()
f_result.close()
n +=1
time.sleep(5) #5초 쉬기
driver.close()
driver.quit()
'Python' 카테고리의 다른 글
[python] 파이썬 한글 hwp 파일 문서 열기 및 텍스트 추출 (0) | 2022.08.25 |
---|---|
[python] 네이버 블로그 아이디 크롤링 추출 엑셀 가공 (0) | 2022.08.23 |
[python] 정규식 한문 제거 (0) | 2022.08.19 |
[파이썬] 로또 시뮬레이션 생성기 (0) | 2022.08.19 |
[python] 이미지 내 텍스트 자동 삽입 (0) | 2022.08.19 |
댓글