nlp实现二分类代码 python
时间: 2023-11-12 20:45:40 浏览: 37
以下是一个基于自然语言处理的二分类示例代码,使用Python的sklearn和nltk库:
```python
import nltk
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
# 加载数据
positive_reviews = open('positive_reviews.txt', 'r').read()
negative_reviews = open('negative_reviews.txt', 'r').read()
# 分词和清洗数据
tokenizer = nltk.tokenize.RegexpTokenizer(r'\w+')
positive_tokens = tokenizer.tokenize(positive_reviews)
negative_tokens = tokenizer.tokenize(negative_reviews)
# 将数据转换为向量
vectorizer = CountVectorizer(stop_words='english')
X = vectorizer.fit_transform(positive_tokens + negative_tokens)
y = [1] * len(positive_tokens) + [0] * len(negative_tokens)
# 将数据分为训练集和测试集
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)
# 预测测试集结果
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = sum(y_pred == y_test) / len(y_test)
print('Accuracy:', accuracy)
```
该代码从两个文件中加载正面和负面评论,对它们进行分词和清理,将它们转换为向量形式,然后将它们分为训练集和测试集。我们使用朴素贝叶斯算法(MultinomialNB)来训练模型,并使用测试集预测结果。最后,我们计算准确率并打印它。