Example #1
0
    def post(self):
        args = self.reqparse.parse_args()
        text = args['text']
        country_filter = ["SYR", "IRQ"]

        out = utilities.talk_to_mitie(text)
        for i in out['entities']:
            print i['text'],
            if i['text'] in country_names:
                print " (Country/blacklist. Skipping...)"
            else:
                # put this in query_geonames?
                searchterm = re.sub(
                    r"Governorate|District|Subdistrict|Airport", "",
                    i['text']).strip()
                searchterm = re.sub("Dar 'a", "Dar'a", searchterm)
                t = query_geonames(searchterm, country_filter)
                loc = pick_best_result(t, i['text'])
                # loc is a nice format for debugging and looks like [35.13179, 36.75783, 'searchterm', u'matchname', u'feature_class', u'country_code3']:
                formatted_loc = {
                    "lat": loc[0],
                    "lon": loc[1],
                    "seachterm": loc[2],
                    "placename": loc[3],
                    "countrycode": loc[5]
                }
                return jsonify(formatted_loc)
Example #2
0
    def post(self):
        args = self.reqparse.parse_args()
        text = args['text']
        country_filter = ["SYR", "IRQ"]

        out = utilities.talk_to_mitie(text)
        for i in out['entities']:
            print i['text'],
            if i['text'] in country_names:
                print " (Country/blacklist. Skipping...)"
            else:
                # put this in query_geonames?
                searchterm = re.sub(r"Governorate|District|Subdistrict|Airport",
                                    "", i['text']).strip()
                searchterm = re.sub("Dar 'a", "Dar'a", searchterm)
                t = query_geonames(searchterm, country_filter)
                loc = pick_best_result(t, i['text'])
                # loc is a nice format for debugging and looks like [35.13179, 36.75783, 'searchterm', u'matchname', u'feature_class', u'country_code3']:
                formatted_loc = {"lat": loc[0], "lon": loc[1],
                                 "seachterm": loc[2], "placename": loc[3],
                                 "countrycode": loc[5]}
                return jsonify(formatted_loc)
Example #3
0
    def process(self, text):
        out = utilities.talk_to_mitie(text, ner_model)
        places = []
        miscs = []
        for i in out['entities']:
            if i['tag'] == "LOCATION" or i['tag'] == "location":
                places.append(i['text'])
            if i['tag'] == "MISC" or i['tag'] == "misc":
                miscs.append(i['text'])

        loc_list = [re.sub(" ", "_", element) for element in places]
        locs = [x for x in loc_list if x in vocab_set]

        if locs:
            locs_word_vec = [prebuilt[word] for word in locs]
            locs_vec = numpy.array(locs_word_vec)
            weights = numpy.dot(index,
                                matutils.unitvec(locs_vec.mean(axis=0)).T).T
            ranks = weights.argsort()[::-1]
            try:
                return idx_country_mapping[ranks[0]]
            except:
                return []
        else:
            misc_list = [re.sub(" ", "_", element) for element in miscs]
            misc = [x for x in misc_list if x in vocab_set]

            misc_word_vec = [prebuilt[word] for word in misc]
            misc_vec = numpy.array(misc_word_vec)
            weights = numpy.dot(index,
                                matutils.unitvec(misc_vec.mean(axis=0)).T).T
            ranks = weights.argsort()[::-1]
            try:
                return idx_country_mapping[ranks[0]]
            except:
                return []
Example #4
0
    def process(self, text):
        out = utilities.talk_to_mitie(text, ner_model)
        places = []
        miscs = []
        for i in out['entities']:
            if i['tag'] == "LOCATION" or i['tag'] == "location":
                places.append(i['text'])
            if i['tag'] == "MISC" or i['tag'] == "misc":
                miscs.append(i['text'])

        loc_list = [re.sub(" ", "_", element) for element in places]
        locs = [x for x in loc_list if x in vocab_set]

        if locs:
            locs_word_vec = [prebuilt[word] for word in locs]
            locs_vec = numpy.array(locs_word_vec)
            weights = numpy.dot(index,
                                matutils.unitvec(locs_vec.mean(axis=0)).T).T
            ranks = weights.argsort()[::-1]
            try:
                return idx_country_mapping[ranks[0]]
            except:
                return []
        else:
            misc_list = [re.sub(" ", "_", element) for element in miscs]
            misc = [x for x in misc_list if x in vocab_set]

            misc_word_vec = [prebuilt[word] for word in misc]
            misc_vec = numpy.array(misc_word_vec)
            weights = numpy.dot(index,
                                matutils.unitvec(misc_vec.mean(axis=0)).T).T
            ranks = weights.argsort()[::-1]
            try:
                return idx_country_mapping[ranks[0]]
            except:
                return []