Heim  >  Artikel  >  Backend-Entwicklung  >  Wie Python sklearn die Feature-Extraktion für Textdaten durchführt

Wie Python sklearn die Feature-Extraktion für Textdaten durchführt

WBOY
WBOYnach vorne
2023-05-17 10:55:411445Durchsuche

Textmerkmalsextraktion

Funktion: Textdaten charakterisieren

(Sätze, Phrasen, Wörter, Buchstaben) verwenden im Allgemeinen Wörter als Merkmalswerte

Methode 1: CountVectorizer

sklearn.feature_extraction.text.CountVectorizer(stop_words= [])

Worthäufigkeitsmatrix zurückgeben (zählen Sie die Anzahl der in jeder Stichprobe vorkommenden Merkmalswörter)

CountVectorizer.fit_transform(X)

X: Text oder iterierbares Objekt mit Textzeichenfolge

Rückgabewert: Sparse-Matrix zurückgeben

CountVectorizer.inverse_transform(X)

Codeanzeige:

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

Methode 2: TfidfVectorizer

Schlüsselwörter: In Artikeln einer bestimmten Kategorie kommen sie oft vor, aber selten in Artikeln anderer Kategorien TF-IDF-Text-Feature-Extraktion

①Die Hauptidee von TF-IDF ist: Wenn ein Wort oder eine Phrase mit hoher Wahrscheinlichkeit in einem Artikel und selten in anderen Artikeln vorkommt, wird davon ausgegangen, dass dieses Wort oder diese Phrase eine gute Kategorieunterscheidung aufweist Fähigkeit, geeignet für die Klassifizierung.

②TF-IDF-Funktion: Wird verwendet, um die Bedeutung eines Wortes für einen Dokumentensatz oder eines der Dokumente in einem Korpus zu bewerten.

Formel

①Termhäufigkeit (tf) bezieht sich auf die Häufigkeit, mit der ein bestimmtes Wort im Dokument vorkommt.

②Die inverse Dokumenthäufigkeit (idf) ist ein Maß für die allgemeine Bedeutung eines Wortes. Um die IDF eines bestimmten Wortes zu berechnen, müssen Sie die Anzahl der Dateien, die das Wort enthalten, durch die Gesamtzahl der Dateien dividieren und den Logarithmus zur Basis 10 verwenden

tfidf = tf * idf

Das Ausgabeergebnis kann verstanden werden als Wichtigkeit

API

sklearn.feature_extraction.text.TfidfVectorizer(stop_words=None,...)

Gibt die Gewichtsmatrix von Wörtern zurück

TfidfVectorizer.fit_transform(X)

X: Text oder enthält Textzeichenfolge Iterierbares Objekt

Rückgabewert: Gibt eine Sparse-Matrix zurück

TfidfVectorizer.inverse_transform(X)

Rückgabewert: Wortliste

Chinesische Wortsegmentierung + Merkmalsextraktion

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

Das obige ist der detaillierte Inhalt vonWie Python sklearn die Feature-Extraktion für Textdaten durchführt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen