Skip to content

关于感知机与CRF对空格与标点的词性识别问题 #797

Closed
@blizzardy

Description

注意事项

请确认下列注意事项:

  • 我已仔细阅读下列文档,都没有找到答案:
  • 我已经通过Googleissue区检索功能搜索了我的问题,也没有找到答案。
  • 我明白开源社区是出于兴趣爱好聚集起来的自由社区,不承担任何责任或义务。我会礼貌发言,向每一个帮助我的人表示感谢。
  • 我在此括号内输入x打钩,代表上述事项确认完毕。

版本号

当前最新版本号是:1.6.3
我使用的版本是:portable-1.6.3

我的问题

综合比较其他几种分词器,感知机对词性的标注相对更准确,但是对于空格和标点符号(尤其是英文标点)的标注存在许多问题。

例如对以下这句话的标注:
"你好, 我想知道: 风是从哪里来; 雷是从哪里来; 雨是从哪里来?"

perceptron:

(你/r) (好/a) (,/w) ( /v) (我/r) (想/v) (知道/v) (:/w) ( 风/n) (是/v) (从/p) (哪里/r) (来/v) (; 雷/d) (是/v) (从/p) (哪里/r) (来/v) (;/w) ( 雨/n) (是/v) (从/p) (哪里/r) (来/v) (?/w) 

crf:

(你好/d) (,/v) ( /v) (我/r) (想/v) (知道/v) (:/w) ( 风/n) (是/v) (从/p) (哪里/r) (来;/v) ( 雷/n) (是/v) (从/p) (哪里/r) (来/v) (;/w) ( 雨/n) (是/v) (从/p) (哪里/r) (来/v) (?/v) 

viterbi:

(你好/l) (,/w) ( /w) (我/r) (想/v) (知道/v) (:/w) ( /w) (风/n) (是从/v) (哪里/r) (来/v) (;/w) ( /w) (雷/n) (是从/v) (哪里/r) (来/v) (;/w) ( /w) (雨/n) (是从/v) (哪里/r) (来/v) (?/w) 

重点关注空格与标点的分词,结果发现:感知机与CRF对有时空格与标点识别为其他词性,甚至会与前后的词成为组合,反而默认的viterbi对于标点的处理更好。

最近开始接触这方面,尚未仔细阅读源码,请问对于空格与标点是如何处理的,能否改进?请指导。

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions