private void OnPredictionSelected(object sender, RoutedEventArgs e)
        {
            WordSegment replaceSegment = null;

            if (Target.SelectionStart < Target.Text.Length)
            {
                replaceSegment = _wordsSegmenter.GetTokenAt(Target.Text, (uint)Target.SelectionStart);
            }
            else if (Target.Text[Target.Text.Length - 1] != ' ')
            {
                var tokens = _wordsSegmenter.GetTokens(Target.Text);
                if (tokens == null || tokens.Count == 0)
                {
                    return;
                }

                replaceSegment = tokens[tokens.Count - 1];
            }

            if (replaceSegment != null)
            {
                Target.Select((int)replaceSegment.SourceTextSegment.StartPosition, (int)replaceSegment.SourceTextSegment.Length);
            }

            string prediction = (sender as Button).Content.ToString();

            InjectString(prediction, true);
            UpdatePredictions();
        }
Пример #2
0
 public SpellerSegment(WordSegment segment, SpellChecker spellChecker, WinRTSpellerInterop owner)
 {
     _segment      = segment;
     _spellChecker = spellChecker;
     _suggestions  = null;
     _owner        = owner;
 }
Пример #3
0
        public void UpdateView(double timestart, double timeend)
        {
            StreamReader fin = new StreamReader("simulog.log");

            while (!fin.EndOfStream)
            {
                string            text = fin.ReadLine();
                string[]          args = text.Split(' ');
                string            name = args[0];
                int               time = int.Parse(args[1]);
                ValueSegment      vs = null, vsp = null;
                SimulateDataModel sdmodel = vddict[name];
                switch (sdmodel.Type)
                {
                case "BIT":
                    vs       = new BitSegment();
                    vs.Value = Int32.Parse(args[2]);
                    break;

                case "WORD":
                    vs       = new WordSegment();
                    vs.Value = Int32.Parse(args[2]);
                    break;

                case "DWORD":
                    vs       = new DWordSegment();
                    vs.Value = Int64.Parse(args[2]);
                    break;

                case "FLOAT":
                    vs       = new FloatSegment();
                    vs.Value = float.Parse(args[2]);
                    break;
                }
                if (sdmodel.Values.Count() == 0)
                {
                    vsp           = vs.Clone();
                    vsp.Value     = 0;
                    vsp.TimeStart = (int)(timestart);
                    vs.TimeStart  = vsp.TimeEnd = time;
                    sdmodel.Add(vsp);
                    sdmodel.Add(vs);
                }
                else
                {
                    vsp          = sdmodel.Values.Last();
                    vs.TimeStart = vsp.TimeEnd = time;
                    sdmodel.Add(vs);
                }
            }
            foreach (SimulateDataModel sdmodel in vddict.Values)
            {
                if (sdmodel.Values.Count() > 0)
                {
                    sdmodel.Values.Last().TimeEnd = (int)(timeend);
                }
            }
        }
Пример #4
0
 private ICTCLASSharp()
 {
     wordSegment = new WordSegment();
     string ErrMsg;
     if (!wordSegment.InitWordSegment(Path.Combine(RuntimeInfo.BaseDirectory, DataPath) + Path.DirectorySeparatorChar, out ErrMsg))
     {
         throw new Exception("SharpICTCLAS分词器初始化失败:" + ErrMsg);
     }
 }
Пример #5
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="dictPath"></param>
 /// <param name="nKind"></param>
 public WordSegmentApp(string dictPath, int nKind)
 {
     this.wordSegment = new WordSegment();
     //wordSegment.PersonRecognition = false;
     //wordSegment.PlaceRecognition = false;
     //wordSegment.TransPersonRecognition = false;
     //wordSegment.OnSegmentEvent += new SegmentEventHandler(this.OnSegmentEventHandler);
     wordSegment.InitWordSegment(dictPath);
     this.dictPath = dictPath;
     this.nKind    = nKind;
 }
Пример #6
0
 public Segment(string dictpath)
 {
     if (wordSegment == null)
     {
         wordSegment = new WordSegment();
         dictPath    = dictpath;
         wordSegment.InitWordSegment(dictpath);
         wordSegment.PersonRecognition      = false;
         wordSegment.TransPersonRecognition = false;
         wordSegment.PlaceRecognition       = false;
     }
 }
Пример #7
0
    //=======================================================
    // 构造函数
    //=======================================================
    public WordSegmentSample(string dictPath, int nKind)
    {
        this.nKind       = nKind;
        this.wordSegment = new WordSegment();
        //wordSegment.PersonRecognition = false;
        //wordSegment.PlaceRecognition = false;
        //wordSegment.TransPersonRecognition = false;

        //---------- 订阅分词过程中的事件 ----------
        wordSegment.OnSegmentEvent += new SegmentEventHandler(this.OnSegmentEventHandler);
        wordSegment.InitWordSegment(dictPath);
    }
        private static List <WordResult[]> resultSegment(string src)
        {
            String      s;
            WordSegment ws = getWordSegmentInstance();

            lock (ws)
            {
                s = Utility.Traditional2Simplified(src);
                s = Utility.ToDBC(s);
                return(ws.Segment(s, ms_nKind));
            }
        }
Пример #9
0
 public static WordSegment GetWordSegmentInstance()
 {
     if (wordSegment == null)
     {
         wordSegment = new WordSegment();
         wordSegment.InitWordSegment(ConfigurationManager.AppSettings["IctclasData"]);
         return(wordSegment);
     }
     else
     {
         return(wordSegment);
     }
 }
 private static WordSegment getWordSegmentInstance()
 {
     if (ms_wordSegment == null)
     {
         try
         {
             string dictPath = Path.Combine(Environment.CurrentDirectory, "SegmentDict") + Path.DirectorySeparatorChar;
             ms_wordSegment = new WordSegment();
             ms_wordSegment.InitWordSegment(dictPath);
             log.Debug("正在初始化字典库,请稍候...");
         }
         catch (Exception e)
         {
             System.Windows.Forms.MessageBox.Show("字典库初始化失败!", "错误", System.Windows.Forms.MessageBoxButtons.OK);
             log.Debug("字典库初始化失败");
         }
     }
     return(ms_wordSegment);
 }
Пример #11
0
        //线程的执行函数,for循环中线程根据自身的ID,加2取文本文件,保证两个线程的输入文件没有交集
        private static void AnalyFuc(object order)
        {
            int         num         = ((Para)order).Num;
            WordSegment wordSegment = new WordSegment();

            wordSegment.InitWordSegment(DictPath);
            StreamReader sr = null;
            StreamWriter sw = new StreamWriter(outDir + num + ".txt", false, System.Text.Encoding.Default);

            for (int i = num; i < fileList.Count; i += 2)
            {
                sr = new StreamReader(fileList[i], System.Text.Encoding.Default);
                string input = "";
                input = sr.ReadLine();
                List <WordResult[]> result = null;
                while (input != null)
                {
                    if (input == "")
                    {
                        input = sr.ReadLine();
                        continue;
                    }
                    try
                    {
                        result = wordSegment.Segment(input);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        continue;
                    }
                    for (int j = 1; j < result[0].Length - 1; ++j)
                    {
                        sw.Write(result[0][j].sWord + " ");
                    }
                    sw.WriteLine("");
                    input = sr.ReadLine();
                }
                sr.Close();
            }

            sw.Close();
        }
Пример #12
0
        public void SetValue(SimulateDataModel sdmodel, object value, int timestart, int timeend)
        {
            RemoveValue(sdmodel, timestart, timeend);

            ValueSegment vseg;

            switch (sdmodel.Type)
            {
            case "BIT":
                BitSegment bseg = new BitSegment();
                bseg.Value = value;
                vseg       = bseg;
                break;

            case "WORD":
                WordSegment wseg = new WordSegment();
                wseg.Value = value;
                vseg       = wseg;
                break;

            case "DWORD":
                DWordSegment dseg = new DWordSegment();
                dseg.Value = value;
                vseg       = dseg;
                break;

            case "FLOAT":
                FloatSegment fseg = new FloatSegment();
                fseg.Value = value;
                vseg       = fseg;
                break;

            default:
                throw new ArgumentException();
            }
            vseg.TimeStart = timestart;
            vseg.TimeEnd   = timeend;
            sdmodel.Add(vseg);
        }
 public static WordSegmentItem Create(WordSegment segment)
 {
     return new WordSegmentItem(segment);
 }
 public WordSegmentItem(WordSegment segment)
 {
     WordSegment = segment;
 }
Пример #15
0
 public void Replace(WordSegment segment, Word newWord)
 {
     throw new System.NotImplementedException();
 }
Пример #16
0
 public SearchMessage(string dictpath)
 {
     wordSegment = new WordSegment();
     wordSegment.InitWordSegment(dictpath);
 }
 // Token: 0x06008615 RID: 34325 RVA: 0x0024B9A6 File Offset: 0x00249BA6
 public SpellerSegment(string sourceString, WordSegment segment, SpellChecker spellChecker, WinRTSpellerInterop owner) : this(sourceString, new WinRTSpellerInterop.TextRange(segment.SourceTextSegment), spellChecker, owner)
 {
 }
Пример #18
0
        public static void TestNShortPath()
        {
            int          n = 2;
            List <int[]> result;

            int[] aPath;
            //--------------------------------------------------------------edie by SharpKey
            string dictPath = Path.Combine(Environment.CurrentDirectory, "Data") + Path.DirectorySeparatorChar;

            Console.WriteLine("正在初始化字典库,请稍候...");
            //WordSegmentSample sample = new WordSegmentSample(DictPath, 2);
            WordSegment wordSegment = new WordSegment();

            wordSegment.InitWordSegment(dictPath);
            Segment m_Seg = new Segment(wordSegment.m_dictBigram, wordSegment.m_dictCore);//Seg class
            //wordSegment.Segment("", 2);
            ColumnFirstDynamicArray <ChainContent> apCost = m_Seg.TestSegment("始##始这个人的确实在末##末", 0.1, 2);

            Console.WriteLine(apCost.ToString());
            //----------------------------------
            NShortPath.Calculate(apCost, n);
            NShortPath.printResultByIndex();

            //----------------------------------------------------
            // 所有路径
            //----------------------------------------------------
            Console.WriteLine("\r\n\r\n所有路径:");
            for (int i = 0; i < n; i++)
            {
                result = NShortPath.GetPaths(i);
                for (int j = 0; j < result.Count; j++)
                {
                    aPath = result[j];
                    for (int k = 0; k < aPath.Length; k++)
                    {
                        Console.Write("{0}, ", aPath[k]);
                    }

                    Console.WriteLine();
                }
                Console.WriteLine("========================");
            }

            //----------------------------------------------------
            // 最佳路径
            //----------------------------------------------------
            Console.WriteLine("\r\n最佳路径:");
            aPath = NShortPath.GetBestPath();
            for (int k = 0; k < aPath.Length; k++)
            {
                Console.Write("{0}, ", aPath[k]);
            }

            Console.WriteLine();

            //----------------------------------------------------
            // 最多 n 个路径
            //----------------------------------------------------
            Console.WriteLine("\r\n最多 {0} 条路径:", 5);
            result = NShortPath.GetNPaths(5);
            for (int j = 0; j < result.Count; j++)
            {
                aPath = result[j];
                for (int k = 0; k < aPath.Length; k++)
                {
                    Console.Write("{0}, ", aPath[k]);
                }

                Console.WriteLine();
            }
        }
Пример #19
0
 public SpellerSegment(WordSegment segment, SpellChecker spellChecker)
 {
     _segment      = segment;
     _spellChecker = spellChecker;
     _suggestions  = null;
 }
 public void Replace(WordSegment segment, Word newWord)
 {
     richTextBox.ReplaceText(segment.FromIndex, segment.Length,
         newWord.ToString());
 }