示例#1
0
 private Semantic()
 {
     _dictionary         = new Hashtable();
     _semanticAttributes = new Hashtable();
     //LoadDictionary("Init\\Chinese Dictionary.txt");
     //LoadSemanticRank("Init\\SemanticAttribute.txt");
     segment = HMMSegment.GetInstance();
 }
示例#2
0
 public QuestionGetter()
 {
     segment = HMMSegment.GetInstance();
     string[] lines = File.ReadAllLines("Init\\pattern.txt");
     foreach (var line in lines)
     {
         string[] str = line.Split(new string[] { " -- " }, StringSplitOptions.RemoveEmptyEntries);
         if (str.Length == 2)
         {
             knowledgePatterns.Add(str[0].Trim());
             questionPatterns.Add(str[1].Trim());
         }
     }
 }
示例#3
0
        public void HMM_Segment()
        {
            var testCases = new[]
            {
                "HanLP是由一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环境中的应用。",
                "高锰酸钾,强氧化剂,紫红色晶体,可溶于水,遇乙醇即被还原。常用作消毒剂、水净化剂、氧化剂、漂白剂、毒气吸收剂、二氧化碳精制剂等。", // 专业名词有一定辨识能力
                "《夜晚的骰子》通过描述浅草的舞女在暗夜中扔骰子的情景,寄托了作者对庶民生活区的情感",                        // 非新闻语料
                "这个像是真的[委屈]前面那个打扮太江户了,一点不上品...@hankcs",                             // 微博
                "鼎泰丰的小笼一点味道也没有...每样都淡淡的...淡淡的,哪有食堂2A的好次",
                "克里斯蒂娜·克罗尔说:不,我不是虎妈。我全家都热爱音乐,我也鼓励他们这么做。",
                "今日APPS:Sago Mini Toolbox培养孩子动手能力",
                "财政部副部长王保安调任国家统计局党组书记",
                "2.34米男子娶1.53米女粉丝 称夫妻生活没问题",
                "你看过穆赫兰道吗",
                "乐视超级手机能否承载贾布斯的生态梦"
            };
            var expects = new[]
            {
                "HanLP是由一系列/ 模型/ 与/ 算法/ 组成/ 的/ Java工具/ 包/ ,/ 目标/ 是/ 普及/ 自然/ 语言/ 处理/ 在/ 生产/ 环境/ 中/ 的/ 应用/ 。",
                "高锰酸钾/ ,/ 强氧化剂/ ,/ 紫红色/ 晶体/ ,/ 可/ 溶于/ 水/ ,/ 遇乙醇/ 即/ 被/ 还原/ 。/ 常/ 用作/ 消毒/ 剂/ 、/ 水/ 净化剂/ 、/ 氧化剂/ 、/ 漂白剂/ 、/ 毒气/ 吸收/ 剂/ 、/ 二氧化碳/ 精制剂/ 等/ 。",
                "《/ 夜晚/ 的/ 骰子/ 》/ 通过/ 描述/ 浅/ 草/ 的/ 舞女/ 在/ 暗夜/ 中/ 扔骰子/ 的/ 情景/ ,/ 寄托/ 了/ 作者/ 对庶民/ 生活区/ 的/ 情感",
                "这个/ 像/ 是/ 真的/ [/ 委屈/ ]/ 前面/ 那个/ 打扮/ 太/ 江/ 户/ 了/ ,/ 一点/ 不/ 上品/ ./ ./ ./ @/ hankcs",
                "鼎泰丰/ 的/ 小笼/ 一点/ 味道/ 也/ 没有/ ./ ./ ./ 每样/ 都/ 淡淡/ 的/ ./ ./ ./ 淡淡的/ ,/ 哪/ 有/ 食堂/ 2A/ 的/ 好次",
                "克里斯蒂娜·克罗尔/ 说/ :/ 不/ ,/ 我/ 不是/ 虎妈/ 。/ 我/ 全家/ 都/ 热爱/ 音乐/ ,/ 我/ 也/ 鼓励/ 他们/ 这么/ 做/ 。",
                "今日/ APPS/ :/ Sago Mini Toolbox培养/ 孩子/ 动手/ 能力",
                "财政部/ 副部长/ 王保安/ 调任/ 国家/ 统计局/ 党组/ 书记",
                "2/ ./ 34/ 米/ 男子/ 娶/ 1/ ./ 53/ 米/ 女/ 粉丝/  称夫妻/ 生活/ 没问题",
                "你/ 看过/ 穆赫/ 兰/ 道/ 吗",
                "乐/ 视/ 超级/ 手机/ 能否/ 承载/ 贾布斯/ 的/ 生态/ 梦"
            };
            var segment = new HMMSegment();

            for (int j = 0; j < testCases.Length; j++)
            {
                var terms = segment.Seg(testCases[j]);

                var sb = new StringBuilder();
                for (int i = 0; i < terms.Count; i++)
                {
                    if (i != 0)
                    {
                        sb.Append("/ ");
                    }
                    sb.Append(terms[i].word);
                }
                Assert.AreEqual(expects[j], sb.ToString());
            }
        }
示例#4
0
        /// <summary>
        /// 执行索引程序入口
        /// </summary>
        /// <param name="args"></param>
        public override void Run(object[] args)
        {
            Init(args);
            segment = HMMSegment.GetInstance();
            DataSaver dataSaver = new DataSaver();

            string rawDatafolder = GetRootFolder() + "\\RawData";
            string folder        = GetRootFolder() + "\\ISE";

            try
            {
                string[] files = Directory.GetFiles(rawDatafolder);
                //if (files.Length < 2)
                //{
                //    // 如果个数小于等于1,则休眠10min
                //    Thread.Sleep(1000 * 60 * 10);
                //}
                for (int i = 0; i < files.Length; i++)
                {
                    if (!fileVisited.Contains(files[i]))
                    {
                        fileVisited.Add(files[i]);
                        try
                        {
                            Console.WriteLine(i + "/" + files.Length);
                            dataSaver.AnalysisData(folder, files[i]);
                        }
                        catch (Exception exception)
                        {
                            Console.WriteLine(exception);
                        }
                    }
                }
            }

            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }
示例#5
0
文件: Host.cs 项目: ZhenghaiYe/iveely
        private static void Init()
        {
            // 加载分词组件
            Console.WriteLine("[1/6]正在加载分词组件...");
            segment = HMMSegment.GetInstance();

            // 加载文本索引文件
            Console.WriteLine("[2/6]正在加载文本索引数据...");
            LoadTextIndex();

            // 加载数据文件
            Console.WriteLine("[3/6]正在预加载文本数据...");
            LoadRawData();

            // 加载知识引擎数据
            Console.WriteLine("[4/6]正在加载知识引擎数据...");
            LoadKnowledgeData();

            // 加载知识引擎索引数据
            Console.WriteLine("[5/6]正在加载知识索引数据...");
            LoadKnowledgeIndex();
        }
示例#6
0
        private static void Init()
        {
            // 加载分词组件
            Console.WriteLine("[1/6]正在加载分词组件...");
            segment = HMMSegment.GetInstance();

            // 加载文本索引文件
            Console.WriteLine("[2/6]正在加载文本索引数据...");
            LoadTextIndex();

            // 加载数据文件
            Console.WriteLine("[3/6]正在预加载文本数据...");
            LoadRawData();

            // 加载知识引擎数据
            Console.WriteLine("[4/6]正在加载知识引擎数据...");
            LoadKnowledgeData();

            // 加载知识引擎索引数据
            Console.WriteLine("[5/6]正在加载知识索引数据...");
            LoadKnowledgeIndex();
        }
示例#7
0
 /// <summary>
 /// 构造方法
 /// </summary>
 protected Invert()
 {
     Table      = new DimensionTable <TKey, TKey, TValue>();
     Participle = HMMSegment.GetInstance();
 }
示例#8
0
 public KnowlegeIndex()
 {
     _questionGetter = new QuestionGetter();
     entities        = new List <KnowledgeEntity>();
     _segment        = HMMSegment.GetInstance();
 }