Heim > Artikel > Backend-Entwicklung > Wie Python sklearn die Feature-Extraktion für Textdaten durchführt
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 * idfDas Ausgabeergebnis kann verstanden werden als Wichtigkeit
API
sklearn.feature_extraction.text.TfidfVectorizer(stop_words=None,...)Gibt die Gewichtsmatrix von Wörtern zurückTfidfVectorizer.fit_transform(X)
X: Text oder enthält Textzeichenfolge Iterierbares Objekt
Rückgabewert: Gibt eine Sparse-Matrix zurückTfidfVectorizer.inverse_transform(X)
Rückgabewert: WortlisteChinesische 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!