コード例 #1
0
        public void CreateIndex()
        {
            var environment = new TestEnvironment();

            var wordScorePairs = new[]
            {
                new WordScorePair("onea", 0.2),
                new WordScorePair("oneb", 0.3),
                new WordScorePair("onec", 0.1),
                new WordScorePair("zzzz", 1),
                new WordScorePair("!!!", 1)
            };
            var index = WordIndexFactory.CreateFromWordCountListJava(environment, wordScorePairs);

            var results = index.Query("one");

            using (var enumerator = results.GetEnumerator())
            {
                Assert.IsTrue(enumerator.MoveNext(), "First item");
                Assert.AreEqual("oneb", enumerator.Current, "0.3 weighted");

                Assert.IsTrue(enumerator.MoveNext(), "Second item");
                Assert.AreEqual("onea", enumerator.Current, "0.2 weighted");

                Assert.IsTrue(enumerator.MoveNext(), "Third item");
                Assert.AreEqual("onec", enumerator.Current, "0.1 weighted");

                Assert.IsFalse(enumerator.MoveNext(), "That's all!");
            }
        }
コード例 #2
0
        public void CheckLookup()
        {
            var environment = new TestEnvironment();
            var index       = WordIndexFactory.CreateFromWordCountList(environment, WordScorePairEnumerable.Instance);
            var results     = index.Query("cloc");

            Assert.IsTrue(results.Count() != 0);
        }
コード例 #3
0
        public void CheckLookupWithBrokenCache()
        {
            var environment = new TestEnvironment();

            using (var stream = environment.CreateStaticDictionaryCache())
            {
                // Empty, invalid cache!
            }
            var index   = WordIndexFactory.CreateFromWordCountList(environment, WordScorePairEnumerable.Instance);
            var results = index.Query("cloc");

            Assert.IsTrue(results.Count() != 0);
        }
コード例 #4
0
        public void FindTheClock()
        {
            var environment = new TestEnvironment();

            var wordScorePairs = new[]
            {
                new WordScorePair("clock", 1),
                new WordScorePair("onea", 0.2),
                new WordScorePair("oneb", 0.3),
                new WordScorePair("onec", 0.1),
                new WordScorePair("zzzz", 1),
                new WordScorePair("!!!", 1)
            };
            var index = WordIndexFactory.CreateFromWordCountList(environment, wordScorePairs);

            var results = index.Query("clo");

            Assert.IsTrue(results.Count() == 1);

            var resultsCloc = index.Query("cloc");

            Assert.IsTrue(resultsCloc.Count() == 1);
        }
コード例 #5
0
        internal static void UpdatePredictor(Predictor predictor)
        {
            if (_luceneWordSuggester == null)
            {
                var index = WordIndexFactory.CreateFromWordCountList(predictor.Environment, WordScorePairEnumerable.Instance);
                _luceneWordSuggester = new LuceneWordSuggester(index);
            }

            if (_historicSuggester == null)
            {
                _historicSuggester = PredictionDictionary.Create(predictor.Environment);
            }

            var newHistory = predictor.ConsumeNewHistory();

            var updated = false;

            foreach (var utterance in newHistory)
            {
                updated = true;
                _historicSuggester.AddRawPhrases(utterance);
            }

            if (updated)
            {
                using (var stream = predictor.Environment.CreateDynamicDictionaryCache())
                {
                    _historicSuggester.Save(stream);
                }
            }

            var historicWithFallbackSuggester = new CompoundWordSuggester(_historicSuggester, SingleLetterSuggester.Instance);

            var wordSuggester = CreateCompoundWordSuggester(historicWithFallbackSuggester);

            predictor.UpdateConfiguration(wordSuggester, _historicSuggester);
        }
コード例 #6
0
 static AmbiguousWordPrediction()
 {
     _vocabulary = new Dictionary <string, float>();
     WordIndexFactory.ExtendWithDictinoaryWords(_vocabulary, WordScorePairEnumerable.Instance);
 }
コード例 #7
0
        public void NGramJavaTest()
        {
            var environment = new TestEnvironment();

            NGramCheck((w) => WordIndexFactory.CreateFromWordCountListJava(environment, w));
        }