ホームページ >バックエンド開発 >Python チュートリアル >Python sklearn がテキスト データに対して特徴抽出を実行する方法

Python sklearn がテキスト データに対して特徴抽出を実行する方法

WBOY
WBOY転載
2023-05-17 10:55:411473ブラウズ

テキスト特徴抽出

関数: テキスト データを特徴付ける

(文、フレーズ、単語、文字) は通常、単語を特徴量として使用します

方法 1: CountVectorizer

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

単語頻度行列を返します (各サンプルに出現する特徴語の数をカウントします)

CountVectorizer.fit_transform(X)

XX: テキスト文字列を含むテキストまたは反復可能なオブジェクト

戻り値: スパース行列を返します

CountVectorizer.inverse_transform(X)

XX:配列配列または疎行列

戻り値:変換前のデータ形式

CountVectorizer.get_feature_names()

戻り値: 単語リスト

コード表示:

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

方法 2: TfidfVectorizer

キーワード: 特定のカテゴリの記事内、出現数は多いですが、他のカテゴリの記事での出現数はキーワードと呼ばれることはほとんどありません

Tf-idfテキスト特徴抽出

①TF-IDFの主な考え方はい:ある記事に出現する確率が高く、他の記事にほとんど出現しない語句は、カテゴリー識別能力が高く、分類に適していると考えられる。

②TF-IDF 関数: 文書セットまたはコーパス内の文書の 1 つに対する単語の重要性を評価するために使用されます。

①用語頻度 (tf) は、文書内に出現する特定の単語の頻度を指します。

②逆文書頻度 (逆文書頻度、idf) は、次の尺度です。単語の一般的な重要性。用語の idf を計算するには、その用語を含むファイルの数をファイルの総数で割り、10 を底とする対数

#tfidf = tf * idf

## を使用します。 #出力結果は重要度として把握できます

API

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

単語の重み行列を返します

TfidfVectorizer.fit_transform(X)

XX: テキスト文字列を含むテキストまたは反復可能なオブジェクト

戻り値: 疎行列を返します

TfidfVectorizer.inverse_transform(X)

XX:array 配列または疎行列

戻り値: 変換前のデータ形式

TfidfVectorizer.get_feature_names()

戻り値: 単語リスト

中国語単語セグメンテーション特徴抽出

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

以上がPython sklearn がテキスト データに対して特徴抽出を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。