Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests, json
- apikey = 'Something'
- req = requests.request('GET', 'http://access.alchemyapi.com/')
- showSourceText = '0'
- def UrlKeywords(url):
- url = 'http://access.alchemyapi.com/calls/url/URLGetRankedKeywords'
- payload = {'apikey': apikey, 'url': url, 'outputMode': 'json', 'sentiment': '1', 'showSourceText': showSourceText}
- r = requests.post(url, params=payload)
- result = json.loads(r.text)
- return result#['keywords']
- def Entities(s):
- url = 'http://access.alchemyapi.com/calls/text/TextGetRankedNamedEntities'
- payload = {'apikey': apikey, 'text': s, 'outputMode': 'json', 'sentiment': '1', 'disambiguate': '1','coreference':'1', 'quotations':'1', 'showSourceText': showSourceText}
- r = requests.post(url, params=payload)
- result = json.loads(r.text)
- return result['entities']
- def Keywords(s):
- url = 'http://access.alchemyapi.com/calls/text/TextGetRankedKeywords'
- payload = {'apikey': apikey, 'text': s, 'outputMode': 'json', 'sentiment': '1', 'showSourceText': showSourceText}
- r = requests.post(url, params=payload)
- result = json.loads(r.text)
- return result['keywords']
- def Taxonomy(s):
- url = 'http://access.alchemyapi.com/calls/text/TextGetRankedTaxonomy'
- payload = {'apikey': apikey, 'text': s, 'outputMode': 'json', 'showSourceText': showSourceText}
- r = requests.post(url, params=payload)
- result = json.loads(r.text)
- return result["taxonomy"]
- def Concepts(s):
- url = 'http://access.alchemyapi.com/calls/text/TextGetRankedConcepts'
- payload = {'apikey': apikey, 'text': s, 'outputMode': 'json', 'showSourceText': showSourceText}
- r = requests.post(url, params=payload)
- result = json.loads(r.text)
- return result["concepts"]
- def cleanEntity(s):
- EntDict = {}
- for i in Entities(s):
- if float(i['relevance']) > .60:
- (type, text) = (str(i['type']), str(i['text']))
- try:
- a = EntDict[type]
- a.append(text)
- EntDict[type] = a
- except:
- EntDict[type] = [text]
- return EntDict
- def GenerateSummary(s):
- EntDict = cleanEntity(s)
- (Con, Top) = cleanTaxonomy(s)
- character = ""
- topic = ""
- relavance = ""
- nb = 0
- for i in Con:
- if nb == 0:
- relavance = relavance+' '+i
- elif (nb+1==len(Top)):
- relavance = relavance+' and '+i+'.'
- else:
- relavance = relavance+', '+i
- nb = nb+1
- nb = 0
- for i in Top:
- if nb == 0:
- topic = topic+' '+i
- elif (nb+1==len(Top)):
- topic = topic+' and '+i+'.'
- else:
- topic = topic+', '+i
- nb = nb+1
- nb = 0
- for i in EntDict['Person']:
- if nb == 0:
- character = character+' '+i
- elif (nb+1==len(EntDict['Person'])):
- character = character+' and '+i+'.'
- else:
- character = character+', '+i
- nb = nb+1
- return "The text is on the topic of" + topic + "It involves character" + character + ' And it is relevant to'+ relavance
- def cleanKey(s):
- EntDict = {}
- neg = []
- pos = []
- neu = []
- for i in Keywords(s):
- if float(i['relevance']) > .60:
- (sentiment, text) = (str(i['sentiment']['type']), str(i['text']))
- EntDict[text] = sentiment
- if sentiment == 'negative':
- neg.append(text)
- elif sentiment == 'neutral':
- neu.append(text)
- else:
- pos.append(text)
- print pos
- print neu
- print neg
- return EntDict
- def cleanTaxonomy(s):
- Con = []
- Top = []
- for i in Concepts(s):
- if float(i['relevance']) > .8:
- Con.append(str(i['text'] ))
- for i in Taxonomy(s):
- t = str(i['label'])
- t = t[t.rfind('/')+1:]
- Top.append(t)
- return (Con, Top)
Advertisement
Add Comment
Please, Sign In to add comment