ホームページ >バックエンド開発 >Python チュートリアル >Python sklearn がテキスト データに対して特徴抽出を実行する方法
関数: テキスト データを特徴付ける
(文、フレーズ、単語、文字) は通常、単語を特徴量として使用します
方法 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 を底とする対数
## を使用します。 #出力結果は重要度として把握できますAPI##sklearn.feature_extraction.text.TfidfVectorizer(stop_words=None,...)#tfidf = tf * idf
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 サイトの他の関連記事を参照してください。