-
Dicvectorizer对使用字典储存的数据进行特征提取与向量化
# 定义一组字典列表,用来表示多个数据样本(每个字典代表一个数据样本)。
measurements = [{'city': 'Dubai', 'temperature': 33.}, {'city': 'London', 'temperature': 12.}, {'city': 'San Fransisco', 'temperature': 18.}]
# 从sklearn.feature_extraction 导入 DictVectorizer
from sklearn.feature_extraction import DictVectorizer
# 初始化DictVectorizer特征抽取器
vec = DictVectorizer()
# 输出转化之后的特征矩阵。
print(vec.fit_transform(measurements).toarray())
# 输出各个维度的特征含义。
print (vec.get_feature_names())
特征矩阵:
[[ 1. 0. 0. 33.]
[ 0. 1. 0. 12.]
[ 0. 0. 1. 18.]]
对名义型变量 采用0/1编码,进行向量化;而数值型变量,维持原始值
输出各个维度的特征含义:
[‘city=Dubai’, ‘city=London’, ‘city=San Fransisco’, ‘temperature’]
-
Countvectorizer统计词频并转为矩阵
常用数据输入形式为:列表,列表元素为代表文章的字符串,一个字符串代表一篇文章,字符串是已经分割好的。
参数 | 作用 |
stop_words | 停用词表,自定义停用此表 |
token_pattern | 过滤规则(如token_pattern=r"(?u)\b[^/]+\b"表示用" / "来过滤) |
vocabulary_ | 词汇表,字典型 |
get_feature_names() | 所有文本的词汇;列表型 |
stop_words | 返回停用词表 |
countvectorizer 是通过fit-transform函数将文本中的词语转换为词频矩阵,矩阵元素a[i][j] 表示j词在第i个文本下的词频。即各个词语出现的次数,通过get_feature_names()可看到所有文本的关键词,通过torray()可看到词频矩阵的结果。
放发表 | 作用 |
fit_transform(X) | 拟合模型,并返回文本矩阵 |
首先要进行countvectorizer需对文本进行分词处理,中文分词,经常用jieba这个包
a ="自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学"
b = "因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。"
c ="因而它是计算机科学的一部分。自然语言处理(NLP)是计算机科学,人