示例#1
0
        private bool CheckMeaning(TestWordItem wordItem, string answer)
        {
            if (answer.Length == 0)
            {
                return(false);
            }

            if (wordItem.answers.Any(x => x.Contains(answer)))
            {
                return(true);
            }

            try
            {
                foreach (var word in wordItem.answers)
                {
                    var result = nlp.WordSimEmbedding(word, answer);

                    if (result.Value <float>("score") > Config.transScoreThres)
                    {
                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("百度词义API出问题了 - " + ex.Message);
            }

            return(false);
        }
        public void GetImportant()
        {
            var phrase = new TestPhrase();
            var word   = new TestWordItem
            {
                IsSentiment = true,
                Text        = "A",
                Parent      = phrase
            };

            var word2 = new TestWordItem
            {
                IsStopWord = true,
                Text       = "B",
                Parent     = phrase
            };

            phrase.Add(word);
            phrase.Add(word2);
            var words  = new[] { word, word2 };
            var result = SentenceExtensions.GetImportant(words).ToArray();

            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(word, result[0]);
        }
示例#3
0
        public void ReparseDocument()
        {
            review.Setup(item => item.Text).Returns("DataRow");
            var words     = new List <TestWordItem>();
            var sentences = new List <Mock <ISentence> >();

            sentences.Add(new Mock <ISentence>());
            sentences.Add(new Mock <ISentence>());
            foreach (var sentence in sentences)
            {
                sentence.Setup(item => item.Text).Returns("Sentence");
                var currentWords = new List <TestWordItem>();
                for (var i = 0; i < 2; i++)
                {
                    var wordItem = new TestWordItem();
                    wordItem.Text                   = "Word";
                    wordItem.Relationship           = new TestWordItemRelationship();
                    wordItem.Relationship.Sentiment = new SentimentValue(wordItem, i + 1);
                    currentWords.Add(wordItem);
                    words.Add(wordItem);
                }

                sentence.Setup(item => item.Occurrences).Returns(currentWords.ToArray());
            }

            var adjustment = new Mock <IRatingAdjustment>();
            var rating     = new RatingData();

            rating.AddPositive(2);
            adjustment.Setup(item => item.Rating)
            .Returns(rating);

            for (var i = 0; i < words.Count; i++)
            {
                var word = words[i];
                adjustment.Setup(item => item.GetSentiment(word)).Returns(new SentimentValue(word, 10));
            }

            review.Setup(item => item.Sentences).Returns(sentences.Select(item => item.Object).ToList());
            adjustment.Setup(item => item.Review).Returns(review.Object);
            review.Setup(item => item.Document).Returns(new Document("Test"));
            var document = new DocumentFromReviewFactory().ReparseDocument(adjustment.Object);

            Assert.AreEqual(2, document.Sentences.Count);
            foreach (var sentenceItem in document.Sentences)
            {
                Assert.AreEqual(2, sentenceItem.Words.Count);
                Assert.AreEqual("Sentence", sentenceItem.Text);
                for (var i = 0; i < sentenceItem.Words.Count; i++)
                {
                    Assert.AreEqual(i + 1, sentenceItem.Words[i].Value);
                    Assert.AreEqual(10, sentenceItem.Words[i].CalculatedValue);
                }
            }

            Assert.AreEqual("Test", document.Text);
            Assert.IsTrue(document.GetPositivity() == PositivityType.Positive);
        }
 public void Setup()
 {
     handler = new Mock <IContextWordsHandler>();
     handler.Setup(item => item.Context).Returns(new SessionContext(new NullLogger <SessionContext>()));
     parent              = new TestWordItem("Text");
     parent.WordIndex    = 1;
     instance            = new WordItemRelationships(handler.Object, parent);
     parent.Relationship = instance;
 }
示例#5
0
        public void GetLexicon()
        {
            instance.Load();
            Assert.Throws <ArgumentOutOfRangeException>(() => instance.GetLexicon("Unknown"));
            var word   = new TestWordItem("one");
            var result = instance.GetLexicon("base").MeasureSentiment(word).DataValue.Value;

            Assert.AreEqual(1, result);

            result = instance.GetLexicon("other").MeasureSentiment(word).DataValue.Value;
            Assert.AreEqual(-1, result);
        }
        private TestWordItem SetupItem()
        {
            wordItem   = new TestWordItem(string.Empty);
            repairRule = new WordRepairRule();
            repairRule.SuccesfulResult = true;
            wordItem.Relationship      = new WordItemRelationships(helper.Handler.Object, wordItem);
            var next = new TestWordItem("working");

            wordItem.Relationship.Next = next;
            next.POS = POSTags.Instance.VB;
            return(wordItem);
        }
        public void AddRemove()
        {
            var word   = new TestWordItem("xxx");
            var result = instance.IsAspect(word);

            Assert.IsFalse(result);
            instance.AddFeature(word);
            result = instance.IsAspect(word);
            Assert.IsTrue(result);
            instance.Remove(word);
            result = instance.IsAspect(word);
            Assert.IsFalse(result);
        }
        public void SentimentCalculatorConstructorTest()
        {
            IWordItem invertor = new TestWordItem(String.Empty);

            relationships.Setup(item => item.Inverted)
            .Returns(invertor);
            relationships.Setup(item => item.PriorQuants)
            .Returns(new List <IWordItem>());

            var value  = SentimentValue.CreateGood(wordItem.Object);
            var target = new SentimentCalculator(value);

            Assert.AreEqual(wordItem.Object, target.GetField <IWordItem>("wordItem"));
            Assert.AreEqual(value, target.GetField <SentimentValue>("sentimentValue"));
        }
示例#9
0
        public void GetLexicon()
        {
            var path = Path.Combine(TestContext.CurrentContext.TestDirectory, "Data", "Lexicons");

            instance.Load(path);
            Assert.Throws <ArgumentOutOfRangeException>(() => instance.GetLexicon("Unknown"));
            var word = new TestWordItem();

            word.Text = "one";
            var result = instance.GetLexicon("base").MeasureSentiment(word).DataValue.Value;

            Assert.AreEqual(1, result);

            result = instance.GetLexicon("other").MeasureSentiment(word).DataValue.Value;
            Assert.AreEqual(-1, result);
        }
        public void CalculateInvertTest()
        {
            IWordItem invertor = new TestWordItem("Invert");

            relationships.Setup(item => item.Inverted)
            .Returns(invertor);
            relationships.Setup(item => item.PriorQuants)
            .Returns(new List <IWordItem>());

            var value = SentimentValue.CreateGood(wordItem.Object);

            var target = new SentimentCalculator(value);

            var result = target.Calculate();

            Assert.AreEqual(-1, result.DataValue.Value);
        }
        public void CalculateQuantInvertor()
        {
            var invertor = new TestWordItem(String.Empty);

            relationships.Setup(item => item.Inverted)
            .Returns(invertor);
            relationships.Setup(item => item.PriorQuants)
            .Returns(
                new List <IWordItem>
            {
                new TestWordItem("Word")
                {
                    QuantValue = 10,
                }
            });

            var value  = SentimentValue.CreateGood(wordItem.Object);
            var target = new SentimentCalculator(value);

            var result = (double)target.InvokeMethod("CalculateQuant");

            Assert.AreEqual(10, result);
        }
 public void Setup()
 {
     helper   = new WordsHandlerHelper();
     wordItem = SetupItem();
 }
示例#13
0
 private bool CheckWord(TestWordItem wordItem, string answer)
 {
     return(wordItem.word == answer);
 }