sklearn特徵抽取----02文本特徵提取(Tf–idf 項加權)

簡介

在一個文本中,常見的主語謂語及一些常見的詞(如你、我、她)數量有很多,會出現很多次。
但是對於文章分析沒有任何作用,因此我們不僅要對詞進行統計更要將每個詞的權重展現出來

基本原理

詞的重要性:Tf * idf
Tf:表示術語頻率(詞的頻率)
idf:出現的次數

Tf * idf值越大說明詞越重要

作用

將文本中每個詞的權重計算出來

類和方法

TfidfVectorizer()

權重計算

方法

方法 作用
fit_transform(Param) Param:字典或者包含字典的迭代器 返回值:返回sparse矩陣
inverse_transform(Param) Parm:array數組或者sparse矩陣 返回值:轉換之前的數據格式
get_feature_names() 返回值:返回分類類別的名稱

流程

先分詞

from sklearn.feature_extraction.text import TfidfVectorizer
import jieba

def cutword():
	# 分詞
	sen1 = jieba.cut("這是第一句名言:寶劍鋒自磨出,梅花香自苦寒")
	sen2 = jieba.cut("這是第二句名言:學習如逆水行舟;不進則退")
	sen3 = jieba.cut("這是第三句名言:書山有路勤爲徑,學海無涯苦作舟")

	# 轉化爲列表
	sentence1 = list(sen1)
	sentence2 = list(sen2)
	sentence3 = list(sen3)

	# 把列表轉換爲字符串
	s1 = " ".join(sentence1)
	s2 = " ".join(sentence2)
	s3 = " ".join(sentence3)

	return s1, s2, s3

特徵提取

def tfidfvec():
    """
    中文特徵值化
    :return: None
    """
    s1, s2 , s3 = cutword()
	# 實例化
    tf = TfidfVectorizer()
	# 特徵提取加轉換矩陣
    data = tf.fit_transform([s1, s2, s3]).toarray()
	# 分類屬性
    print(tf.get_feature_names())
    print(data)
    

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章