Esempio n. 1
0
 def getSynset_Ids(self,
                   lemma,
                   lang,
                   targetLang=None,
                   pos=None,
                   source=None):
     """
     get synsetids to request target url
     
     lemma; word
     lang: language
     targetLang: target language that is often the same as lang; howerver rarely is not same.
     pos: part of speech
     source: wikipedia and so on
     
     return synsetsids
     """
     self.lang = lang
     synset_url = self.make_url(function="getSynsetIds?",
                                lemma=lemma,
                                lang=self.lang,
                                pos=pos,
                                source=source)
     synset_url = synset_url.format(lemma, self.lang, self.key)
     synset_json = urllib.request.urlopen(synset_url).read()
     synset_json = synset_json.decode(self.unicode, self.unicode_option)
     synset_ids = [dict2obj(js) for js in json.loads(synset_json)]
     self.synset_ids = synset_ids
     return synset_ids
Esempio n. 2
0
 def getSenses(self,
               lemma,
               lang,
               lemma_type="full",
               force_compare=True,
               useURL=False):
     """
     get senses from synsets     
     
     lang: language
     pos: part of speech
     lemma_type: full, simple
     force_compare: A == a. a big character is the same as a small character.
     useURL: if it is True, it search from url. Unless, search from data has been already got  
     
     return: Senses
     """
     if useURL:
         lang = lang or self.lang
         synset_url = self.make_url(function="getSenses?",
                                    lemma=lemma,
                                    lang=lang)
         synset_json = urllib.request.urlopen(synset_url).read()
         synset_json = synset_json.decode(self.unicode, self.unicode_option)
         senses = [dict2obj(js) for js in json.loads(synset_json)]
     else:
         senses = []
         if "full" == lemma_type:
             for synset in self.synsets:
                 for sense in synset.senses:
                     if force_compare and \
                         sense.properties.fullLemma.lower() == lemma.lower() and \
                         sense.properties.language.lower() == lang.lower():
                         senses.append(sense)
                     elif sense.properties.fullLemma == lemma and \
                         sense.properties.language == lang:
                         senses.append(sense)
         elif "simple" == lemma_type:
             for synset in self.synsets:
                 for sense in synset.senses:
                     if force_compare and \
                         sense.properties.fullLemma.lower() == lemma.lower() and \
                         sense.properties.language.lower() == lang.lower():
                         senses.append(sense)
                     elif sense.properties.simpleLemma == lemma and \
                         sense.properties.language == lang:
                         senses.append(sense)
     self.senses = senses
     return senses
Esempio n. 3
0
 def getOutgoingEdges(self, synset_id):
     """
     get edges that has relationships against other synsets to request target url
     
     synset_id: a babelnet synsetid
     
     return edges
     """
     synset_url = self.make_url(function="getOutgoingEdges?", id=synset_id)
     synset_url = synset_url.format(synset_id, self.key)
     synset_json = urllib.request.urlopen(synset_url).read()
     synset_json = synset_json.decode(self.unicode, self.unicode_option)
     edges = [dict2obj(js) for js in json.loads(synset_json)]
     self.edges = edges
     return edges
Esempio n. 4
0
 def getWordNetId(self, synset_id):
     """
     For your internal server only,
     get WordNet id which is equal to BabelNet id
     
     synset_id: a babelnet synsetid
     
     return wordnet synsetid
     """
     assert ("internal server only", self.key is None)
     synset_url = self.make_url(function="getWordnetId?", id=synset_id)
     synset_url = synset_url.format(synset_id, self.key)
     synset_json = urllib.request.urlopen(synset_url).read()
     synset_json = synset_json.decode(self.unicode, self.unicode_option)
     wordnet_ids = [dict2obj(js) for js in json.loads(synset_json)]
     return wordnet_ids
Esempio n. 5
0
 def getSynsets(self, synset_id, targetLang=None, change_lang=False):
     """
     get synsets to request target url
     
     synset_id: a babelnet synsetid
     targetLang: target language that is often the same as lang; howerver rarely is not same.
     change_lang: for translation or sub language
     
     return synsets
     """
     if change_lang and targetLang != None:
         if type(targetLang) == list:
             self.lang = targetLang[0]
         else:
             self.lang = targetLang
     targetLang = targetLang or self.lang
     synset_url = self.make_url(function="getSynset?",
                                id=synset_id,
                                targetLang=targetLang)
     synset_json = urllib.request.urlopen(synset_url).read()
     synset_json = synset_json.decode(self.unicode, self.unicode_option)
     synsets = [dict2obj(json.loads(synset_json))]
     self.synsets = synsets
     return synsets