Guest User

Untitled

a guest
Jul 29th, 2018
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.57 KB | None | 0 0
  1.  
  2.        
  3.  
  4.         def named_entity_recognition(text, lower=True):
  5.             tokenizer = PunktSentenceTokenizer()
  6.             tokenized = tokenizer.tokenize(text)
  7.             '''
  8.             per: Person
  9.             org: Organization
  10.             loc: Location
  11.             '''
  12.             per, loc, org = [set() for _ in range(3)]
  13.             for sentence in tokenized:
  14.                 words = word_tokenize(sentence)
  15.                 tagged = pos_tag(words)
  16.                 ner = ne_chunk(tagged)
  17.                 entities = traverse_ner(ner)
  18.                 for entity in entities:
  19.                     ne = entity[0]
  20.                     ent = entity[1].strip().lower()
  21.                     if ne == 'PERSON':
  22.                         per.add(ent)
  23.                     elif ne == 'ORGANIZATION':
  24.                         org.add(ent)
  25.                     else: # GPE, LOCATION
  26.                         loc.add(ent)
  27.             return (per, loc, org)
  28.  
  29.  
  30.  
  31.  
  32.    
  33.     def _parse_itemscope(scope_tag):
  34.         has_itemscope = Parser._tag_has_attr('itemscope')
  35.         has_itemprop = Parser._tag_has_attr('itemprop')
  36.         itemscopes = scope_tag.find_all(has_itemscope)
  37.         properties = {}
  38.         if any(itemscopes):
  39.             for each in itemscopes:
  40.                 result = Parser._parse_itemscope(each)
  41.                 if result[0]:
  42.                     properties[result[0]] = result[1]
  43.         properties['type'] = urlparse(scope_tag['itemtype'])
  44.         for prop_tag in scope_tag.find_all(has_itemprop):
  45.             if not prop_tag or not prop_tag.attrs:
  46.                 continue
  47.             itemprop = prop_tag['itemprop']
  48.             if prop_tag.name in ['a', 'link']:
  49.                 properties[itemprop] = prop_tag['href']
  50.             elif prop_tag.name == 'meta':  
  51.                 properties[itemprop] = prop_tag['content']
  52.             elif itemprop == 'articleBody':
  53.                 properties[itemprop] = prop_tag.text.strip()
  54.             if not has_itemscope(prop_tag):
  55.                 prop_tag.decompose()
  56.         return (scope_tag.attrs.get('itemprop'), properties)
  57.  
  58.  
  59.  
  60.  
  61.     def establish_connection(self):
  62.         try:
  63.             server = AllegroGraphServer(host = '192.168.1.27',                                 
  64.                                             port = 10035,                                  
  65.                                             user = self.username,                                  
  66.                                             password = self.password)                  
  67.             catalog = server.openCatalog(None)
  68.         except RequestError:
  69.             print("Please run the script again.")
  70.             exit()
  71.         repo = None
  72.         try:
  73.             repo = catalog.getRepository(self.repo , Repository.OPEN)
  74.         except ServerException:
  75.             print("No repository found. Creating repository...")
  76.             repo_name = input("Enter the name of Repository.")
  77.             if repo_name == 'y':
  78.                 repo_name = 'DailyNewsEngine'
  79.             self.repo = repo_name
  80.             catalog.createRepository(repo_name)
  81.             repo = catalog.getRepository(self.repo , Repository.OPEN)
  82.         if repo != None:
  83.             repo = repo.initialize()   
  84.             connection = repo.getConnection()
  85.         self.connection = connection
  86.         return {    'server' : server,
  87.                     'catalog' : catalog,
  88.                     'repository' : repo,
  89.                     'connection' : connection  }
Add Comment
Please, Sign In to add comment