用sklearn进行特征提取及数值转换

对自己目前常用的几种特征提取方法做个简要总结。

1,将文本数据转化为特征向量(其中CountVectorizer只考虑词汇在文本中出现的频率)

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer

wordVectorizer = CountVectorizer(ngram_range=(1, 2))
X_train = wordVectorizer.fit_transform(x_train)
wordTransformer = TfidfTransformer()
train_feature = wordTransformer.fit_transform(X_train)

2,文本特征数值转换(DictVectorizer的处理对象是符号化非数字化但是具有一定结构的特征数据,如字典,dataframe等,将符号转成数字0/1表示。)

笨办法是直接用字典的key-value转换(穷举)

from sklearn.feature_extraction import DictVectorizer

dict_vec = DictVectorizer(sparse=False)  # False:不产生稀疏矩阵
 
X_train = dict_vec.fit_transform(X_train.to_dict(orient='record'))
X_test = dict_vec.transform(X_test.to_dict(orient='record'))
print(dict_vec.feature_names_)  # 查看转换后的列名
print(X_train)

另,feature.extraction:

__all__ = ['DictVectorizer', 'image', 'img_to_graph', 'grid_to_graph', 'text',
           'FeatureHasher']

feature.extraction.text:

__all__ = ['CountVectorizer',
           'ENGLISH_STOP_WORDS',
           'TfidfTransformer',
           'TfidfVectorizer',
           'strip_accents_ascii',
           'strip_accents_unicode',
           'strip_tags']

附,直接看源代码比较明了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中将每个新闻标题转换数值特征向量,可以使用Scikit-learn库中的文本特征提取器来实现。这里介绍两种常用的文本表示方法:词袋模型和TF-IDF。 1. 词袋模型 词袋模型是一种简单的文本表示方法,它将每个文档表示为一个固定长度的向量,向量的每个元素表示一个词在文档中出现的频率。使用Scikit-learn库中的CountVectorizer类可以将文本转换为词袋模型表示。 ```python from sklearn.feature_extraction.text import CountVectorizer # 将文本转换为词袋模型表示 corpus = [ 'This is the first document.', 'This is the second second document.', 'And the third one.', 'Is this the first document?', ] vectorizer = CountVectorizer() X = vectorizer.fit_transform(corpus) # 输出特征向量 print(X.toarray()) ``` 2. TF-IDF TF-IDF(Term Frequency-Inverse Document Frequency)是一种常用的文本表示方法,它根据一个词在文档中出现的频率和在整个语料库中出现的频率来计算一个权重。使用Scikit-learn库中的TfidfVectorizer类可以将文本转换为TF-IDF表示。 ```python from sklearn.feature_extraction.text import TfidfVectorizer # 将文本转换为TF-IDF表示 corpus = [ 'This is the first document.', 'This is the second second document.', 'And the third one.', 'Is this the first document?', ] vectorizer = TfidfVectorizer() X = vectorizer.fit_transform(corpus) # 输出特征向量 print(X.toarray()) ``` 这样,每个新闻标题都被表示为一个数值向量,可以用于训练支持向量机模型。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值