Shihanmax's blog 🚀

< Back

HMM在中文分词中的应用

前言

分词,命名实体识别,关系抽取,甚至是指代消解,都可以看成是一个序列标注的问题,这是NLP领域的基本问题,掌握序列标注对于更好地理解NLP任务有很大的帮助。这篇文章主要参考1,是对这篇博文和网上其他一些资料的阅读笔记。

分词的背景

分词是指将一句话中的字串切分成合理的块,组成合理的词语的过程。

一些语言(如英文)使用空格分割词汇,词和词之间有着天然的分割线,对这类语言,一般只需要按空格切词,去除停词,再考虑特殊的词汇(如Mr’s)即可,但中文的字和字之间没有任何分隔符,对于一句话“今天天气很好”,分词的任务是寻找一组最佳的分割方式,使得字和字之间的搭配达到语义上和语法上的概率最大化。

对于示例语句“今天天气很好”,一个合理的分词结果为“今天/天气/很/好”。

目前常用的分词方法有以下三种:

  1. 基于语言学知识的规则化方法(最大匹配、最小切分等)
  2. 基于大量预料的机器学习方法(如HMM、CRF等模型)
  3. 规则与统计模型相结合的方法

模型定义

对于分词这种序列标注任务,定义原语句为观测序列O,分词结果为标注序列L。我们的目标是寻找最优的标注序列,使得给定O时,L出现的概率最大,即$argmaxP(L\mid O)$。

一种标注序列的定义方式是BOI标签,B代表词开头,O代表其它,I代表词中间,在分词任务中,可以仅适用B和I,如对示例文本的标注结果为:“今/B天/I天/B气/I很/B好/B”。

对于给定的长度为n的文本,所有可能的序列标注情况为$2^n$种。

待完成。。。

参考

PGM