이번 강의는 번역, 메일 쓰기, 오타/문법 수정 등 텍스트를 변형하는 작업들을 다루고 있습니다. Claude, Chat GPT 같은 LLM 기반 서비스들은 성능이 너무 좋아서 웬만한 기존 번역 서비스들 수준 이상이 되는 것 같습니다. 워낙 사용된 데이터가 많으니 오타 수정, 글쓰기 등 목적에 따라 다 쓸 수 있을 것 같습니다. 요즘은 multi-modal로 이미지나 오디오도 인식이 가능하니 다양한 서비스에 접목해보는 것도 좋을 것 같아요.
1. 메일쓰기
prompt = f"""
Translate the following from slang to a business letter:
'Dude, This is Joe, check out this spec on this standing lamp.'
"""
response = get_completion(prompt)
print(response)
"친구야 이건 조다. 이 스탠딩 램프에 관한 스펙 확인해봐" 라는 대화 느낌의 가벼운 문장을 공식적인 이메일 형태로 변환하도록 요청했다.
I am writing to bring to your attention the specifications of a standing lamp that I believe may be of interest to you.
Sincerely, Joe
2. 번역
user_messages = [
"La performance du système est plus lente que d'habitude.", # System performance is slower than normal
"Mi monitor tiene píxeles que no se iluminan.", # My monitor has pixels that are not lighting
"Il mio mouse non funziona", # My mouse is not working
"Mój klawisz Ctrl jest zepsuty", # My keyboard has a broken control key
"我的屏幕在闪烁" # My screen is flashing
]
for issue in user_messages:
prompt = f"Tell me what language this is in a word: ```{issue}```"
lang = get_completion(prompt)
print(f"Original message ({lang}): {issue}")
prompt = f"""
Translate the following text to English \
and Korean: ```{issue}```
"""
response = get_completion(prompt)
print(response, "\n")
문장 입력을 받으면 어느 나라 언어인지 자동 탐지를 하고, 특정 국가(영어 및 한국어) 언어로 번역하는 작업이다. 어느 나라 언어인지 설명하는 건 1개 단어로 하도록 해서 French, Spanish 처럼 나오게 했다. 물론 프롬프트를 날릴 때 간혹 This is Chinese 라고 이게 통하지 않는 경우도 있으니 실제 서비스에서는 별도 알고리즘 처리가 필요하다.
해외 컨퍼런스 영상에 대한 자막 자료가 있다면, 번역해서 중요한 부분을 꺼내주는 용도로 사용할 수도 있을 것 같다.
Original message (French): La performance du système est plus lente que d'habitude. English: "The system performance is slower than usual." Korean: "시스템 성능이 평소보다 느립니다."
Original message (Spanish): Mi monitor tiene píxeles que no se iluminan. English: "My monitor has pixels that do not light up."
Korean: "내 모니터에는 빛나지 않는 픽셀이 있습니다."
Original message (Italian): Il mio mouse non funziona English: My mouse is not working Korean: 내 마우스가 작동하지 않습니다
Original message (Polish): Mój klawisz Ctrl jest zepsuty English: My Ctrl key is broken Korean: 제 Ctrl 키가 고장 났어요
Original message (Chinese): 我的屏幕在闪烁 English: My screen is flickering Korean: 내 화면이 깜박거립니다
3. 오타 수정 및 문법 교정
text = "안녕하세요 저는 홍길동입니다. 1남 1녀의 장남으로 태어난 자로 잉생을 막연하게 살아보니"
prompt = f"proofread and correct this review: ```{text}```"
response = get_completion(prompt)
print(response)
안녕하세요, 저는 홍길동입니다. 1남 1녀의 장남으로 태어난 자로 인생을 막연하게 살아왔습니다.
from redlines import Redlines
diff = Redlines(text,response)
display(Markdown(diff.output_markdown))
이런식으로 redlines 라이브러리를 이용해서 텍스트 차이난 부분을 시각화해서 볼 수도 있다.
4. 포맷 변경 (JSON > HTML 변경)
data_json = { "resturant employees" :[
{"name":"Shyam", "email":"shyamjaiswal@gmail.com"},
{"name":"Bob", "email":"bob32@gmail.com"},
{"name":"Jai", "email":"jai87@gmail.com"}
]}
prompt = f"""
Translate the following python dictionary from JSON to an HTML \
table with column headers and title: {data_json}
"""
response = get_completion(prompt)
print(response)
이런 식으로 JSON 형태로 구성된 데이터도 HTML로 변환할 수 있다. 디자인을 참고할 만한 이미지를 주거나, 추가 설명을 주는 식으로 하면 좀 더 쓸만한 HTML을 만들 수도 있을 것 같다.
외국어로 메일을 쓸 때 초안을 빨리 만들고, 완성본의 문법, 철자 확인을 하는 용도로도 쓸 수 있을 것 같다. 문법 교정은 과제나 자소서 같은 중요 글들에도 사용할 수 있을 것 같다. 생각보다 블로그 같은 걸로 글쓰기에 뛰어드는 사람들이 많은데 글을 쉽게 쓰는 사람은 10%도 안된다. 많은 사람들이 이 툴을 쓰면 글을 좀 더 쉽게 이해하고, 잘 쓰는 데 도움이 될 것 같다. 나도 앞으로 텍스트 형식을 변경하거나, 글을 새로 쓸 일이 있을 때 GPT를 사용해봐야겠다. 생각보다 도움될만한 툴을 얻은 것 같다.