Exemplo n.º 1
0
        private double AnalyseUsingTestData(string testBrainJSON, List <Review> foldBeingTested)
        {
            SentimentModel testBrain = new SentimentModel(testBrainJSON);
            //SentimentModel testBrain = new SentimentModel(File.ReadAllText("brain.json"));
            List <Review> originalFold = new List <Review>();

            foreach (Review review in foldBeingTested)
            {
                originalFold.Add((Review)review.Clone());
            }

            for (int i = 0; i < foldBeingTested.Count; i++)
            {
                foldBeingTested[i].sentiment = Review.Sentiment.blank;
            }

            for (int i = 0; i < foldBeingTested.Count; i++)
            {
                foldBeingTested[i] = testBrain.AnalyseReview(foldBeingTested[i]);
            }

            int accuracy = 0;

            for (int i = 0; i < foldBeingTested.Count; i++)
            {
                if (foldBeingTested[i].sentiment == originalFold[i].sentiment)
                {
                    accuracy++;
                }
                else
                {
                }
            }
            return((accuracy / (double)foldBeingTested.Count) * 100);
        }
Exemplo n.º 2
0
        public SentimentPredictions()
        {
            sc = new SpectralClustering();
            List <List <int> > rawCommunities = sc.FindCommunities();
            SentimentModel     model          = new SentimentModel(File.ReadAllText("brain.json"));

            reviews = ReadFriendshipReviewData.readFileAsReview("friendships.reviews.txt");//.Where(r => r != null).ToList();

            for (int i = 0; i < reviews.Count; i++)
            {
                reviews[i] = model.AnalyseReview(reviews[i]);
            }

            int communityIndex = 0;

            foreach (List <int> community in rawCommunities)
            {
                foreach (int user in community)
                {
                    reviews[user].community = communityIndex;
                }

                communityIndex++;
            }

            foreach (Review user in reviews.Where(u => u.sentiment == Review.Sentiment.blank))
            {
                PredictSentiment(user);
            }
        }
Exemplo n.º 3
0
        private static void Analyse()
        {
            SentimentModel model   = new SentimentModel(File.ReadAllText("brain.json"));
            List <Review>  reviews = ReadFriendshipReviewData.readFileAsReview("friendships.reviews.txt").Where(r => r != null).ToList();

            for (int i = 0; i < reviews.Count; i++)
            {
                reviews[i] = model.AnalyseReview(reviews[i]);
            }
            reviews = reviews.Where(r => r.sentiment != Review.Sentiment.blank).ToList();
        }
Exemplo n.º 4
0
        private static void Train()
        {
            SentimentModel model = new SentimentModel(ReadSentimentTrainingData.readFileAsReview("SentimentTrainingData.txt"));

            FileStream brain = File.Create("brain.json");

            using (System.IO.StreamWriter file =
                       new System.IO.StreamWriter(brain))
            {
                file.Write(model.vocabulary.JSONSerialize());
            }
        }
Exemplo n.º 5
0
        private string TrainFoldBrain(List <List <Review> > folds, int foldBeingTested)
        {
            List <Review> brainFolds = new List <Review>();

            for (int i = 0; i < folds.Count; i++)
            {
                if (i != foldBeingTested)
                {
                    brainFolds.AddRange(folds[i]);
                }
            }
            string testBrainJSON = new SentimentModel(brainFolds).vocabulary.JSONSerialize();

            return(testBrainJSON);
        }