Maison >développement back-end >Tutoriel Python >Comment Python Sklearn effectue l'extraction de fonctionnalités sur les données texte

Comment Python Sklearn effectue l'extraction de fonctionnalités sur les données texte

WBOY
WBOYavant
2023-05-17 10:55:411473parcourir

Extraction de caractéristiques de 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 : CountVectorizer

sklearn.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 None

Méthode 2 : TfidfVectorizer

Mots 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'importance

API

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

Renvoie la matrice de poids du mot

TfidfVectorizer.fit_transform(X)

#🎜 🎜#X : texte ou objet itérable contenant une chaîne de texte

Valeur de retour : renvoie une matrice clairsemée

TfidfVectorizer.inverse_transform(X)

# 🎜🎜#

#

Valeur de retour : liste de mots

Segmentation 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer