[NLP笔记] 分词

本文介绍了分词的基本方法,包括规则分词、统计分词和混合分词,详细阐述了正向最大匹配法、逆向最大匹配法、双向最大匹配法以及HMM、CRF和神经网络等统计模型在分词中的应用。同时,讨论了分词标注方案如IOB1、IOB2等,并列举了常用的分词工具和模型,如jieba和BiLstm+CRF等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分词

规则分词

维护词典 =》用语句中字符串与词典进行比较,找到则切分,否则不切分。

  • 正向最大匹配法(Maximum Match Method,MM法);
  • 逆向最大匹配法(Reverse Maximum Match Method,RMM法)=》使用逆序词典,文档进行倒排处理;
  • 双向最大匹配法(Bi-direction Matching Method);

统计分词

相连的字反复出现,认为它们可能组成的是一个词。

  • 语言模型:为长度为m的字符串确定其概率分布P(w1,w2,…,wm),其中w1到wm依次表示各个词语;
  • 隐马尔可夫模型(HMM模型):一个字在词中占据确定的构词位置,即词首B、词中M、词尾E、单独成词S,所以可以对字在字串中的位置进行序列标注,所以HMM将分词作为字在字串中的序列标注人物来实现;
  • 其他统计分词算法:
    条件随机场(CRF):每个状态不仅与它前面的状态有关,还和它后面的状态有关;
    神经网络分词算法:CNN,LSTM。

补充:HMM(齐次马尔科夫假设,发射概率,转移概率)。

混合分词(规则+统计)

先基于词典进行分词,再使用统计方法辅助(处理未登录词和歧义词)。

分词标注方案

标签:B(Begin),I(Intermediate),E(End),S(Single),O(Other)。
方案:

  • IOB1: 文本块中字符用 I 标记,文本块前为同类型文本块,则该文本块第一个字符用B标记。不属于目标文本块的字符用O标记。
    比如,“唐 长安城 以 隋 大兴城 为 基础”,
    标记为 “I-TIME B-LOC I-LOC I-LOC O I-TIME B-LOC I-LOC I-LOC O O O”。
  • IOB2: 每个文本块都以标签B开始,除此之外,跟IOB1一样。
    比如,“唐 长安城 以 隋 大兴城 为 基础”,
    标记为 “B-TIME B-LOC I-LOC I-LOC O B-TIME B-LOC I-LOC I-LOC O O O”。
  • IOE1: 独立文本块用 I 标记,同类文本块连续时,前一个文本块的最后一个字符用 E 标记。
    比如,“唐 长安城 以 隋 大兴城 为 基础”,
    标记为 “E-TIME I-LOC I-LOC I-LOC O E-TIME I-LOC I-LOC I-LOC O O O”。
  • IOE2: 每个文本块都以标签E结尾,除此之外,跟IOE1一样。
    比如,“唐 长安城 以 隋 大兴城 为 基础”,
    标记为 “E-TIME I-LOC I-LOC E-LOC O E-TIME I-LOC I-LOC E-LOC O O O”。
  • START/END (也叫SBEIO、IOBES): 包含了全部的5种标签,文本块由单个字符组成的时候,使用S标签来表示,由一个以上的字符组成时,首字符总是使用B标签,尾字符总是使用E标签,中间的字符使用 I 标签。
    比如,“唐 长安城 以 隋 大兴城 为 基础”,
    标记为 “S-TIME B-LOC I-LOC E-LOC O S-TIME B-LOC I-LOC E-LOC O O O”。
  • IO: 只使用I和O标签,显然,如果文本中有连续的同种类型实体的文本块,使用该标签方案不能够区分这种情况。
    比如,“唐 长安城 以 隋 大兴城 为 基础”,
    标记为 “I-TIME I-LOC I-LOC I-LOC O I-TIME I-LOC I-LOC I-LOC O O O”。

其中最常用的是IOB2、IOBS、IOBES。具体怎么标记,完全可以根据自己的经验,不必拘泥于这类方案。

分词工具

ref: 自然语言处理相关项目列表(2018/02/05更新)

  1. FoolNLTK
  2. CWS_Dict
  3. multi-criteria-cws
  4. jieba
  5. NLPIR-team/NLPIR

常见模型

  1. BiLstm+CRF
    论文 Bidirectional LSTM-CRF Models for Sequence Tagging by Huang, Xu and Yu
    参考代码实现 tf_ner
  2. BiLstm+BiLstm+CRF
    论文 Neural Architectures for Named Entity Recognition by Lample et al.
    参考代码实现 tf_ner
  3. BiLstm+Cnn+CRF
    论文 End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF by Ma et Hovy
    参考代码实现 tf_ner
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值