sklearn----------------CountVectorizer

 

CountVectorizer是词频转换函数,其详细用法为

from sklearn.feature_extraction.text import CountVectorizer
cv=CountVectorizer()
texts=['yellow blue red break','yellow blue red','blue blue break','blue red','break']
vocabu=cv.fit_transform(texts)

上面已经生成了词频矩阵

get_feature_names()可看到所有文本的关键字

vocabulary_可看到所有文本的关键字和其位置

toarray()可看到词频矩阵的结果

print(cv.get_feature_names())

###['blue', 'break', 'red', 'yellow']

print(cv.vocabulay_)

###{'yellow': 3, 'blue': 0, 'red': 2, 'break': 1}  value值表示索引,可以与上面打印的对比

print(vocabu.toarray())

###[[1 1 1 1]
    [1 0 1 1]
    [2 1 0 0]
    [1 0 1 0]
    [0 1 0 0]]

上面的词频矩阵可以作为训练集,再结合上对应的label,就可以直接拿来训练。那么测试集怎么生成?可以用transform

上面建好了词典,下面用transform将新数据转换成词向量

new_data=cv.transform(['yellow yellow','green']).toarray()

print(new_data)

##[[0 0 0 2]
   [0 0 0 0]]      可以发现在第一句'yellow yellow'中,yellow出现了两次,所以在词向量中yellow的位置为2.在第二句'green'中,因为green在原词典中没有出现,所以词向量都是0.

这里生成的词向量可以用来测试

scikit-learn是一个强大的Python机器学习库,以下介绍其基本运行方法: ### 安装 在使用scikit-learn之前,需要先安装它。可以使用pip或conda进行安装。 使用pip安装的命令如下: ```bash pip install scikit-learn ``` 使用conda安装的命令如下: ```bash conda install scikit-learn ``` ### 导入必要的库和模块 在Python脚本或Jupyter Notebook中,需要导入scikit-learn的相关模块和其他可能用到的库,例如: ```python import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier ``` ### 加载数据集 scikit-learn提供了一些内置的数据集,例如鸢尾花数据集、手写数字数据集等。可以使用这些数据集进行测试和学习。 ```python iris = load_iris() X = iris.data # 特征数据 y = iris.target # 标签数据 ``` ### 数据预处理 在训练模型之前,通常需要对数据进行预处理,例如划分训练集和测试集。 ```python X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) ``` ### 选择和训练模型 根据具体的任务选择合适的模型,例如分类任务可以选择K近邻分类器、决策树分类器等,回归任务可以选择线性回归、岭回归等。 ```python knn = KNeighborsClassifier(n_neighbors=3) knn.fit(X_train, y_train) ``` ### 模型预测 使用训练好的模型对测试数据进行预测。 ```python y_pred = knn.predict(X_test) ``` ### 模型评估 可以使用scikit-learn提供的评估指标来评估模型的性能,例如准确率、召回率、F1值等。 ```python from sklearn.metrics import accuracy_score accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy}") ``` 另外,为了使得向量化 => 转换 => 分类器过程更加简单,`scikit-learn` 提供了一个 `Pipeline` 类,操作起来像一个复合分类器,示例如下: ```python from sklearn.pipeline import Pipeline from sklearn.feature_extraction.text import CountVectorizer from sklearn.feature_extraction.text import TfidfTransformer from sklearn.naive_bayes import MultinomialNB text_clf = Pipeline([('vect', CountVectorizer()), ('tfidf', TfidfTransformer()), ('clf', MultinomialNB())]) ``` ### 结合Scikit-LLM运行 Scikit-LLM通过集成用于各种NLP任务(包括文本分类、摘要和翻译)的高级语言模型来增强scikit-learn,它支持零样本和少样本学习、动态示例选择和可自定义的后端。可以将Scikit-LLM与scikit-learn结合使用,将最先进的语言模型整合到机器学习工作流程中 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值