问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

trietree有什么用

发布网友 发布时间:2022-05-19 15:39

我来回答

2个回答

懂视网 时间:2022-05-19 20:00

上一篇中我们对TrieTree服务有了一个整体的了解,不知道大家下载完之后有没有真正玩过这个TrieTree服务,如果你还没有玩过,没关系,本文将一步步教你配置和使用TrieTree服务。

TrieTree服务由几大组件组成,如下图

image

Dictionary组件是核心库,主要提供基本数据定义、配置信息定义,数据结构表示,同时也提供了POSType(参考Pangu的Part of Speech定义)。由于TrieTree是利用内存来加载数据的,所以这个组件的设计直接决定了内存的占用大小和数据查询性能。Dictionary.Providers组件主要负责提供各种自定义数据提供者(DataProvider),你可以把它理解为字典数据的加载器,例如自带的PanguDictProviders就是负责加载盘古自己的dict格式的字典。TrieTree服务的加载器是高度可配置的,你可以通过配置文件来选择你需要使用的加载器,如下所示:
代码如下:
<dictionaryService>
<provider name="pangu_dict" uri="F:Dropbox esearchNLPTrieTreeServiceDictionaryService.UnitTestDatapanguDict.dct" type="BluePrint.Dictionary.Providers.PanguDictProvider, BluePrint.Dictionary.Providers" />
<provider name="IKdict" uri="F:Dropbox esearchNLPTrieTreeServiceDictionaryService.UnitTestDataIKdict.dic" type="BluePrint.Dictionary.Providers.TxtFileProvider, BluePrint.Dictionary.Providers"/>
</dictionaryService>

上面这个配置选择了2个加载器,分别是PanguDictProvider、TxtFileProvider(纯文本格式加载器,你可以理解为.csv字典加载器),这里的TxtFileProvider是用来加载IKAnalyzer中的IKdict.dic文件的。在服务启动后(调试模式)你会看到类似的提示:

image

TrieTree中由于使用了log4net的ColoredConsoleAppender,所以能够显示不同颜色的提示信息。你会看到日志中有pangu_dict和IKdict的加载时间,这里的名字是由app.config中的provider的name属性设置的。其实TrieTree也是支持加载基于MongoDB的字典的,只是由于牵扯到相对复杂的MongoDB的配置和一些概念,就不在本文中讲解了,我会考虑在之后的教程中提供。

DictionaryService组件是TrieTree服务的容器组件,主要包含了Windows服务的实现,还有Windows服务的安装器。这个组件是一个控制台程序,它为用户提供了两种运行模式——调试模式和Service模式。调试模式就是直接运行控制台,提供基于log4net的日志信息,方便调试和断点;而Service模式是直接运行为一个Windows服务,主要用于测试与生产环境。由于是控制台程序,切换模式是通过参数完成的,例如-i 表示安装windows服务,-u表示卸载windows服务, -c表示启动控制台模式。

以上便是TrieTree服务的三大核心组件,但我还打算介绍一个非常实用的附加组件DictionaryQuery。

image

虽然名字也叫查询分析器,但其实和SQL的查询分析器不是一个级别的,你不用去比较,没啥意思。这东西主要是两个作用,第一,测试TrieTree服务的运行情况;第二,检查加载字典后字典中的词的状态。你也可以用右侧的POS过滤器进行筛选,多选表示或的关系,比如你选择了地名和人名,你搜索“上海”,结果是“上海, 频率:251, 类型:地名(A_NS)”,如果找不到的话会显示红色的“未找到合适词”,如下所示。

image

你还可以选择匹配的方式,即最大正向匹配、最大反向匹配和完全匹配,这个就不用我多解释了吧。对了,运行这玩意之前字典服务必须打开,且你要指向你配置的TrieTree服务的端口,默认是7010,图中配置的是dict://127.0.0.1:7010,注意字典服务的URI是以dict://开头的。

热心网友 时间:2022-05-19 17:08

trie tree, 是一个高效处理字符串的比较常见的算法,能够让我们在复杂度 O(log(n))的情况下插入和查询一个字符串-trie tree, is an efficient treatment of the more common string algorithms, to enable us to the complexity of O (log (n)) the case of insert and query a string
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 房地产营销业的广告费、业务宣传费的税前扣除标准是多少? sd卡是125g的,明明只用了很小一部分存储空间,移动软件时为什么显示空间不足? Corel VideoStudio Pro X4会声会影怎么将视频旋转? 货车可以买盗抢险吗 公司车买不买盗抢险 抵押车会不会被偷回去 债权转让的车,也就是抵押车买了之后车主把车再自己偷回去算违法吗?我有抵押合同,并且我上了盗抢险 尿常规检测测出尿中含有红细胞,可能会是什么病的? 尿液中有红细胞是什么原因 尿检中有2个红细胞怎么回事? 尿常规检查总是有红细胞怎么回事? 尿液中有红细胞怎么回事尿液中有红细胞怎么回 蚂蚁花呗怎么能500提额到2000呢,谢谢 尿常规检查红细胞增多是怎么回事 肾内科:尿常规检查总有红细胞(医生或有过相关经历者进) 尿液中含有红细胞是怎么回事 尿液化验中有7个红细胞,是什么原因,有什么影响 尿常规有红细胞是怎么回事? 尿液里有红细胞是怎么回事 浙江安吉有什么好玩的景点 实况2012经典球队球员名单 求幸せの表现的歌词 清晨做瘦身操,身体会怎么样呢? 怎样锻炼能使神清气爽 操作系统高手进!什么是组件服务!有什么作用!与经常说的组件有什么区别? 无翼鸟好看吗? 无翼之鸟怎么样 无翼鸟的联想 鸟有翼,这是常识。但有一种鸟,却无翼。她端庄妩媚,能舞善啼,极讨人欢心。新西兰人爱之尤 无翼鸟是什么意思 无翼雨林最后一张图怎么过 穿越到天使身上从此成为鸟人,从2翼成长到36翼..从白天使到血天使.灰天使.冰晶天使.无翼 和的番怎么组词 翻和番怎么组词 恒丰信用卡哪个年收入怎么填不进去? 洛阳市契税 什么是组件服务,它的作用是什么,怎么用. 夫妻适合开什么小吃店 花甲米线怎么样? 开一家花甲米线店怎么样? 花甲米线利润怎么样,开花甲米线店赚钱嘛 三星7100/n7100怎么设置来电铃声