Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Python sklearn melakukan pengekstrakan ciri pada data teks

Cara Python sklearn melakukan pengekstrakan ciri pada data teks

WBOY
WBOYke hadapan
2023-05-17 10:55:411478semak imbas

Pengekstrakan ciri 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

Pembahagian perkataan Cina + pengekstrakan ciri

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam