python机器学习---数据处理---文本数据处理

目录

1、将文本数据进行特征提取

1.1英文文本---直接用CountVectorizer

1.2中文文本---先用结巴分词工具进行分词

2、将分词转为数组

2.1 基本词袋模型

2.2 改善词袋模型---n-Gram

3、进一步优化处理

3.1 tf-idf模型

3.2 删除文本中的停用词

4、如何深入自然语言处理


1、将文本数据进行特征提取

1.1英文文本---直接用CountVectorizer

CountVectorizer是属于常见的特征数值计算类,是一个文本特征提取方法。对于每一个训练文本,它只考虑每种词汇在该训练文本中出现的频率。用法:

sklearn.feature_extraction.text(input=’content’,encoding=’utf8’, decode_error=’strict’,strip_accents=None, lowercase=True, preprocessor=None, tokenizer=None, stop_words=None, token_pattern=’(?u)\b\w\w+\b’, ngram_range=(1, 1), analyzer=’word’, max_df=1.0, min_df=1, max_features=None, vocabulary=None,binary=False, dtype=<class ‘numpy.int64’>)

参数设置见https://zhuanlan.zhihu.com/p/37644086

##处理英文文本
#导入文本向量化工具CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer
#引入算法
vect = CountVectorizer()
#导入文本数据(注意这里是文本list)
text_data = ['The quick brown fox jumps over a lazy dog']
#用CountVectorizer算法拟合文本数据
vect.fit(text_data)
#打印结果
print('单词数:{}'.format(len(vect.vocabulary_)))
print('分词:{}'.format(vect.vocabulary_))
单词数:8
分词:{'the': 7, 'quick': 6, 'brown': 0, 'fox': 2, 'jumps': 3, 'over': 5, 'lazy': 4, 'dog': 1}

这里的0-7是给每一个分词进行了编码
注意CountVectorize默认不统计只有一个字母的单词,如a,因此只有8个单词;CountVectorize无法对中文语句进行特征提取,需要先用其它工具

1.2中文文本---先用结巴分词工具进行分词

##处理中文文本
#使用前请先安装 pip install jieba
#导入结巴分词工具
import jieba
#导入文本数据(注意这里是文本元组)
text_data = ('那只敏捷的棕色狐狸跳过了一只懒惰的狗')
#用结巴分词对中文文本进行分词
cn = jieba.cut(text_data)
#使用空格作为词与词之间的分界线
cn = [' '.join(cn)]
#打印结果
print(cn)
#用CountVectorizer算法拟合文本数据
vect.fit(cn)
print('单词数:{}'.format(len(vect.vocabulary_)))
print('分词:{}'.format(vect.vocabulary_))
  • 4
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值