学习笔记--中文分词(一)

背景

  • 要解决中文分词准确度问题,是否可以提供一个免费版本的通用分词程序

          --像分词这种自然语言处理领域的问题,很难彻底完全解决

          --每个行业或业务侧重不同,分词工具设计策略也是不一样的

中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。

  • 字符匹配法分词 
    1)正向最大匹配法(由左到右的方向) 
    2)逆向最大匹配法(由右到左的方向) 
    3)最少切分(使每一句中切出的词数最小) 
    4)双向最大匹配法(进行由左到右、由右到左两次扫描) 
    5)复杂最大匹配法
  • 理解分词(HMM、MEMM、CRF)
  • 统计分词方法

最常见的分词方法是基于词典匹配

  • 最大长度查找(前向查找,后向查找)

切分方案

• -方案一:切开的开始位置对应位是1,否则对应位是0,来表示“这/苹果不大/好吃”的bit内 
容是:1100010 
• -方案二:还可以用一个分词节点序列来表示切分方案,例如“这/苹果不大/好吃”的分词节点 
序列是{0,1,5,7}

 

数据结构

  • 为了提高效率,不要逐个匹配词典中的词
  • 查找词典所占时间可能占总的分词时间的1/3左右,为了保证切分速度,需要选择一个好的查找词典的方法
  • Trie树常用于加速分词查找词典问题

朴素贝叶斯公式

• P(C)只是一个用来归一化的固定值 
• 另外:从词串恢复到汉字串的概率只有唯一的一种方式,所以P(C|S)=1。 
• 所以:比较P(S1|C)和P(S2|C)的大小变成比较P(S1)和P(S2) 的大小 

• 因为P(S1)=P(南京市,长江,大桥)=P(南京市)*P(长江)*P(大桥)> P(S2)=P(南京,市 
长,江大桥),所以选择切分方案S1。

• 为了容易实现,假设每个词之间的概率是上下文无关的,则: 

取log是为了防止向下溢出,如果一个数太小,例如 
0.000000000000000000000000000001 可能会向下溢出。 
• 如果这些对数值事前已经算出来了,则结果直接用加法就可以得到,而加法比乘 
法速度更快。 

  • 一元模型:如果一个词的出现不依赖于它前面出现的词。
  • 二元模型:如果简化成一个词的出现仅依赖于它前面出现的一个词。
  • 三元模型:如果简化成一个词的出现仅依赖于它前面出现的两个词。

例子:

工具为结巴分词,具体内容下篇讲解

中文分词常见方法:https://blog.csdn.net/m0_37710823/article/details/76064408

猜你喜欢

转载自blog.csdn.net/qq_36527339/article/details/81132752