benjaminchiang

CS398VL GAE 2

May 12th, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.92 KB | None | 0 0
  1. import requests, json
  2.  
  3. apikey = 'Something'
  4. req = requests.request('GET', 'http://access.alchemyapi.com/')
  5.  
  6. showSourceText = '0'
  7.  
  8. def UrlKeywords(url):
  9.     url = 'http://access.alchemyapi.com/calls/url/URLGetRankedKeywords'
  10.     payload = {'apikey': apikey, 'url': url, 'outputMode': 'json', 'sentiment': '1', 'showSourceText': showSourceText}
  11.     r = requests.post(url, params=payload)
  12.     result = json.loads(r.text)
  13.     return result#['keywords']
  14.  
  15.  
  16. def Entities(s):
  17.     url = 'http://access.alchemyapi.com/calls/text/TextGetRankedNamedEntities'
  18.     payload = {'apikey': apikey, 'text': s, 'outputMode': 'json', 'sentiment': '1', 'disambiguate': '1','coreference':'1', 'quotations':'1', 'showSourceText': showSourceText}
  19.     r = requests.post(url, params=payload)
  20.     result = json.loads(r.text)
  21.     return result['entities']
  22.  
  23. def Keywords(s):
  24.     url = 'http://access.alchemyapi.com/calls/text/TextGetRankedKeywords'
  25.     payload = {'apikey': apikey, 'text': s, 'outputMode': 'json', 'sentiment': '1', 'showSourceText': showSourceText}
  26.     r = requests.post(url, params=payload)
  27.     result = json.loads(r.text)
  28.     return result['keywords']
  29.  
  30. def Taxonomy(s):
  31.     url = 'http://access.alchemyapi.com/calls/text/TextGetRankedTaxonomy'
  32.     payload = {'apikey': apikey, 'text': s, 'outputMode': 'json', 'showSourceText': showSourceText}
  33.     r = requests.post(url, params=payload)
  34.     result = json.loads(r.text)
  35.     return result["taxonomy"]
  36.  
  37. def Concepts(s):
  38.     url = 'http://access.alchemyapi.com/calls/text/TextGetRankedConcepts'
  39.     payload = {'apikey': apikey, 'text': s, 'outputMode': 'json', 'showSourceText': showSourceText}
  40.     r = requests.post(url, params=payload)
  41.     result = json.loads(r.text)
  42.     return result["concepts"]
  43.  
  44. def cleanEntity(s):
  45.     EntDict = {}
  46.     for i in Entities(s):
  47.         if float(i['relevance']) > .60:
  48.             (type, text) = (str(i['type']), str(i['text']))
  49.             try:
  50.                 a = EntDict[type]
  51.                 a.append(text)
  52.                 EntDict[type] = a
  53.             except:
  54.                 EntDict[type] = [text]
  55.     return EntDict
  56.  
  57. def GenerateSummary(s):
  58.     EntDict = cleanEntity(s)
  59.     (Con, Top) = cleanTaxonomy(s)
  60.     character = ""
  61.     topic = ""
  62.     relavance = ""
  63.     nb = 0
  64.     for i in Con:
  65.         if nb == 0:
  66.             relavance = relavance+' '+i
  67.         elif (nb+1==len(Top)):
  68.             relavance = relavance+' and '+i+'.'
  69.         else:
  70.             relavance = relavance+', '+i
  71.         nb = nb+1
  72.     nb = 0
  73.     for i in Top:
  74.         if nb == 0:
  75.             topic = topic+' '+i
  76.         elif (nb+1==len(Top)):
  77.             topic = topic+' and '+i+'.'
  78.         else:
  79.             topic = topic+', '+i
  80.         nb = nb+1
  81.     nb = 0
  82.     for i in EntDict['Person']:
  83.         if nb == 0:
  84.             character = character+' '+i
  85.         elif (nb+1==len(EntDict['Person'])):
  86.             character = character+' and '+i+'.'
  87.         else:
  88.             character = character+', '+i
  89.         nb = nb+1
  90.     return "The text is on the topic of" + topic + "It involves character" + character + ' And it is relevant to'+ relavance
  91.  
  92. def cleanKey(s):
  93.     EntDict = {}
  94.     neg = []
  95.     pos = []
  96.     neu = []
  97.     for i in Keywords(s):
  98.         if float(i['relevance']) > .60:
  99.             (sentiment, text) = (str(i['sentiment']['type']), str(i['text']))
  100.             EntDict[text] = sentiment
  101.             if sentiment == 'negative':
  102.                 neg.append(text)
  103.             elif sentiment == 'neutral':
  104.                 neu.append(text)
  105.             else:
  106.                 pos.append(text)
  107.     print pos
  108.     print neu
  109.     print neg
  110.     return EntDict
  111.  
  112. def cleanTaxonomy(s):
  113.     Con = []
  114.     Top = []
  115.     for i in Concepts(s):
  116.         if float(i['relevance']) > .8:
  117.             Con.append(str(i['text'] ))
  118.     for i in Taxonomy(s):
  119.         t = str(i['label'])
  120.         t = t[t.rfind('/')+1:]
  121.         Top.append(t)
  122.     return (Con, Top)
Advertisement
Add Comment
Please, Sign In to add comment