L1E6N0A2

监督自己不断学习

0%

NLP入门(二)

zzzz准备实战,python,tensorflow,keras,Scikit-learn

第三天(《python自然语言处理实战》)

  • jieba分词

    • 准确模式:最精确的分开,适合文本分析
    • 全模式:把句子里的所有单词扫描出来,不能解决歧义
    • 搜索引擎模式:在精准模式的基础上,对长词再次切分(会把所有可能的词输出)
  • 常用的无监督关键词提取算法

    • TF-IDF
    • TextRank:hanlp的extractKeyword(提取关键词)、extractSummary(自动摘要 )
    • 主体模型算法:对文档的隐含语义结构进行聚类(原理还是不太理解,已经没人用了)
      • LDA:《基于特征选择及LDA模型的中文文本分类研究与实现》准确率不理想
      • LSI/LSA
  • 常见的文本分类算法

    • 逻辑回归(LR)
    • 支持向量机(SVM)
    • K近邻居(KNN)
    • 决策树(DT)
    • 神经网络(NN)
  • 文本分类的步骤

    • 定义阶段:定义数据以及分类体系(具体分为哪几种)
    • 数据预处理(对文档进行分词,去掉停用词等)
    • 数据特征提取(对文档矩阵降维,提取训练集中最有用的特征)
      • Bag-of-words
      • 统计特征:TF,IDF,TF-IDF
      • N_-Gram
    • 模型训练:选择模型和算法,训练出文本分类器
    • 评测:在测试集上测试评评估分类器的性能
    • 应用:对待分类的文档进行分类

现有的文本分类算法

word2vec预训练词向量
textCNN 模型
charCNN 模型

不利于处理长文本的分类

Bi-LSTM 模型

Bi-LSTM即双向LSTM,较单向的LSTM,Bi-LSTM能更好地捕获句子中上下文的信息。

(LSTM是RNN的变体,RNN假设我们的样本是基于序列的。比如一段段连续的语音,一段段连续的手写文字。)

Bi-LSTM + Attention 模型

Bi-LSTM + Attention模型来源于论文Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification。

Bi-LSTM + Attention 就是在Bi-LSTM的模型上加入Attention层,在Bi-LSTM中我们会用最后一个时序 的输出向量 作为特征向量,然后进行softmax分类。Attention是先计算每个时序的权重,然后将所有时序 的向量进行加权和作为特征向量,然后进行softmax分类。在实验中,加上Attention确实对结果有所提升。

Transformer 模型

对于Transformer来说,需要明确加入位置编码学习position Embedding。因为对于self Attention来说,它让当前输入单词和句子中任意单词进行相似计算,然后归一化计算出句子中各个单词对应的权重,再利用权重与各个单词对应的变换后V值相乘累加,得出集中后的embedding向量,此间是损失掉了位置信息的。因此,为了引入位置信息编码,Transformer对每个单词一个Position embedding,将单词embedding和单词对应的position embedding加起来形成单词的输入embedding。

Doc2Vec+LR /hanlp/py

CNN

RNN

TF-IDF+贝叶斯 /CSDN/homework3.py