Example #1
0
 public TransferEngine(IMorphologicalAnalyzer sourceAnalyzer, ITransferer transferer,
                       IMorphologicalGenerator targetGenerator)
 {
     _sourceAnalyzer  = sourceAnalyzer;
     _transferer      = transferer;
     _targetGenerator = targetGenerator;
 }
 public void SetUp()
 {
     ipadicMecab = new MeCabIpadic(new MeCabParam
     {
         DicDir = TestDataPaths.Ipadic
     });
 }
Example #3
0
 public AddCategoriesHandler(
     MemContext dbContext,
     IMorphologicalAnalyzer <IpadicEntry> analyzer,
     ICurrentTimeProvider currentTimeProvider)
 {
     this.dbContext           = dbContext;
     this.analyzer            = analyzer;
     this.currentTimeProvider = currentTimeProvider;
 }
Example #4
0
 public SentenceParser(
     IMorphologicalAnalyzer <IEntry> analyzer,
     JMDictLookup lookup,
     IKanaProperties kanaProperties)
 {
     this.analyzer       = analyzer;
     this.lookup         = lookup;
     this.kanaProperties = kanaProperties;
 }
 public UpdateTranslationHandler(
     MemContext dbContext,
     IMorphologicalAnalyzer <IpadicEntry> analyzer,
     ICurrentTimeProvider currentTimeProvider)
 {
     this.dbContext           = dbContext;
     this.analyzer            = analyzer;
     this.currentTimeProvider = currentTimeProvider;
 }
Example #6
0
 public void SetUp()
 {
     jmdict      = JDict.JMDictLookup.Create(TestDataPaths.JMDict, TestDataPaths.JMDictCache);
     ipadicMecab = new MeCabIpadic(new MeCabParam
     {
         DicDir = TestDataPaths.Ipadic
     });
     idiomDetector = new IdiomDetector(jmdict, ipadicMecab, TestDataPaths.IdiomsCache);
 }
Example #7
0
 public AddContextHandler(
     MemContext dbContext,
     IMorphologicalAnalyzer <IpadicEntry> analyzer,
     ICurrentTimeProvider currentTimeProvider,
     UserManager <User> userManager)
 {
     this.dbContext           = dbContext;
     this.analyzer            = analyzer;
     this.currentTimeProvider = currentTimeProvider;
     this.userManager         = userManager;
 }
        public static string Normalize(this IMorphologicalAnalyzer <IpadicEntry> analyzer, string input)
        {
            var morphemes = analyzer
                            .ParseToEntries(input)
                            .Where(e => e.IsRegular)
                            .Where(IsNotStopWord)
                            .Select(e => e.DictionaryForm);
            var text = string.Join(" ", morphemes);

            return(text);
        }
Example #9
0
        public void SetUp()
        {
            var baseDir = TestDataPaths.BaseDir;

            mecab = new MeCabIpadic(new MeCabParam
            {
                DicDir = TestDataPaths.Ipadic,
            });
            kanaProperties = new KanaProperties2(
                TestDataPaths.Kana,
                Encoding.UTF8);
        }
Example #10
0
 public TanakaUpdaterProcess(
     HttpClient httpClient,
     string url,
     string oldPath,
     string newPath,
     string oldCachePath,
     string newCachePath,
     IMorphologicalAnalyzer <IpadicEntry> analyzer) : base("Tanaka Corpus")
 {
     this.httpClient   = httpClient;
     this.url          = url;
     this.oldPath      = oldPath;
     this.newPath      = newPath;
     this.oldCachePath = oldCachePath;
     this.newCachePath = newCachePath;
     this.analyzer     = analyzer;
 }
        public void SetUp()
        {
            var kanjidict      = JDict.KanjiDict.Create(TestDataPaths.KanjiDic);
            var kradfile       = new JDict.Kradfile(TestDataPaths.Kradfile, Encoding.UTF8);
            var radkfile       = new Radkfile(TestDataPaths.Radkfile, Encoding.UTF8);
            var kanaProperties = new KanaProperties2(
                TestDataPaths.Kana,
                Encoding.UTF8);

            this.mecab = new MeCabIpadic(new MeCabParam
            {
                DicDir = TestDataPaths.Ipadic,
                UseMemoryMappedFile = true
            });
            this.jmdict = JDict.JMDictLookup.Create(TestDataPaths.JMDict, TestDataPaths.JMDictCache);
            var parser = new SentenceParser(mecab, jmdict, kanaProperties);

            glosser = new AutoGlosserNext(parser, jmdict, kanaProperties);
        }
        public static (string sentence, string?highlighter) Highlight(this IMorphologicalAnalyzer <IpadicEntry> analyzer, string haystack, string needle)
        {
            var needleMorphemes = analyzer
                                  .ParseToEntries(needle)
                                  .Where(e => e.IsRegular)
                                  .ToList();
            var haystackMorphemes = analyzer
                                    .ParseToEntries(haystack)
                                    .Where(e => e.IsRegular)
                                    .ToList();

            if (haystackMorphemes.Count == 0 || needleMorphemes.Count == 0)
            {
                return(haystack, null);
            }

            var values = new List <int>(haystackMorphemes.Count);

            for (int i = 0; i < haystackMorphemes.Count; ++i)
            {
                var count = Enumerable
                            .Zip(haystackMorphemes.Skip(i), needleMorphemes)
                            .Count(pair => pair.First.DictionaryForm == pair.Second.DictionaryForm);
                values.Add(count);
            }

            var start           = EnumerableExt.MaxBy(values.Indexed(), p => p.element).index;
            var highlighter     = GetHighlighterFor(haystack);
            var haystackStrings = haystackMorphemes.Select(m => m.SurfaceForm).Materialize();
            var strings         = haystackStrings
                                  .Take(start)
                                  .Append(highlighter)
                                  .Concat(haystackStrings.Skip(start).Take(values[start]))
                                  .Append(highlighter)
                                  .Concat(haystackStrings.Skip(start + values[start]));

            return(string.Concat(strings), highlighter);
        }
 public static void AddAnalyses(this IMorphologicalAnalyzer sourceAnalyzer, string word,
                                params WordAnalysis[] analyses)
 {
     sourceAnalyzer.AnalyzeWord(Arg.Is(word)).Returns(analyses);
 }
Example #14
0
 public ModifiedHepburn(IMorphologicalAnalyzer <IEntry> mecab, IKanaProperties props)
 {
     this.mecab = mecab;
     this.props = props;
 }