Ejemplo n.º 1
0
    def test_insert_geo(self):
        dataset = Dataset('GDS987').populate()
        Word2Geo.insert_geo(dataset)

        w2gs = list(Word2Geo.mongo().find({'geo_id': dataset.geo_id}))

        self.assertEqual(len(w2gs), 249)
Ejemplo n.º 2
0
    def test_insert_geo(self):
        dataset=Dataset('GDS987').populate()
        Word2Geo.insert_geo(dataset)
        
        w2gs=list(Word2Geo.mongo().find({'geo_id': dataset.geo_id}))

        self.assertEqual(len(w2gs), 249)
Ejemplo n.º 3
0
def insert_words(geo, words):
    '''
    geo: GEO object
    words: dict [k=source (aka 'tag'); v=list of words (maybe with dups)]
    Creates records with keys [geo_id, word, source, count], adds to db
    '''
    mongo=Word2Geo.mongo()
    mongo.remove({'geo_id': geo.geo_id}) # remove the record for this geo

    totals=dict()           # k=source, v=count
    for source, words in words.items():
        for word in words:
            query={'geo_id':geo.geo_id, 'word':word, 'source':source}
            record=mongo.find_one(query)
            if record:
                if 'count' in record: record['count']+=1
                else: record['count']=1
            else:           # record not found, construct it from query:
                record=query
                record['count']=1
            mongo.save(record)

            try: totals[source]+=1
            except: totals[source]=1

    return totals