package org.societies.orchestration.cpa.impl.comparison;
import backtype.storm.tuple.Fields;
import com.github.pmerienne.trident.ml.nlp.TwitterSentimentClassifier;
import org.societies.api.activity.IActivity;
import org.societies.orchestration.cpa.impl.SocialGraphVertex;
import org.societies.orchestration.cpa.impl.comparison.trident.ActivitySpout;
import storm.trident.TridentState;
import storm.trident.TridentTopology;
import storm.trident.operation.builtin.Count;
import storm.trident.testing.MemoryMapState;
import java.util.ArrayList;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* User: bjornmagnus.mathisen@sintef.no
* Date: 5/15/13
* Time: 11:04
*/
public class SentimentComparator implements ActorComparator {
private ActivitySpout activitySpout = new ActivitySpout(null);
public void init(ArrayList<String> strings){
//FixedBatchSpout heh = new FixedBatchSpout(new Fields("actitivies"),3,new);
}
@Override
public double compare(SocialGraphVertex member1, SocialGraphVertex member2, List<IActivity> activityDiff) {
TridentTopology topology = new TridentTopology();
TridentState wordCounts =
topology.newStream("spout1", activitySpout)
.each(new Fields("sentence"), new TwitterSentimentClassifier(), new Fields("word"))
//.groupBy(new Fields("word"))
.persistentAggregate(new MemoryMapState.Factory(), new Count(), new Fields("sentiment"))
.parallelismHint(6);
// Classification stream
/* toppology.newDRPCStream("classify", localDRPC)
// Query classifier with text instance
.each(new Fields("args"), new TwitterSentimentClassifier(), new Fields("sentiment"));*/
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
}