zoukankan      html  css  js  c++  java
  • 第四章谈谈中文分词

    1.中文分词的演变

    由于中文等语言,字与字之间是没有空格隔开的,所以需要分词。最简单的分词就是查字典。就是从左到右或者从右到左扫描一句话,然后找到最长的匹配。这种方法可以解决七八成的分词问题。但是毕竟太简单了一点。后来哈工大王晓龙博士把查字典方法理论化,发展成最少词数的分词理论,即一句话应该分成数量最少的词串。但是他无法解决“北京大学生”这样的二义性分割问题。直到20世纪90年代,郭进博士用统计语言模型成功解决了分词二义性问题。假设我们有几种不同的分词方法,那么最好的方法应该是出现概率最大的划分。

    在分词上,没有一种绝对正确的划分,根据不同的需要,我们可能有不同的划分方法,“北京大学”,我们可以直接分成“北京大学”,或者分成“北京”+“大学”。

    另外不止中文需要分词,有时候,英语也需要分词,尤其是单词间空格不清楚的手写体。

    最后,虽然统计语言模型分词可以取得比人工更好的结果,但也不是完全正确,我们只能遵循“大多数人的想法”。

    2.延伸阅读:工程上的细节问题

    2.1 分词一致性

    正如上面说的,分词没有绝对正确的,对一个词可能会有不同的分法。我们不能说准确率97%的一定比95%的分词器好,只能说97%的和人工分词结果更吻合。

    2.2 词的颗粒度和层次

    分词不一致的主要原因在于人们对词的颗粒度的认识问题。有些地方(比如机器翻译),颗粒度大的效果好,但是有些地方(比如网页搜索),颗粒度小的比较好。次要原因是分词的错误造成的,比如把“北京大学生”分成“北京大学”、“生”,这种属于越界型错误;还有就是把“性价比”这样的词分成三个,这是覆盖型错误。

    我们不可能对不同的应用构造不同的分词器,最好是让一个分词器同时支持不同层次的词的切分。

    首先我们需要“北京”、“大学”这样的即本次和“北京大学”这样的复合词,为它们各建立一个语言模型L1,L2。先用基本词分句,在用复合词整合。

  • 相关阅读:
    [labuladong算法小抄]如何判断回文链表
    [PHP]json_encode中文JSON_UNESCAPED_UNICODE在php5.3返回null
    [javascript] 使用javascript实现webrtc视频聊天demo
    [Linux] grep查找文本时反斜杠转义问题
    [css] 使用css画文件夹icon和话筒icon
    [Go] 开源客服系统以及多商户客服系统-GOFLY在线客服
    [javascript] vue和elementui中的键盘事件
    Elasticsearch 学习之不停止服务,完成升级重启维护操作
    unassigned_shards一直无法分配
    Jenkins+Gradle实现打包时自定义项
  • 原文地址:https://www.cnblogs.com/KingKou/p/3810870.html
Copyright © 2011-2022 走看看