中文文本分类的Python代码
时间: 2023-11-21 16:56:12 浏览: 88
基于ELMo词向量的textCNN中文文本分类python代码
以下是一个简单的中文文本分类 Python 代码:
```python
import jieba
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
# 构建文本数据
text_data = [
{'text': '这个奶茶很好喝', 'label': 'positive'},
{'text': '这家店的服务态度很不错', 'label': 'positive'},
{'text': '这个手机真的很好用', 'label': 'positive'},
{'text': '这部电影真是太烂了', 'label': 'negative'},
{'text': '这个餐厅的菜很难吃', 'label': 'negative'},
{'text': '这个品牌的产品质量很差', 'label': 'negative'},
]
# 分词
for item in text_data:
item['text'] = ' '.join(jieba.cut(item['text']))
# 构建特征向量
vectorizer = CountVectorizer()
X = vectorizer.fit_transform([item['text'] for item in text_data])
y = [item['label'] for item in text_data]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 构建朴素贝叶斯分类器
clf = MultinomialNB()
clf.fit(X_train, y_train)
# 测试模型性能
accuracy = clf.score(X_test, y_test)
print('Accuracy:', accuracy)
# 预测新数据
new_data = ['这个酒店的房间很舒适']
X_new = vectorizer.transform([' '.join(jieba.cut(text)) for text in new_data])
y_pred = clf.predict(X_new)
print('Predict:', y_pred[0])
```
代码中使用了朴素贝叶斯分类器进行文本分类。首先将中文文本进行分词处理,然后使用 sk-learn 库中的 CountVectorizer 类构建词语的特征向量。接着使用 train_test_split 方法将数据集分为训练集和测试集,使用 MultinomialNB 类构建朴素贝叶斯分类器,并进行训练。最后测试模型性能并对新数据进行预测。
阅读全文