本文摘自PHP中文网,作者黄舟,侵删。
jieba是python下的一个检索库, 有人将这个库移植到了asp.net 平台下, 完全可以替代lucene.net以及盘古分词的搭配之所以写这个, 其实是因为昨天面试时, 被问到网站的关键字检索你怎么做?我就是说了下sql模糊查询以及sql语句优化, 缓存。以前接触过关键字分词, 但是在.net平台下没有成熟的分词检索库, 不像java有lucene, 尽管也移植到了.net, 但是更新慢。我之前学python的时候留意到了python的分词检索, 以及做词云, 就想着有没有python的分词检索库移植到了.net的查了下python的jieba库 果然有移植的!
原文介绍: jieba中文分词的.NET版本:jieba.NET
.NET平台上常见的分词组件是盘古分词,但是已经好久没有更新了。最明显的是内置词典,jieba的词典有50万个词条,而盘古的词典是17万,这样会造成明显不同的分词效果。另外,对于未登录词,jieba“采用了基于汉字成词能力的HMM模型,使用了Viterbi算法”,效果看起来也不错。
我们直接在VS2013的nuget包管理器里面搜索下载也行:

看到评论里面有人说, 将 工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作 分词试试, 能分好就不错, 我自己测试了下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var segmenter = new JiebaSegmenter();
Console.WriteLine( "原检索语句: 工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作" );
var segments1 = segmenter.Cut( "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作" , cutAll: true );
Console.WriteLine( "[全模式]: {0}" , string .Join( "/ " , segments1));
var segments2 = segmenter.Cut( "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作" );
Console.WriteLine( "【精确模式】:{0}" , string .Join( "/ " , segments2));
var segments3 = segmenter.Cut( "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作" );
Console.WriteLine( "【新词识别】:{0}" , string .Join( "/ " , segments3));
var segments4 = segmenter.CutForSearch( "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作" );
Console.WriteLine( "【搜索引擎模式】:{0}" , string .Join( "/ " , segments4));
var segments5 = segmenter.Cut( "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作" );
Console.WriteLine( "【歧义消除】:{0}" , string .Join( "/ " , segments5));
Console.Read();
|
运行结果:

不错吧, 除去全模式外, 其余的都能满足我们人所读的顺序
以上就是asp.net下的中文分词检索工具分享的详细内容!
相关阅读 >>
asp.net mvc实现404跳转的代码实例
asp.net关于cookie跨域的问题
asp.net反射简单应用实例代码
asp.net连接access数据库相对路径写法
asp.net mvc如何使用bootstrap的实例分析
asp.net通过remoting service上传文件的实例详解
asp.net中怎样用mvc5的miniprofiler对mvc进行性能监控
asp.net实现简单数字验证码实例
什么是asp.net core?介绍asp.net core的优势
asp.net core简单介绍教程(1)_实用技巧
更多相关阅读请进入《asp.net》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » asp.net下的中文分词检索工具分享