机器学习(3)特征提取2 -- 文本特征提取(包括中文文本特征提取)

目录

 一、文本特征提取

1、基础理论

2、过程

3、API介绍

4、特征值转化为二维矩阵

5、特征值转化为稀疏矩阵

代码

二、中文文本特征提取

1、字符串列表中文处理

1-1、得到初始数据集

1-2、创建词语生成器

1-3、分割得到的中文字符串

1-4、返回列表字符串

2、稀疏矩阵

3、二维矩阵


 一、文本特征提取

1、基础理论

分隔依据:以空格作为分隔。

排序依据:按照顺序进行排序(即数字->A->Z)

(注:标点符号和单个字符忽略。)

stop_words( )停用单词

2、过程

1、获取数据集

2、实例化转换器类

3、提取特征值

3、API介绍

sklearn.feature_extraction.text.CountVectorizer

4、特征值转化为二维矩阵

# 数据集
data = ['life is short, i like like AI', 'life is short, i dislike dislike AI']

# 提取特征值,转化为二维矩阵
def Matrix():
    # 1、实例化转换器类
    transfer = CountVectorizer()

    # 2、提取特征值
    feature_data = transfer.fit_transform(data)

    print('二维矩阵特征值:\n', feature_data.toarray())
    print('特征名字:', transfer.get_feature_names())

5、特征值转化为稀疏矩阵

# 数据集
data = ['life is short, i like like AI', 'life is short, i dislike dislike AI']

# 提取特征值,转化为稀疏矩阵
def Sparse():
    # 1、实例化转换器类
    transfer = CountVectorizer()

    # 2、提取特征值
    feature_data = transfer.fit_transform(data)

    print('稀疏矩阵特征值\n', feature_data)
    print('特征名字:', transfer.get_feature_names())

 (按照顺序进行排序(即数字->A->Z),标点符号和单个字符忽略。)

代码

# 文本特征提取
from sklearn.feature_extraction.text import CountVectorizer

# 数据集
data = ['life is short, i like like AI 123', 'life is short, i dislike dislike AI 321']


# 提取特征值,转化为稀疏矩阵
def Count_Sparse():
    # 1、实例化转换器类
    transfer = CountVectorizer()

    # 2、提取特征值
    feature_data = transfer.fit_transform(data)

    print('稀疏矩阵特征值\n', feature_data)
    print('特征名字:', transfer.get_feature_names())


# 提取特征值,转化为二维矩阵
def Count_Matrix():
    # 1、实例化转换器类
    transfer = CountVectorizer()

    # 2、提取特征值
    feature_data = transfer.fit_transform(data)

    print('二维矩阵特征值:\n', feature_data.toarray())
    print('特征名字:', transfer.get_feature_names())


if __name__ == '__main__':
    Count_Sparse()        #稀疏矩阵(特征值)
    Count_Matrix()        #二维矩阵(特征值)

二、中文文本特征提取

1、字符串列表中文处理

1-1、得到初始数据集

# 数据集
data = ['我虽然是一只小菜鸡', '目前比较菜', '但是在不断干饭', '努力成为战斗鸡']

1-2、创建词语生成器

首先需要把列表化字符串形式。,否则cut会报错。

# 创建生成器
    generator = jieba.cut(str(text))
    print(generator)

1-3、分割得到的中文字符串

# 空格分割得到中文
    Chinese = " ".join(generator)
    print(Chinese)

1-4、返回列表字符串

return list(Chinese)

2、稀疏矩阵

# 提取特征值,转化为稀疏矩阵
def Count_Sparse():
    # 1、获取中文数据集
    Chinese = Chinese_Data(data)

    # 2、实例化转换器类
    transfer = CountVectorizer(analyzer ='char',lowercase=False)

    # 3、提取特征值
    feature_data = transfer.fit_transform(Chinese)

    print('稀疏矩阵特征值\n', feature_data)
    print('特征名字:', transfer.get_feature_names())
稀疏矩阵特征值
   (0, 3)	1
  (1, 0)	1
  (2, 1)	1
  (3, 0)	1
  (4, 17)	1
  (5, 0)	1
  (6, 26)	1
  (7, 23)	1
  (8, 0)	1
  (9, 21)	1
  (10, 0)	1
  (11, 5)	1
  (12, 12)	1
  (13, 0)	1
  (14, 14)	1
  (15, 25)	1
  (16, 0)	1
  (17, 29)	1
  (18, 0)	1
  (19, 1)	1
  (20, 0)	1
  (21, 2)	1
  (22, 0)	1
  (23, 0)	1
  (24, 0)	1
  :	:
  (51, 15)	1
  (52, 28)	1
  (53, 0)	1
  (54, 1)	1
  (55, 0)	1
  (56, 2)	1
  (57, 0)	1
  (58, 0)	1
  (59, 0)	1
  (60, 1)	1
  (61, 0)	1
  (62, 11)	1
  (63, 10)	1
  (64, 0)	1
  (65, 16)	1
  (66, 7)	1
  (67, 0)	1
  (68, 18)	1
  (69, 19)	1
  (70, 0)	1
  (71, 29)	1
  (72, 0)	1
  (73, 1)	1
  (74, 0)	1
  (75, 4)	1

特征名字: [' ', "'", ',', '[', ']', '一', '不', '为', '但', '前', '力', '努', '只', '在', '小', '干', '成', '我', '战', '斗', '断', '是', '比', '然', '目', '菜', '虽', '较', '饭', '鸡']

3、二维矩阵

# 提取特征值,转化为二维矩阵
def Count_Matrix():
    # 1、获取中文数据集
    Chinese = Chinese_Data(data)

    # 2、实例化转换器类
    transfer = CountVectorizer(analyzer ='char',lowercase=False)

    # 3、提取特征值
    feature_data = transfer.fit_transform(Chinese)

    print('二维矩阵特征值:\n', feature_data.toarray())
    print('特征名字:', transfer.get_feature_names())
二维矩阵特征值:
 [[0 0 0 ... 0 0 0]
 [1 0 0 ... 0 0 0]
 [0 1 0 ... 0 0 0]
 ...
 [0 1 0 ... 0 0 0]
 [1 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]]

特征名字: [' ', "'", ',', '[', ']', '一', '不', '为', '但', '前', '力', '努', '只', '在', '小', '干', '成', '我', '战', '斗', '断', '是', '比', '然', '目', '菜', '虽', '较', '饭', '鸡']

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python文本特征提取是指利用Python编程语言从文本数据中提取特征的过程。在自然语言处理(NLP)和文本挖掘等领域中,对文本进行特征提取可以将文本数据转化为可用于机器学习和统计分析的数字或向量表示。 Python提供了丰富的库和工具,可以用于文本特征提取。常见的特征提取方法包括词袋模型(Bag of Words)、TF-IDF、词频(Term Frequency)、逆文档频率(Inverse Document Frequency)等。 词袋模型是最常用的文本特征提取方法之一。它将文本数据表示为一个词汇表,并统计每个词汇的出现频率作为特征。Python的scikit-learn库提供了CountVectorizer类来实现词袋模型的特征提取。 TF-IDF是一种常用的用于衡量词语在文本文档和语料库中重要性的方法。通过计算词在文档中的频率和在整个语料库中的逆文档频率,得到每个词的TF-IDF值作为特征。scikit-learn库提供了TfidfVectorizer类用于实现TF-IDF特征提取。 词频和逆文档频率是构成TF-IDF方法的两个组成部分。词频衡量了词语在文档中的频率,逆文档频率衡量了词语在整个语料库中的重要性。使用Python的scikit-learn库可以计算并提取词频和逆文档频率作为文本特征。 除了以上常见的文本特征提取方法外,Python还可以使用正则表达式、n-gram模型、Word2Vec等方法进行文本特征提取。 总而言之,Python提供了丰富的库和工具,可以方便地进行文本特征提取。通过选择合适的特征提取方法,可以将文本数据转化为数字或向量表示,为后续的机器学习和统计分析任务奠定基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_(*^▽^*)_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值