文本分类

给定训练集(,),其中是文本的类别,假设共有十个类别。训练一个分类器。

1、首先使用Jieba分词工具将文本进行分词segment,得到。

2、分别针对分词后的文本和类别构建字典dictX和dictY,构建词典就相当于给所有词汇添加索引index,给类别标序号。词典大小与单词个数一致,。因为计算机只能处理字符串不能处理文字,所以要用索引指代词汇。然后用索引替代词汇,假设得到,。

3、然后将输入到embedding层中,使用word2vec训练词向量。其中,one-hot向量是最简单的词向量表示方法。通常设置embedding的长度d为100或300。因此,得到一个embedding向量矩阵。同样,训练得到类别的词向量。

4、将该矩阵向量输入到神经网络中,例如LSTM、RNN、GRU或Transformer。这些神经网络最终输出一个该文本的语义表示,有多种方式可以获取该语义表示,最简单的就是用该文本序列的最后一个隐状态hidden state作为它的语义表示。hidden size即d_model通常设置为256或128。最终输出的语义表示。

5、将该语义表示输入softmax层,输出向量,该向量是各个类别的概率分布。

6、然后将该向量与该文本对应的正确的类别向量进行比较,计算LOSS。LOSS的计算方法有很多种,比如交叉熵。然后反向传播,更新权重参数。设置epoch参数,当模型训练次数达到epoch或者模型性能已经不再提升,则可认为模型已经收敛,结束训练。

7、测试时,按照同样的方法,最终得到输出向量,向量中概率值最大的序号就是该文本的类别。

你可能感兴趣的:(文本分类)