【NLP_Stanford课堂】句子切分

时间:2023-03-09 17:29:18
【NLP_Stanford课堂】句子切分

依照什么切分句子——标点符号

  1. 无歧义的:!?等
  2. 存在歧义的:. 英文中的.不止表示句号,也可能出现在句子中间,比如缩写Dr. 或者数字里的小数点4.3
  3. 解决方法:建立一个二元分类器
    1. 检查“.”
    2. 判断这个是不是出现在句尾
    3. 具体使用手写规则(正则表达式)、机器学习分类器,最简单的是决策树
    4. 决策树:
      1. 首先检查是否在该词之后有很多空白行,如果是,则该词是句尾,否则检查下一项
      2. 检查最后一个标点是不是?, !, 或者:,如果是,则该词是句尾,否则检查下一项
      3. 检查最后一个标点是不是句号,如果否,则该词不是句尾,并结束,否则检查下一项
      4. 检查该词是不是“etc”或者其他缩写,如果是,则该词不是句尾,否则是句尾
      5. 【NLP_Stanford课堂】句子切分, E-O-S 表示End-Of-Sentence
      6. 其都是基于经验所建,可以有更复杂的规则如下:
        1. 带.的词:检查第一个字母是不是大写、或者小写、是不是缩写(比如Mr.)、是不是数字
        2. 检查.之后的下一个单词:第一个字母是不是大写、小写、缩写或数字
        3. 检查带有.的数字:
          1. 检查长度,一般缩写词的长度较短
          2. 检查概率:在语料库中检索该词作为句尾出现的概率
          3. 检查概率:在语料库中检索.之后的那个单词作为句首出现的概率
      7. 决策树的本质就是一系列if-then-else的声明,所以关键在于如何选择特征,也就是if里的条件语句。手动选择特征往往很难,所以一般用机器学习的方法提取特征
      8. 特征提取之后,也可以被用于其他分类器,比如逻辑回归、SVM、神经网络等等