def testConstruct(self): request = self.request self.assertEqual(self.URL, request.getUrl()) self.assertIsNotNone(request.getParams()) params = request.getParams() self.assertEqual('key' in params.keys(), True) self.assertEqual(params['key'], self.KEY) self.assertIsNotNone(request.getTimeout()) self.assertEqual(self.TIMEOUT_DEFAULT, request.getTimeout()) extraHeaders = ["Accept: application/json"] request2 = meaningcloud.LanguageRequest(self.KEY, txt=self.text, extraheaders=extraHeaders) self.assertIsNotNone(request2.sendReq()) otherparams = {'key2': 'my_key2'} request3 = meaningcloud.LanguageRequest(self.KEY, txt=self.text, extraheaders=extraHeaders, otherparams=otherparams) self.assertIsNotNone('key2' in request3.getParams().keys(), True) self.assertEqual(request3.getParams()['key2'], 'my_key2') url = 'https://en.wikipedia.org/wiki/Star_Trek' request4 = meaningcloud.LanguageRequest(self.KEY, url=url, extraheaders=extraHeaders, otherparams=otherparams) self.assertIsNotNone('url' in request4.getParams().keys(), True) self.assertEqual(request4.getParams()['url'], url) file = self.RESOURCES_DIR + 'file.txt' request5 = meaningcloud.LanguageRequest(self.KEY, doc=file, extraheaders=extraHeaders, otherparams=otherparams) self.assertIsNotNone('doc' in request5.getParams().keys(), False) doc = request5._file['doc'].read().decode('utf-8') request5._file['doc'].close() aux_doc = open(self.RESOURCES_DIR + 'file.txt', 'rb') aux_conten = aux_doc.read().decode('utf-8') aux_doc.close() self.assertEqual(aux_conten, doc) return request
def detectLanguage(text, get_name=False): language = '' # We are going to make a request to the Language Identification API print("\tDetecting language...") lang_response = meaningcloud.LanguageResponse(meaningcloud.LanguageRequest(license_key, txt=text).sendReq()) if lang_response.isSuccessful(): langs = lang_response.getLanguages() if langs: language = lang_response.getLanguageCode(langs[0]) if not get_name else lang_response.getLanguageName(langs[0]) else: print("\tOops! Request to detect language was not succesful: (" + lang_response.getStatusCode() + ') ' + lang_response.getStatusMsg()) return language
def analyzeText(text): global index_count print("Identifying language for text #%s" % str(index_count)) # this is where we are going to store our results language_code = "" language_name = "" try: # We are going to make a request to the Language Identification API request = meaningcloud.LanguageRequest(license_key, txt=text, server=server) setRequestSource(request) response = meaningcloud.LanguageResponse(request.sendReq()) if response.isSuccessful(): lang = response.getFirstLanguage() if lang: language_code = response.getLanguageCode(lang) language_name = response.getLanguageName(lang) else: if isBlockingErrorType(response.getStatusCode()): raise ValueError( "Something went wrong in the MeaningCloud request!: (" + response.getStatusCode() + ") " + response.getStatusMsg() ) else: print( "Oops! The request to Language Identification for text #" + str(index_count) + " was not succesful: (" + response.getStatusCode() + ") " + response.getStatusMsg() ) language_code = ( "ERROR (" + response.getStatusCode() + "): " + response.getStatusMsg() ) except ValueError as e: raise ValueError(str(e)) index_count += 1 return pd.Series([language_code, language_name])
# CLASS API CALL # class_response = meaningcloud.ClassResponse( # meaningcloud.ClassRequest(license_key, txt=text, model=model).sendReq()) # SENTIMENT API CALL # sentiment_response = meaningcloud.SentimentResponse( # meaningcloud.SentimentRequest(license_key, lang='en', txt=text, txtf='plain').sendReq()) # GENERIC API CALL # generic = meaningcloud.Request(url="url_of_specific_API",key=key) # generic.addParam('parameter','value') # generic_result = generic.sendRequest() # generic_response = meaningcloud.Response(generic_result) # We are going to make a request to the Language Identification API lang_response = meaningcloud.LanguageResponse(meaningcloud.LanguageRequest(license_key, txt=text).sendReq()) # If there are no errors in the request, we will use the language detected to make a request to Sentiment and Topics if lang_response.isSuccessful(): print("\nThe request to 'Language Identification' finished successfully!\n") languages = lang_response.getLanguages() if languages: language = lang_response.getLanguageCode(languages[0]) print("\tLanguage detected: " + lang_response.getLanguageName(languages[0]) + ' (' + language + ")\n") else: print("\tNo language detected!\n") # We are going to make a request to the Lemmatization, PoS and Parsing API parser_response = meaningcloud.ParserResponse( meaningcloud.ParserRequest(license_key, txt=text, lang='en').sendReq())