1
skyline75489 2015-01-19 12:22:20 +08:00
图片看不清啊同学。。。
|
2
hahastudio 2015-01-19 12:37:37 +08:00
sen 没做处理
|
3
zeroday OP @skyline75489 不好意思,我图截大了,右键打开图片可以放大的。
|
4
zeroday OP @hahastudio sen 不是在下面处理了呢?
|
5
proudzhu 2015-01-19 14:31:14 +08:00 1
分词我不懂,不过 word_max_len 这个函数的输入参数你搞清楚了吗?
为啥定义输入个 my_dict,结果调用的时候传个 sen ? |
6
hahastudio 2015-01-19 14:45:47 +08:00 1
@zeroday 第一张图片里 sen 没处理,只转换了 my_dict
|
7
Sylv 2015-01-19 17:13:31 +08:00 via iPhone 1
就是因为图一的 word_max_len 没将输入解码成 unicode,而中文的 str 和 unicode 的 len 是不同的,unicode 的 len 才是中文正确的 len。
|
8
zeroday OP |
9
zeroday OP @proudzhu 分词的思路是这样的,按 append 中逆向最大匹配分词的思路来说。
首先需要有一个字典对切分的单词作匹配。比如类似图中的: 你 我 他 爱 北京 天安门 研究 研究生 命 生命 的 起源 然后传入一个句子进行切分单词,同时定义一个列表来存放匹配成功后的词,比如 研究生命的起源 我们从句子的末尾进行匹配。因为字典词的最大长度为 3,故我们先匹配的词为末尾三个字符,即 的起源 “的起源”不在字典中,故改变词的长度,变为长度2,匹配的词则变为 起源 “起源”在字典中,匹配成功,则存入列表中。 然后句子从“生命的”开始,继续匹配。 如果句子中有列表中不存在的词,则将单个汉字作为词存入列表。 这样,最后匹配的结果为: 研究 生命 的 起源 匹配的结果比图片中正向最大匹配分词更为正确。(正向最大分词的思路和逆向差不多,区别是从头开始匹配) |