Skip to content

Commit 2109032

Browse files
💥🔥 rename language translation
1 parent 37a1d1a commit 2109032

File tree

6 files changed

+107
-29
lines changed

6 files changed

+107
-29
lines changed

examples/language_translation_v2.py

Lines changed: 0 additions & 28 deletions
This file was deleted.

examples/language_translator_v2.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# coding=utf-8
2+
import json
3+
from watson_developer_cloud import LanguageTranslatorV2
4+
5+
language_translator = LanguageTranslatorV2(
6+
username='YOUR SERVICE USERNAME',
7+
password='YOUR SERVICE PASSWORD')
8+
9+
# create new custom model
10+
# with open('../resources/language_translator_model.tmx', 'rb') as custom_model:
11+
# print(json.dumps(language_translator.create_model(
12+
# base_model_id='en-fr', name='test_glossary', forced_glossary=custom_model), indent=2))
13+
14+
print(json.dumps(language_translator.get_models(), indent=2))
15+
16+
print(json.dumps(language_translator.get_model('en-es-conversational'), indent=2))
17+
18+
# delete custom model
19+
# print(json.dumps(language_translator.delete_model('13860c86-ec3f-4e60-8cbe-3ef0048f92af'), indent=2))
20+
21+
print(json.dumps(language_translator.translate('Hola, cómo estás? €', source='es', target='en'), indent=2,
22+
ensure_ascii=False))
23+
24+
print(json.dumps(language_translator.identify('Hello how are you?'), indent=2))
25+
26+
27+
print(json.dumps(language_translator.get_identifiable_languages(), indent=2))

watson_developer_cloud/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
from .document_conversion_v1 import DocumentConversionV1
2525
from .dialog_v1 import DialogV1
2626
from .language_translation_v2 import LanguageTranslationV2
27+
from .language_translator_v2 import LanguageTranslatorV2
2728
from .natural_language_classifier_v1 import NaturalLanguageClassifierV1
2829
from .personality_insights_v2 import PersonalityInsightsV2
2930
from .relationship_extraction_v1_beta import RelationshipExtractionV1Beta

watson_developer_cloud/language_translation_v2.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@
1313
# limitations under the License.
1414

1515
"""
16-
The v1 Language Translation service
16+
The v2 Language Translation service
1717
(https://http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/language-translation.html)
1818
"""
1919

20+
import warnings
21+
2022
from .watson_developer_cloud_service import WatsonDeveloperCloudService
2123
from .watson_developer_cloud_service import WatsonInvalidArgument
2224

@@ -25,6 +27,7 @@ class LanguageTranslationV2(WatsonDeveloperCloudService):
2527
default_url = "https://gateway.watsonplatform.net/language-translation/api"
2628

2729
def __init__(self, url=default_url, **kwargs):
30+
warnings.warn('deprecated. Use LanguageTranslatorV2', DeprecationWarning)
2831
WatsonDeveloperCloudService.__init__(
2932
self, 'language_translation', url, **kwargs)
3033

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Copyright 2015 IBM All Rights Reserved.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
"""
16+
The v2 Language Translator service
17+
(https://http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/language-translator.html)
18+
"""
19+
20+
from .watson_developer_cloud_service import WatsonDeveloperCloudService
21+
from .watson_developer_cloud_service import WatsonInvalidArgument
22+
23+
24+
class LanguageTranslatorV2(WatsonDeveloperCloudService):
25+
default_url = "https://gateway.watsonplatform.net/language-translator/api"
26+
27+
def __init__(self, url=default_url, **kwargs):
28+
WatsonDeveloperCloudService.__init__(
29+
self, 'language_translator', url, **kwargs)
30+
31+
def identify(self, text):
32+
"""
33+
Identifies the language of given source text
34+
"""
35+
return self.request(method='POST', url='/v2/identify', data=text, headers={'content-type': 'text/plain'},
36+
accept_json=True)
37+
38+
def get_identifiable_languages(self):
39+
return self.request(method='GET', url='/v2/identifiable_languages', accept_json=True)
40+
41+
def get_models(self, default=None, source=None, target=None):
42+
"""
43+
Get the available models for translation
44+
"""
45+
params = {'default': default, 'source': source, 'target': target}
46+
return self.request(method='GET', url='/v2/models', params=params, accept_json=True)
47+
48+
def create_model(self, base_model_id, name=None, forced_glossary=None, parallel_corpus=None,
49+
monolingual_corpus=None):
50+
if forced_glossary is None and parallel_corpus is None and monolingual_corpus is None:
51+
raise WatsonInvalidArgument('A glossary or corpus must be provided')
52+
params = {'name': name,
53+
'base_model_id': base_model_id}
54+
files = {'forced_glossary': forced_glossary,
55+
'parallel_corpus': parallel_corpus,
56+
'monolingual_corpus': monolingual_corpus}
57+
return self.request(method='POST', url='/v2/models', params=params, files=files, accept_json=True)
58+
59+
def get_model(self, model_id):
60+
return self.request(method='GET', url='/v2/models/{0}'.format(model_id), accept_json=True)
61+
62+
def delete_model(self, model_id):
63+
return self.request(method='DELETE', url='/v2/models/{0}'.format(model_id), accept_json=True)
64+
65+
def translate(self, text, source=None, target=None, model=None):
66+
"""
67+
Translates text from a source language to a target language
68+
"""
69+
if model is None and (source is None or target is None):
70+
raise WatsonInvalidArgument('Either model or source and target must be specified')
71+
72+
data = {'text': text, 'source': source, 'target': target, 'model': model}
73+
74+
# data=data or json=data
75+
return self.request(method='POST', url='/v2/translate', json=data).text

0 commit comments

Comments
 (0)