我有一个相当简单的 NLTK 和 sklearn 分类器(我对此完全是菜鸟)。
我做通常的进口
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.feature_extraction.text import CountVectorizer
from nltk.tokenize import RegexpTokenizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn import metrics
from sklearn.feature_extraction.text import TfidfVectorizer
Run Code Online (Sandbox Code Playgroud)
我加载数据(我已经清理过它)。这是一个非常简单的数据框,有两列。第一个是包含清理后的'post_clean'
文本,第二个是'uk'
或者True
False
data = pd.read_pickle('us_uk_posts.pkl')
Run Code Online (Sandbox Code Playgroud)
然后我使用 tfidf 进行矢量化并分割数据集,然后创建模型
tf = TfidfVectorizer()
text_tf = tf.fit_transform(data['post_clean'])
X_train, X_test, y_train, y_test = train_test_split(text_tf, data['uk'], test_size=0.3, random_state=123)
clf = MultinomialNB().fit(X_train, y_train)
predicted = clf.predict(X_test)
print("MultinomialNB Accuracy:" , metrics.accuracy_score(y_test,predicted))
Run Code Online (Sandbox Code Playgroud)
显然,除非我完全遗漏了一些东西,否则我的准确度为 93%
我的两个问题是: …