Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Python sklearn melakukan pengekstrakan ciri pada data teks
Fungsi: Mencirikan data teks
(ayat, frasa, perkataan, huruf) secara amnya menggunakan perkataan sebagai nilai ciri
Kaedah 1: CountVectorizer
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
Mengembalikan matriks kekerapan perkataan (mengira bilangan perkataan ciri yang muncul dalam setiap sampel)
CountVectorizer.fit_transform(X)
X: teks atau objek boleh lelar yang mengandungi rentetan teks
Nilai pulangan: pulangkan matriks jarang
CountVectorizer.inverse_transform(X)
X:array array atau matriks jarang
Nilai pulangan: format data sebelum penukaran
CountVectorizer .get_feature_names )
Nilai pulangan: senarai perkataan
Paparan kod:
from sklearn.feature_extraction.text import CountVectorizer def count_demo(): #文本特征抽取 data=["life is short, i like like python","life is too long,i dislike python"] #1、实例化一个转换器类 transfer=CountVectorizer() #2、调用fit_transform() result=transfer.fit_transform(data) print("result:\n",result.toarray()) print("特征名字:\n", transfer.get_feature_names()) return None
Kaedah 2: TfidfVectorizer
Kata kunci: dalam artikel tertentu dalam artikel kategori, bilangan kejadian adalah tinggi, tetapi bilangan kejadian dalam artikel kategori lain jarang dipanggil kata kunci
Pengekstrakan ciri teks Tf-idf
①Idea utama TF-IDF Ya: Jika perkataan atau frasa mempunyai kebarangkalian tinggi untuk muncul dalam rencana dan jarang muncul dalam rencana lain, adalah dianggap bahawa perkataan atau frasa itu mempunyai keupayaan membezakan kategori yang baik dan sesuai untuk pengelasan.
②Fungsi TF-IDF: digunakan untuk menilai kepentingan perkataan kepada set dokumen atau salah satu dokumen dalam korpus.
Formula
①Kekerapan istilah (tf) merujuk kepada kekerapan perkataan tertentu yang terdapat dalam dokumen
②Kekerapan dokumen songsang (kekerapan dokumen songsang, idf) ialah ukuran bagi kepentingan umum sesuatu perkataan. Untuk mengira idf istilah, bahagikan bilangan fail yang mengandungi istilah dengan jumlah bilangan fail dan gunakan logaritma asas 10
tfidf = tf * idf
Hasil output boleh difahami sebagai tahap kepentingan
API
sklearn.feature_extraction.text.TfidfVectorizer(stop_words=None,...)
Mengembalikan matriks berat perkataan
TfidfVectorizer.fit_transform(X)
X: teks atau objek boleh lelar yang mengandungi rentetan teks
Nilai pulangan: Kembalikan matriks jarang
TfidfVectorizer.inverse_transform(X)
X: tatasusunan tatasusunan atau matriks jarang
Nilai pulangan: Format data sebelum penukaran
TfidfVectorizer.get_feature_names()
Nilai pulangan: senarai perkataan
from sklearn.feature_extraction.text import TfidfVectorizer import jieba def cut_word(text): #中文分词 #jieba.cut(text)返回的是生成器对象,用list强转成列表 word=list(jieba.cut(text)) #转成字符串 words=" ".join(word) return words def tfidf_demo(): data = ["今天很残酷,明天更残酷,后天会很美好,但绝大多数人都死在明天晚上,却见不到后天的太阳,所以我们干什么都要坚持", "注重自己的名声,努力工作、与人为善、遵守诺言,这样对你们的事业非常有帮助", "服务是全世界最贵的产品,所以最佳的服务就是不要服务,最好的服务就是不需要服务"] data_new = [] # 将中文文本进行分词 for sentence in data: data_new.append(cut_word(sentence)) # 1、实例化一个转换器类 transfer = TfidfVectorizer() # 2、调用fit_transform() result = transfer.fit_transform(data_new) # 得到词频矩阵 是一个sparse矩阵 print("result:\n", result.toarray()) # 将sparse矩阵转化为二维数组 print("特征名字:\n", transfer.get_feature_names()) return None
Atas ialah kandungan terperinci Cara Python sklearn melakukan pengekstrakan ciri pada data teks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!