欢迎访问宙启技术站
智能推送

Python中使用sklearn.svm进行文本生成预测

发布时间:2023-12-11 11:46:48

在Python中,可以使用scikit-learn(sklearn)库中的支持向量机(Support Vector Machine,SVM)模块进行文本生成预测。SVM是一种监督学习算法,广泛应用于文本分类、情感分析等自然语言处理任务中。

下面是一个使用sklearn.svm进行文本生成预测的例子。

首先,我们需要导入必要的库和模块:

from sklearn import svm
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

接下来,我们准备一些样本数据来训练和测试模型:

# 定义文本数据和对应的标签
data = [
    ("I love this movie", "positive"),
    ("This movie is great", "positive"),
    ("This movie is bad", "negative"),
    ("I hate this movie", "negative")
]

# 将文本数据和标签分开
texts = [item[0] for item in data]
labels = [item[1] for item in data]

然后,我们使用TfidfVectorizer来将文本数据转换为特征向量:

# 创建TfidfVectorizer对象
vectorizer = TfidfVectorizer()

# 将文本数据转换为特征向量
features = vectorizer.fit_transform(texts)

接下来,我们将数据划分为训练集和测试集:

# 将数据划分为训练集和测试集
train_features, test_features, train_labels, test_labels = train_test_split(
    features, labels, test_size=0.2, random_state=42)

然后,我们使用svm.SVC来创建一个SVM模型:

# 创建SVM模型
model = svm.SVC(kernel='linear')

# 使用训练集来训练模型
model.fit(train_features, train_labels)

接下来,我们可以使用训练好的模型来进行预测:

# 使用训练好的模型对测试集进行预测
predictions = model.predict(test_features)

# 计算预测的准确率
accuracy = accuracy_score(test_labels, predictions)
print("Accuracy:", accuracy)

以上就是一个简单的使用sklearn.svm进行文本生成预测的例子。首先,我们准备了一些样本数据,并将其转换为特征向量。然后,我们使用svm.SVC创建了一个SVM模型,并使用训练集来训练这个模型。最后,我们使用训练好的模型来对测试集进行预测,并计算预测的准确率。