NLP介绍
Stanford CS 224N | Natural Language Processing with Deep Learning
CS224U: Natural Language Understanding - Spring 2023
NLP实现方法
1、传统机器学习方法:预处理、特征工程、模型
2、深度学习方法:预处理、模型
文本分类的流程
文本预处理、特征提取、文本表示和分类器
特征提取、文本表示将文本处理成模型能识别的形式
1、lower,转大小写
2、punctuation,剔除标点符号
3、tokenization,分词
4、stop words,去除停用词
5、lemmatize,替换通用单词/去除时态
6、将文本转化为向量
7、进行截取或填充
预训练词向量:可以使用现有的预训练模型对语料进行训练,常见的词向量包括:fasttext、word2vec、glove和bert
TFIDF
N-gram:
语言模型,利用滑动窗口的思想统计出现相同字符的频率
Countvectorizer:
将文本进行编码并进行统计
稀疏
向量维度取决于非重复次数
TFIDF公式:
TF:词频
tf=(某一文档中某一单词出现的次数/该文档中的总词数)
1、进一步筛选单词出现次数
2、只统计单词出现的次数,没有前后关系
IDF:逆文本频率
log(N/df_x)=log(语料库总文档数/包含该词文档的个数)
IF*IDF
当单词次数出现越少时权重越小
当单词出现在不同文档的次数越高,权重越小,用来排除每个文档都使用的无意义词
可以屏蔽每个文档中都使用的套词,留下具有每个文档特点的词
词向量
词向量可以将含义相同的单词映射到含义相同的稠密空间
基础:可以使用字典查表
高阶:使用LSTM或者transformer进行预测
在映射后不容易区分单词的重要性,可以通过衔接LTSM/transformer来确定单词的重要性
Fasttext:
由单词维度转化为句子维度时,对ngram窗口内的单词使用平均池化(mean-pooling)
1、速度快、不要求GPU
2、快速迭代,工业入门方案
在分类的时候采用mean-pooling,在检索的时候可以使用max-pooling目的为得到单词中的最大值
TextCNN:
使用卷积的感受野来代替ngram的作用
TextCNN+FC