假装这里有图片,反正上传到GitHub也加载不出来.jpg
文本分类比赛,要求是根据新闻文本进行处理,对新闻进行分类,比如有财经、彩票、房产等。
评测指标是:f1_score
训练集20w条样本,A榜5w条、B榜5w条。
由于将比赛数据的文本按照字符级别进行了匿名处理,因此就无法直接使用中文分词等操作。
整体思路是 特征提取和分类模型。
Datawhale提供的思路:
- TF-IDF + 机器学习分类器
直接使用TF-IDF对文本提取特征,并使用分类器进行分类。在分类器的选择上,可以使用SVM、LR或者XGBoost
TF的英文是Term Frequency,直白的理解就是短语的频率,认为一个单词在本文中的重要性和它出现的频率有关。
$ TF(t) = \frac{TF_{i}}{TN_{t}}$ 其中$TN_{t}$表示文章t当中包含的所有Term的数量,$TF_{i}$表示$Term_{i}$在文档中的数量。
早期的搜索引擎就是用的这个策略,衡量用户搜索的关键词在网页中的频率,倾向于将出现的频率高的网页推荐在前面,因为排名靠前的网页能够获得大量的流量,导致越来越多的网页倾向于在内容中嵌入搜索热词。激发了一个岗位–SEO,搜索引擎优化,用各种手段提网页优化在所搜引擎中的排名。
做搜索引擎的工程师发现恶意刷排名的情况,为了解决这个问题,引入了IDF的概念。
IDF的英文Inverse Document Frequency,即逆文档频率,认为越广泛存在的短语越不重要。
$ idf_{i} = log\frac{|D|}{1+|j:t_{i}\epsilon d_{j}|}$ 其中|D|是所有文档的数量,$t_{i}$是第i个短语。$|{1+|j:t_{i}\epsilon d_{j}}|$表示包含第i个短语的文档的数量,为了防止它为0,因此加上1。
比如说,’的‘、’是‘这些单词广泛出现在各个文章中,’机器学习‘ ’自然语言处理‘这些短语就只可能出现在专业性文章中。显然,在各个文章出现更少的单词的参考意义更大,往往会意味着更加精准的导向。所以IDF可以简单理解成出现广泛程度的倒数。
TF是衡量短语对于某一个具体文档的重要性,IDF衡量是短语对于所有文档的重要性。
我们认为将二者相乘就能代表短语在某个文档的真正重要性。
- FastText
FastText是入门款的词向量,利用Facebook提供的FastText工具,可以快速构建分类器。
https://zhuanlan.zhihu.com/p/32965521 这篇专栏讲解的不错,mark一下。
fastext的核心思想:将整篇文档的词集n-gram向量叠加平均得到文档向量,然后使用文档向量做softmax多分类。
- Word2Vec + 深度学习分类器
WordVec是进阶款的词向量,并通过构建深度学习分类完成分类,深度学习分类的网络结构可以选择TextCNN、TextRNN或BiLSTM
https://zhuanlan.zhihu.com/p/26306795 讲word2vec的,mark
简单的说,Word2Vec就是通过一个简单的神经网络结构将词语进行低维向量化表示。
Bert词向量
Bert是高赔款的词向量/