自然语言处理
京东、贪心课程
1. 常用分词算法
jieba \ SnowNLP \ LTP \ HANNLP
2.命名实体识别
以前的自然语言处理主要是提前定义一些东西,比如远的词给予较低的权重d(w1,w3),类似于现在很火的attetion,其实就是以前用pre define的方式,而现在深度学习主要是采用Learning的方式。
最开始是没有考虑词的连续性来做,后面开始考虑单词前后依赖,常见算法:隐马尔可夫模型(语音里面用的多点)、条件随机场(文本里面用的多点)
NER也基本上是sloved problem ,准确率可以达到95%
3.词性标注
词性标注已经是自然语言处理领域的sloved problem 所以可以直接用,或者作为其他任务的特征,比如自然语言处理。
4.句法分析
5.语义理解
怎么理解一个单词、怎么理解一个文本的意思
skipgram , cbow, glove , bert, ALbert
XLNet, GPT-2, GPT-3, Tiny-Bert
一般都是fine tune , pre train是搞不定的
语言模型主要是用来判断句子的通顺,也可以帮助我们生成文本
6.文本生成
point network 解决传统seq2seq输出序列的词汇表会随着输入序列长度的改变而变化的问题。
寻找子集
特征工程
tfidf特征,word2vec, n-gram, pos词性特征,主题特征LDA, 任务特定的特征(wordCount, 大写个数,是否有人名,整个字符的长度)
词向量
one-hot 维度灾难 语义鸿沟
LSA 利于全局预料特征,但SVD求解计算复杂度大
Word2Vec、fastText 优化效率高但基于局部预料
glove 基于全局预料,结合了LSA和word2Vec优点
elmo、GPT、Bert 动态特征,可以解决一词多意的问题