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.ClassRequest(self.KEY, txt=self.text, model=self.model, extraheaders=extraHeaders) self.assertIsNotNone(request2.sendReq()) otherparams = {'key2': 'my_key2'} request3 = meaningcloud.ClassRequest(self.KEY, txt=self.text, model=self.model, 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.ClassRequest(self.KEY, url=url, model=self.model, 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.ClassRequest(self.KEY, doc=file, model=self.model, 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_content = aux_doc.read().decode('utf-8') aux_doc.close() self.assertEqual(aux_content, doc) return request
def sentiment_calc(Review): try: return mc.SentimentResponse( mc.ClassRequest(license_key, lang='en', txt=Review, txtf='Plain').sendReq) except: return None
def getTextClassification(text, model, num_cats): formatted_categories = '' print("\tGetting " + model[0:len(model) - 3].replace('_', ' ')+ " analysis...") class_response = meaningcloud.ClassResponse(meaningcloud.ClassRequest(license_key, txt=text, model=model, otherparams={'txtf': 'markup'}).sendReq()) if class_response.isSuccessful(): categories = class_response.getCategories() formatted_categories = (', '.join(class_response.getCategoryLabel(cat) + ' (' + class_response.getCategoryRelevance(cat) +')' for cat in categories[:num_cats])) if categories else '(none)' else: print("\tOops! The request to Text Classification was not succesful: (" + class_response.getStatusCode() + ') ' + class_response.getStatusMsg()) return formatted_categories
def get_categorization(self): logger.debug('TextAnalysis.get_categorization()') if self.categorization is None: logger.debug('categorization not set') logger.debug('setting categorization') class_response = meaningcloud.ClassResponse( meaningcloud.ClassRequest( self.license_key, txt=self.text, model=self.model, ).sendReq()) # Save the raw and serialized categorization self.categorization_raw = class_response.getResults() self.categorization = MeaningCloudResponse( self.categorization_raw).categorization() logger.debug(self.categorization) return self.categorization