停用词
什么是停用词
停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。但是,并没有一个明确的停用词表能够适用于所有的工具。甚至有一些工具是明确地避免使用停用词来支持短语搜索的。
https://baike.baidu.com/item/%E5%81%9C%E7%94%A8%E8%AF%8D
在代码中我们应该如何使用停用词呢?
transfer=CountVectorizer(stop_words=["is","too"]) # 添加停用词
# -*- coding: utf-8 -*-
"""
@Time : 2021/3/7 16:13
@Author : yuhui
@Email : 3476237164@qq.com
@FileName: 09_文本特征提取CountVectorizer.py
@Software: PyCharm
"""
from sklearn.feature_extraction.text import CountVectorizer
data=["life is short,i like like python",
"life life is too long,i dislike python"]
# data=["我爱北京天安门","天安门上太阳升"]
# data=["我 爱 北京 天安门","天安门 上 太阳 升"] # 用空格来分开单词与单词
# 实例化一个转换器类
transfer=CountVectorizer()
# transfer=CountVectorizer(stop_words=["is","too"]) # 添加停用词
# 统计每个样本特征词出现的个数
# 调用方法
data_new=transfer.fit_transform(data)
print(data_new) # 返回一个稀疏矩阵
print(data_new.toarray()) # 将稀疏矩阵转变为真正的矩阵
# 查看属性
# 查看特征名
print(transfer.get_feature_names())
中文文本特征提取
jieba分词处理
pip3 install jieba
代码演示
# -*- coding: utf-8 -*-
"""
@Time : 2021/3/7 17:04
@Author : yuhui
@Email : 3476237164@qq.com
@FileName: 10_中文文本特征提取.py
@Software: PyCharm
"""
import jieba
from sklearn.feature_extraction.text import CountVectorizer
def Chinese_text_feature_extraction(text):
"""中文文本特征提取 自动分词"""
# 对中文文本进行分词
data_new = []
for t in text:
data_new.append(jieba_cut_word(t))
# 实例化一个转换器类
transfer = CountVectorizer()
# 调用方法
text_new = transfer.fit_transform(data_new)
print(text_new)
# 查看特征名
print(transfer.get_feature_names())
def jieba_cut_word(text):
"""使用jieba对文本进行分词处理"""
return " ".join(list(jieba.cut(text)))
if __name__ == '__main__':
text = [