`
ansjsun
  • 浏览: 203807 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Totoro中文分词第二版上线啦

阅读更多
经过不懈的努力.耗费了毕生经历.终于把分词写完了.

事后觉得太过复杂的东西真的不是好玩的..可控性太差了.

推翻恢复.重写.优化经历了一晚上.终于得道了一个还算满意的答案.

呵呵废话不多说了..老规矩.我先介绍下这一版分词.

自己想了好多.参考了好多.主要参考了ictclas.在这里特别感谢 @小李飞刀 对我的无私帮助.

首先你必须明白
1.他是用java写的.
2.他可以整合到lucene
3.他是完全开源的.包括字典创建程序和字典.
4.他还在成长.
5.他还不是完美的

他实现了什么
1.分词(废话)
2.词性标注
3.做了数字和英文的简单分词
4.停用词词典的自定义

1.分词的数据结构.依旧是我最喜欢和最悲催的
  1,1双数组tire树.
       这种结构的最大有点就是快.速度接近极限.但是最大的缺点.也是不可忽视的.词典构造复杂.不容易动态增加删除词语.当然可以用用户自定义词典用来解决这些问题.
  1.2tire树结构.(不解释)
  1.3 图论中的最短路径(不解释)


2.分词的算法
   2.1 经典贝叶斯(里面的公式是参考ictclas的.包括所有的概率统计,ict是开源的应该能直接抄吧呵呵.如果谁有大规模标记好的预料如果愿意可以分享.我有想法做一个自己的统计)
   2.2 Viterbi 算法.求最优路径的一个不错算法.一般和Dijkstra 一起是用
   3.2 其他无

3.设计模式
   3.1 去死.(怎么舒服.怎么好读怎么写)

4.准确率
   4.1 呵呵.废话不多说了我把我收集的所有的歧义句
分词结果如下
词典加载完成用时:1044毫秒
加载关联词典完成用时:3545
[他/n 1, 说/vn 2, 的/ng 3, 确实/ad 4, 在理/a 5]
[长春/ns 1, 市长/n 2, 春节/t 3, 讲话/vn 4]
[结婚/vn 1, 的/ng 2, 和/cc 3, 尚未/d 4, 结婚/vn 5, 的/ng 6]
[结合/vn 1, 成/m 2, 分子/n 3, 时/nr1 4]
[旅游/vn 1, 和/cc 2, 服务/vn 3, 是/vshi 4, 最/ng 5, 好/ad 6, 的/d 7]
[邓/nr1 1, 颖/nr1 2, 超生/vn 3, 前/h 4, 最/ng 5, 喜欢/vn 6, 的/ng 7, 一个/mq 8, 东西/n 9]
[中国/nz 1, 航天/n 2, 官员/n 3, 应邀/vd 4, 到/vn 5, 美国/ns 6, 与/y 7, 太空/s 8, 总署/n 9, 官员/n 10, 开会/vn 11]
[上海/nz 1, 大学/n 2, 城/n 3, 书店/n 4]
[北京/n 1, 大/a 2, 学生/n 3, 前来/vd 4, 应聘/vn 5]
[中外/b 1, 科学/ad 3, 名著/n 3]
[为/y 1, 人民/n 2, 服务/vn 3]
[独立自主/vl 1, 和/cc 2, 平等互利/vl 3, 的/ng 4, 原则/n 5]
[为/y 1, 人民/n 2, 办/vn 3, 公益/n 4]
[这/rzv 1, 事/n 2, 的/ng 3, 确定/vn 4, 不/a 5, 下来/vf 6]
[费/vn 1, 孝/ng 2, 通向/p 3, 人大/n 4, 常委会/n 5, 提交/v 6, 书面/n 7, 报告/n 8]
[aaa/en 1, 分/vn 2, 事/n 3, 实/ng 4, 上/ng 5, 发货/vn 6, 丨/null 7, 和/cc 8, 无/c 9, 哦/o 10, 喝/vn 11, 完/vn 12, 酒/n 13]
[不好意思/ad 1, 清清爽爽/z 2]
[长春市/ns 1, 春节/t 2, 讲话/vn 3]
[中华人民共和国/nsf 1, 万岁/n 2, 万岁/n 3, 万/nr1 4, 万岁/n 5]
[检察院/n 1, 鲍/nr1 2, 绍/nr1 3, 检察长/n 4]
[长春市/ns 1, 长春/ns 2, 药店/n 3]
[乒乓球拍/n 1, 卖/vn 2, 完/vn 3, 了/vn 4]
[计算机/n 1, 网络/n 2, 管理员/n 3, 用/vn 4, 虚拟/vn 5, 机/ng 6, 实现/vn 7, 了/vn 8, 手机/n 9, 游戏/vn 10, 下载/v 11, 和/cc 12, 开源/vn 13, 项目/vn 14, 的/ng 15, 管理/vn 16, 金山/nz 17, 毒/n 18, 霸/ng 19]
[长春市/ns 1, 长春/ns 2, 药店/n 3]
[一/m 1, 年/qt 2, 有/vn 3, 三百六十五/m 4, 个/ng 9, 日出/vn 10,  /null 11, 我/rr 12, 送/vn 13, 你/rr 14, 三百六十五/m 15, 个/ng 20, 祝福/vn 21,  /null 22, 时钟/n 23, 每天/r 24, 转/vn 25, 了/vn 26, 一千四百四十/m 27, 圈/qv 33, 我/rr 34, 的/ng 35, 心/n 36, 每天/r 37, 都/ng 38, 藏/b 39, 着/uzhe 40,  /null 41, 一千四百四十/m 42, 多/m 48, 个/ng 49, 思念/vn 50,  /null 51, 每/d 52, 一/m 53, 天/qt 54, 都/ng 55, 要/vn 56, 祝/nr1 57, 你/rr 58, 快快乐乐/z 59,  /null 60,  /null 61, 每/d 62, 一/m 63, 分钟/qt 64, 都/ng 65, 盼望/vn 66, 你/rr 67, 平平安安/z 68,  /null 69, 吉祥/nz 70, 的/ng 71, 光/n 72, 永远/a 73, 环绕/vn 74, 着/uzhe 75, 你/rr 76,  /null 77, 像/nr1 78, 那/y 79, 旭日东升/vl 80, 灿烂/an 81, 无比/z 82,  /null 83]
[学校/n 1, 学费/n 2, 要/vn 3, 一/m 4, 次/qv 5, 性交/vn 6, 一千/m 7, 元/n 9]
[发展/vn 1, 中国/nz 2, 家庭/n 3, 养猪/vn 4, 事业/n 5]
[安徽省/ns 1, 是/vshi 2, 一个/mq 3, 发展/vn 5, 中/nr1 5, 的/ng 6, 省/vd 7]
[北京/n 1, 理/n 2, 工/ag 3, 大学/n 4, 办事处/n 5]
4633


可以看出借个还是凑合能交代的.起码比起大多数来较好.


5效率
   5.1现在该说效率了.不怎么想说这个,效率很直白的说我不满意.但是能交代.我分的两m的一本小说.大约8秒(加载词典过程3秒) 我用的是air..分秒钟分词20万字左右.


6.还差哪些
   1.人名识别(虽然在上一版本中做了人名识别).但是效果不是很满意.所以打算推到从左.作为一个以写代码为生的人.推到不是问题.重做不是关键.
   2.地名识别,机构名称识别
   3.用户自定义词典.其实上一版中也做了.继续推到重做.因为万恶的用户词典.毁坏了我分词的准确率.所以打算把过程.改一下.
   4.未来.谁能知道呢.



写在结尾.我不怎么擅长表达.但是希望有时间有兴趣的朋友可以尝试下.给我多提一些一件.理论上我会虚心改进.呵呵.大家有什么好的意见和建议也可以提出来.只是希望这个分词能发展好一些.其他木有了..支持国产开源



分享到:
评论
2 楼 ansjsun 2013-03-11  
xussen 写道
这两天一直在找怎么解决双数组冲突的解决办法,总算有个可以参考
作者是通过事先对树节点(Branch)增加的时候进行排序,然后将tempStringMap里面的元素一次性处理冲突,然后一次性写入base数组。
这种方式就造成在makeLibrary的过程中需要比较大的内存来构造排过序的树。(虽然在使用library的时候很节省空间~)
是否有其他方式解决消耗大的内存的问题。

冲突不可避免..所以没有很好的办法能解决...一般双数组构造一次就可以了...所以没在这方面更深入的研究
1 楼 xussen 2013-03-04  
这两天一直在找怎么解决双数组冲突的解决办法,总算有个可以参考
作者是通过事先对树节点(Branch)增加的时候进行排序,然后将tempStringMap里面的元素一次性处理冲突,然后一次性写入base数组。
这种方式就造成在makeLibrary的过程中需要比较大的内存来构造排过序的树。(虽然在使用library的时候很节省空间~)
是否有其他方式解决消耗大的内存的问题。

相关推荐

    PyPI 官网下载 | totoro-0.1.3.zip

    标题中的"PyPI 官网下载 | totoro-0.1.3.zip"指的是这个压缩包文件来源于Python的包索引(Python Package Index)官方网站,PyPI是Python开发者发布自己软件包的地方。"totoro-0.1.3.zip"是具体的软件包名称,表明这...

    totoro-server:totoro的服务器端

    totoro服务器 totoro的服务器端。 最新稳定版:v2.0 一、安装 节点要求 >= 0.10.12 从 npm 安装 $ npm install totoro-server -g 如果不行,可以在sudo前加上sudo ,如下。 从github安装 获取最新功能(可能不稳定...

    totorojs.org:totoro的官方网站和文档

    【标题】:“totorojs.org:totoro的官方网站和文档” 【正文】: “totoro”是一个以“龙猫”为名的前端测试工具,它以其简单易用和稳定性著称。这个工具主要面向前端开发者和测试工程师,旨在帮助他们更有效地...

    totoro-selenium-driver:龙猫Selenium驱动程序

    totoro-Selenium驱动程序 驱动程序。安装$ npm install totoro-selenium-driver -g 如果你在中国,请设置PHANTOMJS_CDNURL env:用法链接到 totoro 测试服务器,并告诉它一个新的可用幻影。 $ totoro-selenium-...

    totoro:A simple and stable cross-browser testing tool. 简单稳定的跨浏览器测试工具

    $ npm install totoro -g 如果不起作用,则可以在sudo前添加sudo ,如下所示。 从github安装 获取最新功能(可能不稳定) $ git clone https://github.com/totorojs/totoro && cd totoro $ npm install -g 2.快速...

    Google收件箱的Totoro Zero收件箱「Totoro Zero Inbox for Google Inbox」-crx插件

    在Google收件箱中,当您收到零收件箱时显示Totoro。 支持语言:English (United States)

    Totoro Zero Inbox for Google Inbox-crx插件

    《Totoro Zero Inbox for Google Inbox:打造清零收件箱的独特体验》 在数字化信息爆炸的时代,电子邮件已经成为我们日常工作中不可或缺的一部分。然而,面对堆积如山的邮件,如何保持收件箱的整洁与高效管理,是...

    totoro-driver-base:totoro 驱动程序基类

    totoro-driver-base totoro 驱动程序基类。 安装 $ npm install -s totoro-driver-base 用法 执照 (麻省理工学院许可证) 版权所有 (c) 2014 fengmk2 < > 和其他贡献者 特此授予获得本软件副本和相关文档文件...

    totoro-vue:Totoro商城Vue移动端(SpringBoot + Vue前分离分离全栈开发)

    【Totoro-Vue】是一个基于Vue.js的移动端商城项目,与后端SpringBoot紧密结合,实现了前后端分离的全栈开发模式。项目名中的"Totoro"或许来源于宫崎骏的动画电影《龙猫》,这可能暗示了项目设计时追求的用户友好、...

    Kernel-Master:TOTORO的内核

    "Kernel-Master: TOTORO的内核"很可能是指一个特定版本或定制的Linux内核,由名为TOTORO的开发者或团队维护。在这个项目中,“主内核源”可能指的是该内核的主要源代码仓库,包含了所有核心组件和模块。 Linux内核...

    android_device_samsung_totoro

    CyanogenMod是一个知名的第三方Android操作系统,它提供了更多的自定义选项和性能优化,比原生Android系统更为灵活。 描述中提到的“设备树”在Android世界里是一个关键概念。设备树是Android源码中的一个重要组成...

    totororequests:用于通过Tor网络发送HTTP(S)请求的智能Python模块

    要求: Python 3 Python依赖项: , , 测试日期:卡利2020.1 执照:麻省理工学院入门安装确保在系统上安装了Tor: 基于Debian的: apt install tor 基于RHEL: yum install tor 然后安装Totoro: pip3 install ...

    Totoro商城后台系统(SpringBoot+Vue前后端分离全栈开发).zip

    毕业设计 基于springboot mysql Vue的系统开发,供参考,提供说明材料+源代码 毕业设计 基于springboot mysql Vue的系统开发,供参考,提供说明材料+源代码 毕业设计 基于springboot mysql Vue的系统开发,供参考,...

    totoro625.github.io:totoro625的博客

    佛系增设了多个镜像分类网址备注主站GitHub pages + Cloudflare二级镜像Cloudflare pages (Git同步)二级镜像Coding pages (Git同步)三级镜像Coding pages 国内三级镜像Coding pages 海外二级镜像(已备案域名不定时...

    totoro:基于xposed修改手机信息

    totoro简介基于xposed修改手机信息,修改的内容包括:1、系统和硬件信息2、屏幕分辨率3、基站和GPS定位信息4、网络信息5、wifi信息6、Telephony信息依赖环境JDK1.6+Android SDK r22+Android Studio

    totoro:比较已使用的工作流程的升级进展)

    totoro totoro:龙猫(日语:となりのトトロ)是吉卜力工作室与德间书店于1988年推出的一部动画电影,由宫崎骏所执导(via: ) Usage package中提供了我从事前端以来使用过的编译工作流,目前有v1, v2, v3版本详细...

    龙猫雨天「Totoro Rainy Day」-crx插件

    [更新 - 平铺固定]来自龙猫的经典场景。 适合所有的屏幕分辨率。 We Are Fanboys查找更多主题... [更新 - 平铺固定]来自龙猫的经典场景。 适合所有的屏幕分辨率。 来自...支持语言:English (UK)

    rusty-rsa:RSA的Rust实现

    这是一个不好的名字(很可能我不是第一个使用该名字的人),并且不应该用于任何严重的事情(除了获得我的成绩之外)。 用法 产生金钥 rsa_lixo --keysize 256 --key totoro --generate_key 这将生成一个名为totoro...

Global site tag (gtag.js) - Google Analytics