https://cloud.google.com/translate/docs/advanced/glossary?hl=ko#create_a_glossary
구글 클라우드에서는 용어집이 있고 동의어 집이 있습니다.
용어집은 ko-en 같이 단방향 단어집이고 동의어집은 ko-en-ja-ge 같이 해당 단어를 언어별로 정리한 것 입니다.
동의어 집을 만들기 위해서는 예제에 나와 있듯이 엑셀로 정리 후 csv 파일을 만들어 주어야 합니다.
1번째 줄에 언어 코드를 적어주고 2번째 줄부터 단어를 적어 줍니다.
그렇게되면 sourceLanguage 에 있는것을 기준으로 targetLanguage 로 치환 하게 됩니다.
엑셀에서 csv UTF-8로 저장해 줍니다.
이렇게되면 바로 사용 될 줄 알았는데 UTF-8 BOM 타입이라서 바로 사용이 안되었습니다.
메모장에서 UTF-8 로 다시 저장 해 줍니다.
BOM 타입이면 안됩니다.
이제 cloud console 로 들어갑니다.
curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1/glossaries
명령어를 넣어 기존에 있던 용어집을 확인 합니다.
명령어가 실행되면 어떤 용어집이 있고 용어집의 시작어와 도착어가 무엇인지 등등등이 나와 있습니다.
저같은 경우는 필요없는거 하나를 삭제 해 보겠습니다.
curl -X DELETE \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1/glossaries/glossary-id
명령어가 수행되면 state 에 SUCCEEDED 라고 뜨게 됩니다.
혹시 다른것이 표시된다면 내용을 확인 해 주시고 수정하시면 됩니다.
이제 동의어집 생성을 할 차래인데 용어집은 시작어->도착어의 1:1 구조였는데 동의어집은 배열이라고 보시면 됩니다.
각각의 매칭 단어들이 언어별로 이루어 져 있다고 생각하시면 됩니다.
{ "name":"projects/project-number-or-id/locations/us-central1/glossaries/glossary-id",
"languageCodesSet": {
"languageCodes": ["ko", "en", "fr", "de", "ja", "zh-CN", "zh-TW"]
},
"inputConfig": {
"gcsSource": {
"inputUri": "gs://bucket-name/glossary-file-name"
}
}
}
동의어집 생성 요청용 json 파일을 만듭니다.
버킷은 결과를 받는 버킷이 아니어야 합니다.
동의어집용 파일은 csv 에 utf-8 BOM타입이 아니어야 하구요.
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1/glossaries
위에서 작성한 json 파일명을 확인하여 넣어주시고 명령어를 실행 해 주시면 됩니다.
바로 처리가 안되고 RUNNING 이라고 표시가 됩니다.
operation-id 를 복사해서 내용을 추가적으로 확인해 봅니다.
curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://translation.googleapis.com/v3/projects/project-number-or-id/locations/location-id/operations/operation-id
이전에도 이야기 했지만 location-id 는 버킷이 있는 위치 입니다.
저같은 경우는 us-central1 입니다.
동의어집 생성이 완료 되었다면 결과가 위와 같은 화면으로 표시 됩니다.
지정했던 언어들도 제대로 다 표시 되었습니다.
에러가 뜬다면 내용을 확인하여 수정해 줍니다.
보통 argument 가 이상하다고 하면 UTF-8이 아니거나 BOM 타입이거나 하는 상황 입니다.
{
"sourceLanguageCode": "ko",
"targetLanguageCodes": ["en", "fr", "de", "ja", "zh-CN", "zh-TW],
"glossaries": {
"en": {
"glossary": "projects/project-number-or-id/locations/us-central1/glossaries/glossary-id"
},
"fr": {
"glossary": "projects/project-number-or-id/locations/us-central1/glossaries/glossary-id"
},
"de": {
"glossary": "projects/project-number-or-id/locations/us-central1/glossaries/glossary-id"
},
"ja": {
"glossary": "projects/project-number-or-id/locations/us-central1/glossaries/glossary-id"
},
"zh-CN": {
"glossary": "projects/project-number-or-id/locations/us-central1/glossaries/glossary-id"
},
"zh-TW": {
"glossary": "projects/project-number-or-id/locations/us-central1/glossaries/glossary-id"
}
},
"inputConfigs": [{
"gcsSource": {
"inputUri": "gs://bucket-name-source/input-file-name1"
}
}
],
"outputConfig": {
"gcsDestination": {
"outputUriPrefix": "gs://bucket-name-destination/"
}
}
}
동의어 번역용 json 파일 입니다.
targetLanguageCodes 가 배열로 여러개 들어가고 거기에 매칭되는 용어집 경로도 여러개 들어갑니다.
다만 여기서 동의어 집이기 때문에 용어집 경로는 모두 동일 합니다.
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText
명령어를 실행 해 줍니다.
역시나 json 파일명을 잘 확인 합니다.
RUNNING 상태를 확인하고 아까와 마찬가지로 operation-id를 체크해 줍니다.
아직까지는 RUNNING 상태입니다.
최초에 RUNNING 이고 실제 operation-id를 체크할때만 에러가 나는 경우도 있습니다.
동의어 번역이 완료 되었습니다.
이제 대상으로 삼았던 버킷에 가서 파일을 확인 해 줍니다.
언어코드_translations.txt 가 있고
언어코드_glossary_translations.txt 가 있습니다.
일반번역과 동의어집을 활용한 번역이 항상 2벌 다 나옵니다.
위 포스트에서 적은것과 마찬가지로 용어집(동의어집)을 활용한 번역은 결과가 좋지 못해서 실제로 쓰지 못할것 같습니다.
70%정도는 좋은 결과를 보여줬고 30%정도는 아예 문맥 자체가 어그러지는 결과가 나왔습니다.
'기타' 카테고리의 다른 글
[파이썬]구글 스프레드 시트 번역 (1) (0) | 2022.05.02 |
---|---|
구글 클라우드 번역(4)-머신러닝 번역 (0) | 2022.04.28 |
구글 클라우드 번역(2)-용어집 + 일괄 요청 번역 (0) | 2022.04.27 |
구글 클라우드 번역(1)-계정 및 용어집 (0) | 2022.04.27 |
구글 클라우드 번역(0)-설명 (0) | 2022.04.27 |