本文作为特征抽取补充文档,但是更为重要!!!
特征抽取方式二:TF-IDF
TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
目的:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
API:sklearn.feature_extraction.text.TfidfVectorizer
语法结构:
TfidfVectorizer
(
stop_words
=None
,
…
)
返回词的权重矩阵
TfidfVectorizer
.
fit_transform
(
X,y
)
X:
文本或者包含
文本字符串的可迭代对象
返回值:返回
sparse
矩阵
TfidfVectorizer
.
inverse_transform
(X)
X:array
数组或者
sparse
矩阵
返回值:转换之前数据格式
TfidfVectorizer
.get_feature_names
()
返回值
:
单词列表
具体执行代码:
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
import jieba
def tfid():
"""对文本进行特征值化"""
tf = TfidfVectorizer()
cop1 = jieba.cut("今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。")
# 转换成列表
ct1 = list(cop1)
# 把列表转换成字符串
c1 = " ".join(ct1)
data = [c1]
data = tf.fit_transform(data)
print(tf.get_feature_names())
# 实例化无法添加参数,用toarray依然可以实现矩阵转化
data = data.toarray()
print(data)
if __name__ == '__main__':
tfid()
结果: