文本分类算法从机器学习的“人工特征 + lr/svm/xgboost”,到深度学习的"word embedding + DNN"、“language model + decoder”,不断演变。
0.文本的预处理
1)清洗数据:带有HTML标签、URL地址等非文本内容,长串数字或字母、无意义的文本。
2)变形词识别和替换:特殊符号替换、同音近型替换(拼音首字母)、简繁替换
3)停用词与标点符号:采用官方词表,针对不同的场景做一些调整
1.文本特征&文本表示
以词还是以字来表示一个句子的输入特征,都需要进行尝试,只有效果相差不大,都需要保留下来做模型融合。
如果文本长度不同,取占比95%或者98%的长度最为最大长度,然后进行截断补齐
文本特征的提取:
方法一:分词之后采用One-hot或TF-IDF等方法将每个样本转化为固定长度的特征编码作为分类算法的输入。
方法二:采用N-gram模型(一般同时采用N为1到3的N-gram)保留词与词之间的的位置和顺序信息。
方法三:Word2Vec和GloVe,拼接Word2Vec和GloVe作为新的特征输入,直接相加或者求平均效果通常都不好。如果要找到最合适的词向量维度,可以看看NeurIPS 2018斯坦福的这篇论文《On the Dimensionality of Word Embedding》。
方法四:语言模型,例如ELMo和BERT
其他特征:是否出现长串数字的布尔值特征HAS_DIGITAL、长串数字按长度归一的DIGI

本文总结了中文文本分类的方法,包括预处理、特征提取、文本表示、文本分类算法及具体实现。介绍了词与字的表示、One-hot、TF-IDF、N-gram、Word2Vec、GloVe、ELMo和BERT等特征表示方法,以及TextCNN、HAN等模型。此外,还讨论了特征选择、卡方检验和信息增益等技术,并提供了不同场景下选择算法的指导。
最低0.47元/天 解锁文章
9797

被折叠的 条评论
为什么被折叠?



