added initial script with squad loading, printing, saving and with example function for google translation, added markdown file with basic setup instructions
This commit is contained in:
parent
9a9f30f5f6
commit
ffc2e6fc51
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
google_api_key.json
|
7
google_translate_howto.md
Normal file
7
google_translate_howto.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Prerequisites
|
||||||
|
Install google SDK from: [https://cloud.google.com/sdk/docs/install](https://cloud.google.com/sdk/docs/install)
|
||||||
|
|
||||||
|
Set up a project in console.google.com
|
||||||
|
Create a service account
|
||||||
|
Create and download a key in json format
|
||||||
|
Export GOOGLE_APPLICATION_CREDENTIALS variable with a path to the key
|
2
requirements.txt
Normal file
2
requirements.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
python-dotenv==0.19.1
|
||||||
|
google-cloud-translate==2.0.1
|
60
squad_translate_google.py
Normal file
60
squad_translate_google.py
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
import json
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
import six
|
||||||
|
from google.cloud import translate_v2 as translate
|
||||||
|
|
||||||
|
def load_squad(filename):
|
||||||
|
with open(filename, "r") as f:
|
||||||
|
squad = json.load(f)
|
||||||
|
|
||||||
|
return squad
|
||||||
|
|
||||||
|
def save_squad(filename, squad):
|
||||||
|
with open(filename, "w") as f:
|
||||||
|
json.dump(squad, f)
|
||||||
|
|
||||||
|
def print_squad(squad, article_limit=2, paragraph_limit=3, qas_limit=5):
|
||||||
|
for article in squad['data'][:article_limit]:
|
||||||
|
print("="*40)
|
||||||
|
print(f"Article title: {article['title']}\n\n")
|
||||||
|
|
||||||
|
for paragraph in article['paragraphs'][:paragraph_limit]:
|
||||||
|
print(f"{paragraph['context']}\n")
|
||||||
|
|
||||||
|
for qas in paragraph['qas'][:qas_limit]:
|
||||||
|
print(f"Question: {qas['question']}")
|
||||||
|
|
||||||
|
print(f"Answers:")
|
||||||
|
for answer in qas['answers']:
|
||||||
|
print(f"\t{answer['text']}")
|
||||||
|
|
||||||
|
print("\n")
|
||||||
|
|
||||||
|
def translate_text(target, text):
|
||||||
|
"""Translates text into the target language.
|
||||||
|
|
||||||
|
Target must be an ISO 639-1 language code.
|
||||||
|
See https://g.co/cloud/translate/v2/translate-reference#supported_languages
|
||||||
|
"""
|
||||||
|
|
||||||
|
translate_client = translate.Client()
|
||||||
|
|
||||||
|
if isinstance(text, six.binary_type):
|
||||||
|
text = text.decode("utf-8")
|
||||||
|
|
||||||
|
# Text can also be a sequence of strings, in which case this method
|
||||||
|
# will return a sequence of results for each text.
|
||||||
|
result = translate_client.translate(text, target_language=target)
|
||||||
|
|
||||||
|
print(u"Text: {}".format(result["input"]))
|
||||||
|
print(u"Translation: {}".format(result["translatedText"]))
|
||||||
|
print(u"Detected source language: {}".format(result["detectedSourceLanguage"]))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
orig_squad = load_squad('./squad-v2-dev.json')
|
||||||
|
# print_squad(orig_squad)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user