예제 #1
0
 private TokenInfoDictionary(IResourceResolver resolver)
 {
     using (var tokenInfoBufferResource = resolver.Resolve(TokenInfoDictionaryFileName))
         using (var stringValueResource = resolver.Resolve(FeatureMapFileName))
             using (var posValueResource = resolver.Resolve(PosMapFileName))
                 using (var wordIdMapResource = resolver.Resolve(TargetMapFileName))
                 {
                     TokenInfoBuffer = new TokenInfoBuffer(tokenInfoBufferResource);
                     StringValues    = new StringValueMapBuffer(stringValueResource);
                     PosValues       = new StringValueMapBuffer(posValueResource);
                     WordIdMap       = new WordIdMap(wordIdMapResource);
                 }
 }
예제 #2
0
        private void Setup(string absoluteResourcePath)
        {
            try
            {
                using (var tokenStream = File.OpenRead(absoluteResourcePath + Path.DirectorySeparatorChar + TOKEN_INFO_DICTIONARY_FILENAME))
                { tokenInfoBuffer = new TokenInfoBuffer(tokenStream); }

                using (var stringStream = File.OpenRead(absoluteResourcePath + Path.DirectorySeparatorChar + FEATURE_MAP_FILENAME))
                { stringValues = new StringValueMapBuffer(stringStream); }

                using (var posStream = File.OpenRead(absoluteResourcePath + Path.DirectorySeparatorChar + POS_MAP_FILENAME))
                { posValues = new StringValueMapBuffer(posStream); }

                using (var stream = File.OpenRead(absoluteResourcePath + Path.DirectorySeparatorChar + TARGETMAP_FILENAME))
                { wordIdMap = new WordIdMap(stream); }
            }
            catch (IOException ex)
            {
                throw new Exception("TokenInfoDictionary.Setup: " + ex.Message);
            }
        }
예제 #3
0
        public void TestCompiler()
        {
            var compiler = new WordIdMapCompiler();

            compiler.AddMapping(3, 1);
            compiler.AddMapping(3, 2);
            compiler.AddMapping(3, 3);
            compiler.AddMapping(10, 0);

            using (var ms = new MemoryStream())
            {
                compiler.Write(ms);

                ms.Seek(0, SeekOrigin.Begin);

                var wordIds = new WordIdMap(ms);
                string.Join(", ", wordIds.LookUp(3)).Is("1, 2, 3");
                string.Join(", ", wordIds.LookUp(10)).Is("0");
                string.Join(", ", wordIds.LookUp(1)).Is("");
            }
        }
        public void TestCompiler()
        {
            WordIdMapCompiler compiler = new WordIdMapCompiler();

            compiler.AddMapping(3, 1);
            compiler.AddMapping(3, 2);
            compiler.AddMapping(3, 3);
            compiler.AddMapping(10, 0);

            var fileName = TestUtils.CompiledPath + Path.DirectorySeparatorChar + "kuromoji-wordid-.bin";

            using (var output = File.Create(fileName))
            {
                compiler.Write(output);
            }

            using (var input = File.OpenRead(fileName))
            {
                WordIdMap wordIds = new WordIdMap(input);
                Assert.AreEqual("[1, 2, 3]", wordIds.LookUp(3).Array2String());
                Assert.AreEqual("[0]", wordIds.LookUp(10).Array2String());
                Assert.AreEqual("[]", wordIds.LookUp(1).Array2String());
            }
        }