streamlit文本分类代码示例
时间: 2024-06-18 17:01:58 浏览: 174
基于streamlit的性别分类器.zip
Streamlit是一个开源的Python库,用于创建数据科学应用和交互式仪表板。在文本分类任务中,我们通常会使用机器学习模型(如朴素贝叶斯、支持向量机或深度学习模型)对文本进行分析。以下是一个简单的Streamlit文本分类代码示例,使用scikit-learn库中的朴素贝叶斯分类器:
```python
import streamlit as st
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
# 假设我们有预处理后的训练数据(例如电影评论)
train_data = ["这部电影太棒了", "这个表演很糟糕", ...] # 文本
train_labels = [1, 0, ...] # 类别标签,1代表正面评价,0代表负面评价
# 将数据划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(train_data, train_labels, test_size=0.2, random_state=42)
# 创建特征向量(词频)
vectorizer = CountVectorizer()
X_train_transformed = vectorizer.fit_transform(X_train)
X_test_transformed = vectorizer.transform(X_test)
# 训练朴素贝叶斯分类器
clf = MultinomialNB()
clf.fit(X_train_transformed, y_train)
# Streamlit应用
st.title("文本分类应用")
# 用户输入文本
user_input = st.text_area("请输入您的评论:", value="")
if user_input:
# 用户输入预测
user_input_vec = vectorizer.transform([user_input])
prediction = clf.predict(user_input_vec)
result = "这是个{}评价".format("正面" if prediction == 1 else "负面")
st.write(result)
# 展示模型性能(如果需要)
if 'show_model_metrics' in st.session_state and st.session_state.show_model_metrics:
# 在这里添加计算并展示模型评估指标的代码
accuracy = clf.score(X_test_transformed, y_test)
st.write("模型准确率: {:.2f}%".format(accuracy * 100))
```
阅读全文