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算法”,效果看起来也不错。

代码地址github: https://github.com/anderscui/jieba.NET
我们直接在VS2013的nuget包管理器里面搜索下载也行:

看到评论里面有人说, 将 工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作 分词试试, 能分好就不错, 我自己测试了下:

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口交换机等技术性器件的安装工作"); // 默认为精确模式,同时也使用HMM模型
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();

运行结果:

不错吧, 除去全模式外, 其余的都能满足我们人所读的顺序

最新文章

  1. Windows 7下硬盘安装Ubuntu 14.04图文教程
  2. #笔记#JavaScript进阶篇一
  3. 17111 Football team
  4. 摘抄--使用cos实现多个文件上传详解
  5. web sevice 生成代理类及使用
  6. 集成activiti-modeler 到 自己的业务系统
  7. 自己的第一个android应用(天气)
  8. php+Mysql页面注册代码
  9. Windows Forms DataGridView中合并单元格
  10. 常见的Linux 的命令
  11. [基础常识]申请免费SSL证书 - 阿里云云盾证书 - Digicert+Symantec 免费型DV SSL
  12. SQL语句-UPDATE语句
  13. 复制数据库的Shell命令
  14. Django lazy load 懒加载 倒序查询
  15. 使用kibana操作elasticsearch实现增删改查
  16. 树莓派(RespberryPi)安装手记
  17. Linux电源管理_autosleep--(五)【转】
  18. PAT甲题题解-1051. Pop Sequence (25)-堆栈
  19. 真正理解 git fetch, git pull 以及 FETCH_HEAD
  20. Unity透明Shader

热门文章

  1. OpenCV特征点检测匹配图像-----添加包围盒
  2. 如何正确的理解和解决 ORA-01843:not a valid month
  3. Activity之间的数据传递-android学习之旅(四十七)
  4. Unity UGUI之Canvas&EventSystem
  5. go: 一个通用log模块的实现
  6. Linux Debugging(三): C++函数调用的参数传递方法总结(通过gdb+反汇编)
  7. 小强的HTML5移动开发之路(11)——链接,图片,表格,框架
  8. 【一天一道LeetCode】#70. Climbing Stairs
  9. [WinForm]dataGridView导出到EXCEL
  10. Cannot start service MSSQL$MICROSOFT##WID on computer