NLP——操作步骤讲义与实践链接

数据集与语料

  • 语料是NLP的生命之源,所有NLP问题都是从语料中学到数据分布的规律
  • 语料的分类:单语料,平行语料,复杂结构
    在这里插入图片描述
  • 语料的例子:Penn Treebank, Daily Dialog, WMT-1x翻译数据集,中文闲聊数据集,中国古诗数据集
  • 语料来源:公开数据集,爬虫,社交工具埋点,数据库,上述数据集如何获取?这里 (吐槽一下,B站的这个视频讲得很一般,浪费好几个小时时间,收获甚微,作为科普快速拉一下可以)

句子理解

用计算机处理一个句子,主要包含以下几个方面:分词词性识别命名实体识别依存句法分析

分词

分词与NLP的关系

  • 分词是中文语言特有的需求,是中文NLP的基础,没有中文分词,我们对于语言很难量化,进而很难运用数学的知识去解决问题。而对于拉丁语系是不需要分词的,因为它们有空格天然的隔开

  • 中分分词(Chinese Word Segmentation)指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。分词操作的输入是句子,输出是词序列,如在这里插入图片描述

  • 关于分词,可参阅B站上一个视频动手学中文分词,(这个视频还不错,理论部分讲得不是很细,但代码部分很细,通过debug帮助理解算法)该系列课程讲解了三种分词算法及其实现、中文分词工具Jieba分词的用法,最后实现了一个简单的在线分词工具,内嵌了自研的三种算法以及调用Jieba分词工具,原视频给的百度链接无效,我跟做的Flask项目online_fenci资源:链接:百度网盘 提取码:ci07 。由于缺少原视频中css, js等样式文件,所有页面画风有点。。。丑,只能将就看。

词性识别

词性识别的输入是一个句子,输出是识别出的词性,例如,对于特朗普昨天在推特上攻击拜登这句话,在对其进行分词后,紧接着做词性识别,得出与词序列一一对应的词性序列,如:特朗普-名词人名(nh), 昨天-名词时间(nt),在-介词(p)
在这里插入图片描述
在这里插入图片描述

命名实体识别

依存句法分析

在这里插入图片描述

预处理

  • tokenize:把词向量化,例如,把一个词“apple”向量化成一个长度512的向量,以便用计算机能够处理的方式进行计算处理
  • 命名实体识别:把词中的实体找出来
    一些预处理工具:
    预处理的工具包括:
  • NLTK:官网地址,基本的英文操作都支持
  • SnowNLP:https://github.com/isnowfy/snowlp,中文NLP处理工具,可以进行一些基本操作,如情感分析(积极or消极),简繁转换,分词,标注,计算指标等
  • Pyrouge:测评文本摘要好坏
  • LTP: https://ltp.ai/, https://github.com/HIT-SCIR.ltp, 哈工大做的开源工具
  • Gensim: 实现Tf-ldf, LSA, LDA, Word2vec等技能
  • TF-IDF,统计词频,词的文档频率,制作词云

词向量模型——word2vec

词向量的通俗理解,如果用CBOWSkip-gram模型训练词向量,参阅这里
两种构建词向量的模式:CBOW模型与Skip-gram模型

Skip-gram模型

Skip-gram模型构建训练数据的方法如图,对于Thou shalt not make a machine in the likeness of a human mind这句话,用一个长度为5(一般为奇数)的滑窗在句中扫过,将input_word前2个词与后2个词作为output_word(或者叫target_word),构建出的数据集如下所示。
在这里插入图片描述