基于机器学习的文本分类
- TF-IDF
TF-IDF算法是一种在文本挖掘中广泛使用的特征向量化方法,它可以体现一个文档中词语在语料库中的重要程度。
TF-IDF实践步骤,也即是一般的文本处理和模型训练步骤:
1.获取原始文本内容信息。
2.转换成纯小写,按空格把文章分成独立的词组成的list。
3.去除噪音符号: [""","=","\","/",":","-","(",")",",",".","\n"]等
4.去除停用词
5.提取词干,把相近的词转换为标准形式,比如把文章中的go,going,went,goes统一成go
6.wordcount,统计每个词出现的次数,去掉出现次数较少的词,比如在一百篇文档中,只出现了1~2次的词,显然是没有意义的。
7.训练IDF模型
8.对输入的每篇测试文章计算其TFIDF向量,然后可以利用TFIDF向量求文章之间的相似度(比如用欧拉距离,余弦相似度,Jaccard系数等方法)。
Fit_transform学习到一个字典,并返回Document-term的矩阵(即词典中的词在该文档中出现的频次)
Fit步骤学习idf vector,一个全局的词权重_idf_diag。输入的X是一个稀疏矩阵,行是样本数,列是特征数。
Transform步骤是把X这个计数矩阵转换成tf-idf表示, X = X * self._idf_diag,然后进行归一化
sklearn中有TF-IDF的库函数。
TfidfVectorizer(analyzer='word', binary=False, decode_error