Maison >développement back-end >Tutoriel Python >Comment Python Sklearn effectue l'extraction de fonctionnalités sur les données texte
Fonction : Caractériser les données de texte
(phrases, expressions, mots, lettres) utilisent généralement des mots comme valeurs de caractéristiques
#🎜🎜 #Méthode 1 : CountVectorizersklearn.feature_extraction.text.CountVectorizer(stop_words=[])Renvoyer la matrice de fréquence des mots (statistiques Le nombre d'occurrences de chaque exemple de mot de fonctionnalité)
CountVectorizer.fit_transform(X)X : texte ou chaîne de texte facultative contenant un objet Iterate# 🎜🎜#
Valeur de retour : renvoie une matrice clairsemée
CountVectorizer.inverse_transform(X)X:array array Ou matrice clairsemée
Valeur de retour : format des données avant la conversion
CountVectorizer.get_feature_names()Valeur de retour :Liste de mots# 🎜🎜#Affichage du code :
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 NoneMéthode 2 : TfidfVectorizerMots clés : apparaissent plusieurs fois dans les articles d'une certaine catégorie, mais le nombre d'occurrences dans d'autres les catégories d'articles sont rarement appelées mot-clé Tf-idf extraction de fonctionnalités de texte ①L'idée principale de TF-IDF est : si un certain Si un mot ou une phrase a un ayant une forte probabilité d'apparaître dans un article et apparaît rarement dans d'autres articles, on considère que le mot ou l'expression a une bonne capacité de distinction de catégorie et est adapté à la classification. ②Fonction TF-IDF : Utilisée pour évaluer l'importance d'un mot pour un ensemble de documents ou un document dans un corpus. Formule①La fréquence du terme (term Frequency, tf) fait référence à la fréquence d'un mot donné apparaissant dans le fichier② Fréquence inverse du document ( idf) est une mesure de l’importance générale d’un mot. Pour calculer l'IDF d'un terme, divisez le nombre de fichiers contenant ce terme par le nombre total de fichiers et utilisez le logarithme base 10
tfidf = tf * idf#🎜 🎜## 🎜🎜#
Le résultat de sortie peut être compris comme le degré d'importanceAPI
sklearn.feature_extraction.text.TfidfVectorizer(stop_words=None ,...)
Renvoie la matrice de poids du motTfidfVectorizer.fit_transform(X)
#🎜 🎜#X : texte ou objet itérable contenant une chaîne de texte
Valeur de retour : renvoie une matrice clairseméeTfidfVectorizer.inverse_transform(X)
# 🎜🎜#
#Valeur de retour : liste de motsSegmentation de mots chinois + extraction de fonctionnalités
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!