Fork me on GitHub

NLP札记1

NLP(Natural Language Processing),自然语言处理,是一门融合了计算机科学、人工智能以及语言学的交叉学科。

自然语言和编程语言对比

  1. 自然语言比编程语言的词汇量丰富
  2. 自然语言是非机构化的;编程语言是结构化的。结构化指的是信息具有明确的结构关系,比如编程语言中具有类和成员、数据库中的表和字段等,都可以通过明确的机制来进行读写。
  3. 自然语言存在大量的歧义,这些歧义根据语境的不同变现为特定的义项。
  4. 自然语言容错性高,编程语言中程序员必须保证拼写、语法绝对规范。
  5. 编程语言的变化缓慢温和点,自然语言相对迅速和嘈杂些

NLP的层次

  1. NLP系统的输入源有3个:语音(语音识别)、图像(光学字符识别)和文本。语音和图像最终都会转成文本。
  2. 词法分析
    1. 中文分词:将文本分割成有意义的词语
    2. 词性标注:确定每个词语的类别和浅层的歧义消除
    3. 命名实体识别:识别出较长的专有名词
  3. 信息抽取
  4. 文本分类和聚类
  5. 句法分析
  6. 语义分析和篇章分析
    1. 词义消歧:确定词语在语境中的含义
    2. 语义角色标注:标注句子中的谓语和其他成分的关系
    3. 语义依存分析:分子句子中的词语之间的语义关系
  7. 高级任务
    1. 自动问答
    2. 自动摘要
    3. 机器翻译

NLP流派

一、基于规则的专家系统

规则指的是由专家制定的确定性流程。

成功的案例有:波特词干算法。

二、基于统计的学习方法

降低对专家的依赖,自适应灵活的语言问题,使用统计方法让计算机能够自动学习语言。

语料库指的是人工标注的结构化文本。

三、NLP历史

  1. 1950年的图灵测试
  2. 1980年第一个自动问答系统
  3. 1990年统计学习方法的兴起
  4. 2010年神经网络的复兴

NLP术语

  • 特征:事物的特点转化为的数值

  • 特征模板:自动提取特征的模板

  • 特征工程:如何挑选特征、如何设计特征模板。特征越多,参数就越多,模型就复杂

  • 语料库:NLP领域中的数据集

    1. 中文语料库:由人工正确切分后的句子集合
      2. 词性标注语料库:切分+为词语指定一个词性的语料库
      3. 命令实体识别语料库:文本内部标注了实体名词和实体类别
      4. 句法分析语料库::CTB(Chinese TreeBank):每个句子都经过了分词、词性标注和句法标注
      5. 文本分类语料库:人工标注了所属分类的文章构成的语料库,比如:情感分类语料库
  • 语料库建设

    • 规范制定
    • 人员培训
    • 人工标注

开源NLP工具

HanLP初识

  1. 安装pip install pyhanlp
  2. 验证sduohadlp
  3. 交互模式hanlp segment
  4. Linux重定向字符形式:hanlp segment <<< "欢迎来到hanlp的世界"
  5. 禁用词性标注hanlp segment —no-tag <<< '欢迎来到hanlp的世界'
  6. 文件重定向输入与输出hanlp segment < input.txt> output.txt -a crf —no-tag
  7. 句法分析hanlp parse <<< '我们是共产主义接班人'
  8. Python中调用hanlp接口
1
2
from pyhanlp import *
print(HanLP.segment('你好,欢迎来到hanlp的世界'))

本文标题:NLP札记1

发布时间:2019年12月13日 - 17:12

原始链接:http://www.renpeter.cn/2019/12/13/NLP%E6%9C%AD%E8%AE%B01-NLP%E7%AE%80%E4%BB%8B.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Coffee or Tea