Esempio n. 1
0
        static void Main(string[] args)
        {
            var options = new Options();
            if (Parser.Default.ParseArguments(args, options))
            {
                if (options.ShowHelp)
                {
                    Console.WriteLine(options.GetUsage());
                    return;
                }

                if (options.ShowVersion)
                {
                    Console.WriteLine("jieba.NET 0.38");
                    return;
                }

                if (string.IsNullOrWhiteSpace(options.FileName))
                {
                    Console.WriteLine("No file specified");
                    return;
                }

                SegmentFile(options);
            }
        }
Esempio n. 2
0
        private static void SegmentFile(Options options)
        {
            var result = new List<string>();

            var fileName = Path.GetFullPath(options.FileName);
            var lines = File.ReadAllLines(fileName);

            Func<string, bool, bool, IEnumerable<string>> cutMethod = null;
            var segmenter = new JiebaSegmenter();
            if (options.POS)
            {
                cutMethod = (text, cutAll, hmm) =>
                {
                    var posSeg = new PosSegmenter(segmenter);
                    return posSeg.Cut(text, hmm).Select(token => string.Format("{0}/{1}", token.Word, token.Flag));
                };
            }
            else
            {
                cutMethod = segmenter.Cut;
            }

            var delimiter = string.IsNullOrWhiteSpace(options.Delimiter) ? "/ " : options.Delimiter;
            foreach (var line in lines)
            {
                result.Add(string.Join(delimiter, cutMethod(line, options.CutAll, options.NoHmm)));
            }
            Console.WriteLine(string.Join(Environment.NewLine, result));
        }