美文网首页
文本分类

文本分类

作者: 是小橙子呀 | 来源:发表于2019-11-07 14:48 被阅读0次

    给定训练集(w_{i} ,y_{i} ),其中y_{i} 是文本w_{i} =(w_{1},w_{2},...,w_{n})的类别,假设共有十个类别。训练一个分类器。

    1、首先使用Jieba分词工具将文本w_{i} 进行分词segment,得到w_{i}=(w_{1},w_{2},...,w_{n})

    2、分别针对分词后的文本和类别构建字典dictX和dictY,构建词典就相当于给所有词汇添加索引index,给类别标序号。词典大小与单词个数一致,dictX \in R^{1\times n }, dictY \in R^{1\times 10 }。因为计算机只能处理字符串不能处理文字,所以要用索引指代词汇。然后用索引替代词汇,假设得到w_{i}=(3,5,17,89,...,47) Y=(0,1,2,3,4,5,6,7,8,9,10)

    3、然后将w_{i}=(3,5,17,89,...,47) 输入到embedding层中,使用word2vec训练词向量。其中,one-hot向量是最简单的词向量表示方法。通常设置embedding的长度d为100或300。因此,得到一个embedding向量矩阵X=(x_{1}, x_{2},...,x_{n}), X\in R^{n\times d} 。同样,训练得到类别的词向量Y=(y_{1}, y_{2},...,y_{10}), Y\in R^{10\times d}

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

    5、将该语义表示输入softmax层,输出向量y\in R^{1\times 10},该向量是各个类别的概率分布。

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

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

    相关文章

      网友评论

          本文标题:文本分类

          本文链接:https://www.haomeiwen.com/subject/pnrmbctx.html