Example #1
0
 private ICTCLAS()
 {
     wordSegment = new WordSegment();
     string ErrMsg;
     if (!wordSegment.InitWordSegment(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, DataPath) + Path.DirectorySeparatorChar, out ErrMsg))
     {
         throw new Exception("SharpICTCLAS分词器初始化失败:" + ErrMsg);
     }
 }
Example #2
0
        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="dictPath"></param>
        /// <param name="nKind"></param>
        private IctclasSegment(string dictPath, int nKind = 1)
        {
            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);
        }
    //=======================================================
    // ���캯��
    //=======================================================
    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 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;
 }
Example #5
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();

        }
Example #6
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();
             }
        }