汉语分词

什么是汉语分词

所谓分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。

在英文的行文中,单词之间是以空格作为自然分界符的。例如:I am a student.

当然上面是比较正式的定义。在我看来,汉语分词就是将句子划分为一系列合理的词。有人会觉得这不就相当于什么都没说吗。合理,什么算是合理呢——这就是我认为汉语分词需要研究的地方,如何合理的进行划分,这个合理的根据到底是什么。

算法前先聊聊必要性

汉语自然语言处理的第一步。我觉得这句话足以代表汉语分词有多么重要了。这说明了汉语分词是汉语自然语言处理的最基础的根基,可想而知,如果根基除了问题,那么上层建筑就毫无意义可言。

那么目标是什么呢

这里就说说最重要的吧:

第一自然是准确性,我们认为汉语分词的准确性应到达99.9%以上才能基本满足上层使用的要求。有人会问这是为什么呢。(我特别喜欢回答这个问题,因为我有一个很好的例子,23333)假设我们每句话有10个词组成,然后我们现在又10句话需要我们处理。我们那现在汉语分词能达到的最高的准确率98%来说,那就意味着我100个词会分错2个,也就是说我在这10句话中就会分错2句话。(这么一想是不是很可怕,因为那2%的错误率是的上层的错误率达到了20%)。

第二是我们说的运行速度,目前我们认为一个好的汉语分词系统§每秒钟处理1万字或5千词以上。

让我们看看比较厉害的汉语分词系统

1、清华大学SEGTAG系统

此系统着眼于将各种各类的信息进行综合,以便最大限度地利用这些信息提高切分精度。系统使用有向图来集成各种各样的信息,这些信息包括切分标志、预切分模式、其他切分单位。为了实现有限的全切分,系统对词典中的每一个重要的词都加上了切分标志,即标志"ck"或"qk"。"qk"标志表示该词可进行绝对切分,不必理会它是否产生切分歧义;"ck"标志表示该词有组合歧义,系统将对其进行全切分,即保留其所有可能的切分方式。

系统通过这两种标志并使用几条规则以实现有限的全切分,限制过多的切分和没有必要的搜索。规则包括:

1、无条件切出qk类词;

2、完全切分ck类词(保留所有可能子串);

3、对没有标记(qk或ck)的词,若它与别的词之间存在交叉歧义,则作全切分;

否则将其切出。

为了获得切分结果,系统采用在有向图DAG上搜索最佳路径的方法,使用一个评价函数EVALUATE Path),求此评价函数的极大值而获得最佳路径Pmax。所运用的搜索算法有两种,"动态规划"和"全切分搜索+叶子评价",使用了词频、词类频度、词类共现频度等统计信息。通过实验,该系统的切分精度基本上可达到99%左右,能够处理未登录词比较密集的文本,切分速度约为30字/秒。

2、复旦分词系统

此系统由四个模块构成。

一、预处理模块,利用特殊的标记将输入的文本分割成较短的汉字串,这些标记包括标点符号、数字、字母等非汉字符,还包括文本中常见的一些字体、字号等排版信息。一些特殊的数词短语、时间短语、货币表示等,由于其结构相对简单,即由数词和特征字构成构成,也在本阶段进行处理。为此系统特别增加一次独立的扫描过程来识别这些短语,系统维护一张特征词表,在扫描到特征字以后,即调用这些短语的识别模块,确定这些短语的左、右边界,然后将其完整地切分开;

二、歧义识别模块,使用正向最小匹配和逆向最大匹配对文本进行双向扫描,如果两种扫描结果相同,则认为切分正确,否则就判别其为歧义字段,需要进行歧义处理;

三、歧义字段处理模块,此模块使用构词规则和词频统计信息来进行排歧。构词规则包括前缀、后缀、重叠词等构词情况,以及成语、量词、单字动词切分优先等规则。在使用规则无效的情况下,使用了词频信息,系统取词频的乘积最大的词串作为最后切分结果;最后,此系统还包括一个未登录词识别模块,以解决未登录词造成的分词错误。未登录词和歧义字段构成了降低分词准确率的两大因素,而未登录词造成的切分错误比歧义字段更为严重,实际上绝大多数分词错误都是由未登录词造成的。系统对中文姓氏进行了自动识别,它利用了中文姓名的用字规律、频率,以及姓名的上下文等信息。通过对十万以上的中文姓名进行抽样综合统计,建立了姓氏频率表和名字用字频率表,由此可获得任意相邻的二、三个单字构成姓氏的概率大小和某些规律,再利用这些字串周围的一些称谓、指界动词和特定模式等具有指示意义的上下文信息,对字串是否构成姓名进行辨别。实验过程中,对中文姓氏的自动辨别达到了70%的准确率。系统对文本中的地名和领域专有词汇也进行了一定的识别。

3、哈工大统计分词系统

该系统是一种典型的运用统计方法的纯切词系统,它试图将串频统计和词匹配结合起来。

系统由三个部分构成:

一、预处理模块,利用显式和隐式的切分标记(标点符号、数字、ASCII字符以及出现频率高、构词能力差的单字词、数词+单字常用量词模式)将待分析的文本切分成短的汉字串,这大大地减少了需要统计的(无效)字串的数量和高频单字或量词边界串;

二、串频统计模块,此模块计算各个已分开的短汉字串中所有长度大于1的子串在局部上下文中出现的次数,并根据串频和串长对每个这样的子串进行加权,加权函数为 (F为串频,L为串长,即串中汉字个数)。根据经验,局部上下文中取为200字左右。局部上下文的串频计算使用一个滑动窗口(为一个队列式缓冲区,保存当前待切分汉字串及其前后20个短串),当当前待切分汉字串处理完之后,窗口下移一个短串(中心变为相邻下一个短串)。系统采用一个外散列表来记录窗口中的短串,以加快窗口中串频计数。散列函数取为汉字的GB-80位码(二级汉字共用入口95),每个桶中保存窗口中

每一行(短串)上的汉字位置:(短串的行号,汉字列号),并且对于在窗口中出现多次的汉字位置用一个链指针连接起来,则计算某个字串在窗口中出现的频度时,不必将该字串与窗口中的短串逐个匹配,而只需统计在该字串中的各个汉字所对应的位置链表中能够相邻的位置的序列的个数即可。此外,还需要根据词缀集(前、后缀集合)对字串的权值进行提升,例如"处理器"中"处理"的权值很高,但由于对"处理器"的权值作了提升(达到或超过了"处理"),就不会切成"处理/器"。如果某个汉字串的权值超过某一阈值D(取为40),则将此汉字串作为一个新识别的词,将其存入一临时词库中;

三、切分模块,首先用临时词库对每个短的汉字串进行切分,使用的是逐词遍历算法,再利用一个小型的常用词词典对汉字短串中未切分的子串进行正向最大匹配分词。对于短汉字串中那些仍未切分的子串,则将所有相邻单字作为一个权值很低的生词(例如"玛"、"莉")。其中每个模块都对待分析的文本进行了一次扫描,因而是三遍扫描方法。此系统能够利用上下文识别大部分生词,解决一部分切分歧义,但是统计分词方法对常用词识别精度差的固有缺点仍然存在(例如切出"由/来"、"语/用"、"对/联"等)。

经测试,此系统的分词错误率为1.5%,速度为236字/秒。

下面说说我最喜欢的分词算法

人工智能法—— 神经网络方法

为啥喜欢,首先是机器学习越来越火,然后上完机器学习课之后感觉自己真的对这方面比较感兴趣,所以愿意研究一哈,并不是说这个算法是最好的,其实我觉得挺好的。。。

第一步:数据预处理:将语句中的字、单词进行编码,使得神经网络可以识别

               编码方式:直接对字进行固定长度编码、根据词性进行编码

第二步:激励函数的选取:汉语分词问题可以看成在某个词后面时候切分的二分类问题,因此刺激函数可以采用S型函数(Sigmoid函数)

第三步:反向修正形式的确定:在反向回馈修改权值的过程中,我们选择利用梯度下降法来优化是的损失函数最小

第四步:参数的调整:输入层、隐含层、输出层神经元个数的选取,阈值、学习速率的确定,确定合理的训练次数

当然这只是很简单的阐述,详细实现与具体解释见之后说哦~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348

推荐阅读更多精彩内容

  • 转载请注明:终小南 » 中文分词算法总结 什么是中文分词众所周知,英文是以 词为单位的,词和词之间是靠空格隔开,而...
    kirai阅读 9,812评论 3 24
  • 层次化的隐马尔可夫模型 在自然语言处理等应用中,由于处理序列具有递归特性,尤其当序列长度比较大时,HMM的复杂度将...
    我偏笑_NSNirvana阅读 6,606评论 1 15
  • 常用概念: 自然语言处理(NLP) 数据挖掘 推荐算法 用户画像 知识图谱 信息检索 文本分类 常用技术: 词级别...
    御风之星阅读 9,166评论 1 25
  • 背景 英文以空格作为分隔符,而中文词语之间没有分隔; 在中文里,“词”和“词组”边界模糊现代汉语的基本表达单元虽然...
    翼徳阅读 2,743评论 0 5
  • 最近闲来无事,看了一部叫《我家买了一个动物园》。 本人酷爱动物,对于一草一木倍感亲切。 没错,我热爱大自然,钦佩大...
    汤米Tangmi阅读 214评论 0 0