Open hotoo opened 10 years ago
不好意思,过了这么久才看到
建议在分词前使用 split(/\s+/)
来分割
这个不准备修复了么?
1、导致自动把一 一
合并的原因是:分词过程中是没有记录空格的,因此一 一
的分词结果是['一', '一']
,由于默认启用了一个优化功能,把相邻两个数字合并了;
2、如果要修复的话,目前最简单的方法就是分词前使用 split(/\s+/)
来分割一次;
3、如果直接在 segment 模块中修复的话,我需要再考虑一下这个改动是否会对一些现有的程序产生影响。
已修复。请使用 v0.0.5 版本
:+1: 建议仓库打上 tag,用 milestones, release 这些管理起来。
OK,已打上标签“v0.0.5”
在 Node.js 上使用,直接用 npm install segment@0.0.5
即可安装指定版本
还是有问题,建议 Reopen。
0.0.5 版把空白字符当前分词要素,但是最终结果中还是忽略了空白字符本身:
segment.doSegment("a a")
// 输出结果:
[ { w: 'a', p: 16 }, { w: 'a', p: 16 } ]
// 正确结果应该是:
[ { w: 'a', p: 16 }, { w: ' ', p: 16 }, { w: 'a', p: 16 } ]
这不是Bug,而是设计的时候分词结果自动去掉了“无用”的空白字符。
不知道是否有必要保留这些空格
程序处理的时候,空白文本是内容的一部分,不应该被忽略掉。 pinyin 处理时,分词模块忽略空白字符,会导致输出不一致:
han = "a a";
py = pinyin(han);
// 如果分词模块忽略掉空白字符:
py === "aa";
// 正确的应该是。
py === "a a";