private Semantic() { _dictionary = new Hashtable(); _semanticAttributes = new Hashtable(); //LoadDictionary("Init\\Chinese Dictionary.txt"); //LoadSemanticRank("Init\\SemanticAttribute.txt"); segment = HMMSegment.GetInstance(); }
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()); } } }
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()); } }
/// <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); } }
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(); }
/// <summary> /// 构造方法 /// </summary> protected Invert() { Table = new DimensionTable <TKey, TKey, TValue>(); Participle = HMMSegment.GetInstance(); }
public KnowlegeIndex() { _questionGetter = new QuestionGetter(); entities = new List <KnowledgeEntity>(); _segment = HMMSegment.GetInstance(); }