zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

机器学习——英文特征提取,中文特征提取

机器中文学习 英文 特征提取
2023-09-11 14:16:58 时间

环境:ubuntu20.10,python3.8

代码如下:

#coding:utf-8
from sklearn.feature_extraction import DictVectorizer, stop_words
from sklearn.feature_extraction.text import CountVectorizer
import jieba

def dict_demo():
    #""""
    #字典特征提取
    #:return:
    #""""
    data = [{"city":"北京","temperature":100},
            {"city":"上海","temperature":60},
            {"city":"深圳","temperature":30}]
    # 字典特征提取
    # 1、实例化
    #transfer = DictVectorizer()
    transfer = DictVectorizer(sparse=False)
    
    # 2、调用fit_transform
    trans_data = transfer.fit_transform(data)
    
    print("特征名字是:\n",transfer.get_feature_names())
    print(trans_data)

def english_count_text_demo():
    #""""
    #文本特征提取 -- 英文
    #:return:
    #""""
    data = ["life is short,i like python",
            "life is too long,i dislike python"]
    # 文本特征提取 -- 英文
    # 1、实例化
    #transfer = CountVectorizer(sparse=False) #注意,没有sparse
    transfer = CountVectorizer(stop_words=["dislike"])
    
    # 2、调用fit_transform
    trans_data = transfer.fit_transform(data)
    
    print("特征名字是:\n",transfer.get_feature_names())
    print(trans_data.toarray())
    
def chinese_count_text_demo():
    #""""
    #文本特征提取 -- 中文
    #:return:
    #""""
    data = ["人生 苦短,我 喜欢 python",
            "生活 太长久,我 不 喜欢 python"]
    # 文本特征提取 -- 中文
    # 1、实例化
    transfer = CountVectorizer()
    
    # 2、调用fit_transform
    trans_data = transfer.fit_transform(data)
    
    print("特征名字是:\n",transfer.get_feature_names())
    print(trans_data.toarray())
    
def cut_word(sen):
    #""""
    #中文分词
    #:return:sen
    #""""
    return " ".join(list(jieba.cut(sen))) 

def chinese_count_text_demo2():
    #""""
    #文本特征提取 -- 中文
    #:return:
    #""""
    data = ["主持人:任鲁豫、尼格买提、李思思、张韬、龙洋、王俊凯、柳岩、李梓萌",
"开头短片《春晚四十年》, 开场灯光秀, 大型舞蹈组合《盛世中华》(舞组合)",
"情景表演《暴风雨中的河南》,讲述人:张国立、康辉、张泽群、黄轩 ,表演:刘亚津、温玉娟、贾乃亮、范雷、尚大庆、何泓姗、秦岚、林家川、周也、陈哲远、柴碧云、杜江等"]
    
    list = []
    for temp in data:
        list.append(cut_word(temp))
    print(list)
    
    # 特征提取
    # 1、实例化
    transfer = CountVectorizer(stop_words=["康辉"])
    
    # 2、调用fit_transform
    trans_data = transfer.fit_transform(data)
    
    print("特征名字是:\n",transfer.get_feature_names())
    print(trans_data.toarray())

#dict_demo()
#english_count_text_demo()
#chinese_count_text_demo()
chinese_count_text_demo2()