DefaultSplitter.cs
资源名称:2.rar [点击查看]
上传用户:hshongkong
上传日期:2021-11-20
资源大小:10241k
文件大小:2k
源码类别:

多国语言处理

开发平台:

C#

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.IO;
  5. ////该源码首发自win.51aspx.com(51aspx.com)
  6.  
  7. namespace ChineseSplitter
  8. {
  9.     /// <summary>
  10.     /// 词义切分,即中文分词
  11.     /// </summary>
  12.     public class DefaultSplitter : BaseSplitter
  13.     {
  14.         static NICTCLAS nictclas;
  15.         /// <summary>
  16.         /// 构造函数
  17.         /// </summary>
  18.         /// <param name="wordFilePath">中文词库目录路径</param>
  19.         public DefaultSplitter(DirectoryInfo wordFilePath)
  20.         {
  21.             try
  22.             {
  23.                 if (nictclas == null)
  24.                 {
  25.                     nictclas = new NICTCLAS(wordFilePath.FullName);
  26.                     nictclas.OperateType = (global::eOperateType)eOperateType.FirstTag;
  27.                     nictclas.OutputFormat = (global::eOutputFormat)eOutputFormat.PKU;
  28.                 }
  29.             }
  30.             catch(Exception ex)
  31.             {
  32.                 throw ex;
  33.             }
  34.         }
  35.         public override string Split(string inputStr)
  36.         {
  37.             string result = "";
  38.             nictclas.ParagraphProcessing(inputStr, ref result);
  39.             return result;
  40.         }
  41.         /// <summary>
  42.         /// 释放内存
  43.         /// </summary>
  44.         public override void Dispose()
  45.         {
  46.             nictclas.Dispose();
  47.             
  48.         }
  49.     }
  50.     /// <summary>
  51.     /// 标注类型
  52.     /// </summary>
  53.     public enum eOperateType
  54.     {
  55.         /// <summary>
  56.         /// 词语切分
  57.         /// </summary>
  58.         OnlySegment = 0,
  59.         /// <summary>
  60.         /// 一级标注
  61.         /// </summary>
  62.         FirstTag = 1,
  63.         /// <summary>
  64.         /// 二级标注
  65.         /// </summary>
  66.         SecondTag = 2,
  67.     }
  68.     /// <summary>
  69.     /// 输出格式
  70.     /// </summary>
  71.     public enum eOutputFormat
  72.     {
  73.         /// <summary>
  74.         /// 北大标注
  75.         /// </summary>
  76.         PKU = 0,
  77.         /// <summary>
  78.         /// 973标注
  79.         /// </summary>
  80.         _973 = 1,
  81.         /// <summary>
  82.         /// XML格式
  83.         /// </summary>
  84.         XML = 2,
  85.     }
  86. }