自然语言处理的基本过程01
自然语言处理的基本过程01
自然语言处理的基本过程01
一.获取语料
- 数据集
语料是NLP的生命之源
所有的NLP问题都是从语料中学到数据分布的规律
1.语料的分类
1.单语料
2.平行语料
3.复杂结构
类型 | 说明 | 例子 |
---|---|---|
单语料 | 只有句子和句子集合 | 整理好的英文文档,中文古诗数据集 |
平行语料 | 有句子和句子之间的1vs1对应关系 | 中英文翻译数据集,对话数据集 |
其它 | 复杂的结构 | 知乎的回答和评论数据 |
2.数据集与语料
1.语料例子
①Penn Treebank
数据集地址:
Pytorch集成的数据集DataLoader:https://pytorchnlp.readthedocs.io/en/latest/_modules/torchnlp/datasets/penn_treebank.html
Benchmark结果:https://paperswithcode.com/sota/language-modelling-on-penn-treebank-word
②Daily Dialog
英文对话经典bench mark数据集
Paper:https://arxiv.org/abs/1710.03957
数据集地址:http://yanran.li/dailydialog.html
③WMT-1x翻译数据集
官网:http://www.statmt.org/wmt18/translation-task.html
④中文闲聊数据集
50万中文闲聊数据:https://drive.google.com/file/d/1nEuew_KNpTMbyy7BO4c8bXMXN351RCPp/view?usp=sharing
日常闲聊数据: https://github.com/codemayq/chinese_chatbot_corpus
⑤中国古诗数据集
数据集地址: https://github.com/congcong0806/Chinese-Poetry-Dataset
⑥英文语言模型语料总结:http://nlpprogress.com/english/language_modeling.html
3.获取方法
- 公开数据集
- 社交工具埋点
- 爬虫
- 数据库
二.预处理
1.NLTK
https://www.nltk.org/
基本的英文NLP操作均支持
- 分词
- 命名实体识别
- 句法树构造
treebank包含PTB数据集
2.Jieba分词
https://github.com/fxsjy/jieba
3.SnowNLP
https://github.com/isnowfy/snownlp
Pip install snownlp
4.Pyrouge
评测文本摘要好坏开源库
5.Sklearn
https://scikit-learn.org/stable/
机器学习和数据处理辅助神器
6.常用python-based机器学习框架
- Pytorch
- Tensorflow
- Keras
三.特征工程
1.简单的特征工程
- Numpy https://numpy.org/
- Tf-Idf
- Word2vec
2.TF-IDF
- Term Frequency
高频词往往能够反馈文章的主要思想
- Inverse Document Frequency
很多无实际意义的虚词词频也很高
词云制作:
3.Word2Vec
使用一个欧式空间向量表示词汇
三.模型介绍
朴素贝叶斯
条件独立
代码示例
初始化
统计频率
得到先验概率、联合概率
根据后验概率判决
概率计算