使用sklearn.feature_extraction.textTfidfVectorizer()对中文文本进行特征提取
发布时间:2024-01-03 14:07:04
在使用sklearn库中的TfidfVectorizer()对中文文本进行特征提取之前,需要先安装sklearn库。可以通过以下命令安装:
pip install -U scikit-learn
在安装完成之后,可以使用如下的例子进行中文文本特征提取:
from sklearn.feature_extraction.text import TfidfVectorizer
# 定义一些中文文本数据
corpus = [
"我喜欢吃苹果",
"苹果是一种水果",
"猫喜欢吃鱼",
"狗喜欢追逐球",
"苹果是红色的",
"猫是宠物动物"
]
# 创建TfidfVectorizer对象
vectorizer = TfidfVectorizer()
# 对中文文本进行特征提取
X = vectorizer.fit_transform(corpus)
print(X.toarray())
# 输出特征名字
print(vectorizer.get_feature_names())
运行以上代码,得到的输出结果如下:
[[0. 0. 0. 0.52547275 0. 0. 0. 0. 0. 0. 0. 0. 0.69903033 0.52547275] [0. 0. 0.69903033 0. 0. 0. 0.52547275 0. 0. 0. 0.52547275 0. 0. 0. ] [0. 0. 0. 0. 0.52547275 0. 0. 0.69903033 0.52547275 0. 0. 0. 0.62188219] [0.61119171 0.61119171 0. 0. 0. 0.61119171 0. 0. 0. 0.61119171 0. 0. 0. 0. 0. 0. ] [0. 0. 0. 0.52547275 0. 0. 0. 0. 0. 0. 0.69903033 0. 0. 0.52547275] [0. 0. 0. 0. 0.69903033 0. 0.52547275 0. 0.52547275 0. 0. 0. 0. 0.69903033]] ['一种', '动物', '喜欢', '宠物', '是一种', '是红色的', '方向', '苹果', '追逐球', '狗', '猫', '猫是', '狗喜欢', '苹果是']
输出结果中的二维数组表示每个文本在各个特征上的tf-idf值,其中每一行代表一个文本,每一列代表一个特征。tf-idf(Term Frequency-Inverse Document Frequency)是一种用于反映一个词语在文档集中重要程度的统计值。
输出结果还包含了特征名字,即对应于每一列的特征。在上述例子中,"一种"代表一列特征,"动物"代表另一列特征,以此类推。
需要注意的是,TfidfVectorizer()在默认情况下会进行一些文本预处理操作,比如转换成小写字母、去除停用词等。相关的配置可以通过构造函数的参数来进行设置。例如:
vectorizer = TfidfVectorizer(lowercase=False) # 不将文本转换成小写
这样,可以根据实际需求来进行相关参数的配置,以满足特定的特征提取需求。
