CountVectorizer方法对中文进行特征提取

匿名 (未验证) 提交于 2019-12-02 22:51:30

from sklearn.feature.extraction.text import CountVectorizer

这个方法根据分词进行数量统计继续文本分类

作用:对文本进行特征值化

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

 返回:词频矩阵

CountVectorizer.fit_transform(X) X:文本或者包含文本字符串的可迭代对象

 返回:sparse矩阵 在后面加上 .toarray() 可以转换为二维数组

CountVectorizer.inverse_transform(X) X:array数组或者sparse矩阵

 返回:转换之前数据格

CountVectorizer.get_feature_names()

 返回:单词列表,也可以说是返回特征名字
from sklearn.feature_extraction.text import CountVectorizer #中文 需要分词,否则是以整句作为一个词。英文则不需要,因为英文单词本来就有空格 def chinese_text_count_demo():     data = ["我 爱 北京 天安门", "天安门 上 太阳 升"]          # 1、实例化一个转换器类(为什么叫转化器,因为是将 文本 转化为 数值)     transfer = CountVectorizer()          # 2、调用fit_transform     data_new = transfer.fit_transform(data)     print("data_new:\n", data_new.toarray())     print("特征名字:\n", transfer.get_feature_names())          return None  if __name__ == '__main__':     chinese_text_count_demo()  输出结果: data_new:  [[1 1 0]  [0 1 1]] 特征名字:  ['北京', '天安门', '太阳']

解析:上面第一行表示的是,data第一句话

数字表示的是,这个 特征词 出现的次数

首先你需要在自己的cmd命令行中下载jieba

pip3 install jieba / pip install jieba

from sklearn.feature_extraction.text import CountVectorizer import jieba  def cut_word(text):     #进行中文分词     return " ".join(list(jieba.cut(text)))     # jieba.cut(text)返回的是一个生成器对象,需要转换为迭代器     #return "".join(jieba.lcut(text))     #jieba.cut(text)直接返回一个列表list  def auto_chinese_text_count_demo():     data = ["你说这该怎么办"            ,"唐龙大声问怎么回事"            ,"晚上找个地方喝几盅怎么样"            ,"老忠领他们到朱老明那里站在大柏树坟前说你看看这个地势怎么样我们的人要是从城里过来经过大渡口或是小渡口沿着千里堤"]     data_new = []     for sent in data:         data_new.append(cut_word(sent))          print("句子分词后:\n", data_new)          # 1、实例化一个转换器类     transfer = CountVectorizer(stop_words = ["说","的"])#停顿词应该预处理清理,这里只是示范          # 2、调用fit_transform     data_vector_value = transfer.fit_transform(data_new)     print("data_vector_value:\n", data_vector_value.toarray())     print("特征名字:\n", transfer.get_feature_names())          return None           if __name__ =='__main__':     auto_chinese_text_count_demo()   输出结果: 句子分词后:  ['你 说 这 该 怎么办', '唐龙 大声 问 怎么回事', '晚上 找个 地方 喝 几盅 怎么样', '老忠领 他们 到 朱老明 那里 站 在 大柏树 坟前 说 你 看看 这个 地势 怎么样 我们 的 人 要 是从 城里 过来 经过 大渡口 或是 小 渡口 沿着 千里 堤'] data_vector_value:  [[0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]  [0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]  [0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0]  [1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1]] 特征名字:  ['他们', '几盅', '千里', '唐龙', '地势', '地方', '坟前', '城里', '大声', '大柏树', '大渡口', '怎么办', '怎么回事', '怎么样', '我们', '或是', '找个', '是从', '晚上', '朱老明', '沿着', '渡口', '看看', '经过', '老忠领', '过来', '这个', '那里']

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!