package com.personalityextractor; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Set; import com.personalityextractor.entity.WikipediaEntity; import com.personalityextractor.entity.extractor.EntityExtractFactory; import com.personalityextractor.entity.extractor.EntityExtractFactory.Extracter; import com.personalityextractor.entity.extractor.IEntityExtractor; import com.personalityextractor.store.WikiminerDB; public class PGTest { private static WikiminerDB db; static { try { db = WikiminerDB.getInstance("localhost", "root", "", "wikiminer"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { IEntityExtractor extractor = EntityExtractFactory .produceExtractor(Extracter.NOUNPHRASE); List<String> tweets = new ArrayList<String>(); tweets.add("Google is a search engine."); Set<WikipediaEntity> allEntities = new HashSet<WikipediaEntity>(); for (String tweet : tweets) { List<String> entities = extractor.extract(tweet); HashMap<String, ArrayList<WikipediaEntity>> wikiEntities = getWikiSenses(entities); for(ArrayList<WikipediaEntity> we : wikiEntities.values()) { allEntities.addAll(we); } } Set<WikipediaEntity> curEntities = allEntities; Set<WikipediaEntity> nxtEntities = new HashSet<WikipediaEntity>(); int count = 0; int limit = 3; while(count < limit) { for(WikipediaEntity e : curEntities) { List<WikipediaEntity> categories = db.getCategories(e.getWikiminerID()); for(WikipediaEntity c : categories) { if(!allEntities.contains(categories)) { nxtEntities.add(c); } System.out.println(e.getWikiminerID() + "\t" + c.getWikiminerID()); } } allEntities.addAll(nxtEntities); curEntities = nxtEntities; nxtEntities = new HashSet<WikipediaEntity>(); count++; } System.out.println(); } public static HashMap<String, ArrayList<WikipediaEntity>> getWikiSenses( List<String> entities) { HashMap<String, ArrayList<WikipediaEntity>> tweetEntityTowikiEntities = new HashMap<String, ArrayList<WikipediaEntity>>(); for (String entity : entities) { ArrayList<WikipediaEntity> ids = new ArrayList<WikipediaEntity>(); ids.addAll(db.search(entity)); tweetEntityTowikiEntities.put(entity, ids); } return tweetEntityTowikiEntities; } }