如何针对多个字符串测试 NLP 模型
How to test NLP model against many strings
我在一组字符串上使用逻辑回归训练了一个分类器模型,该模型将字符串分类为 0 或 1。我目前使用它一次只能测试一个字符串。我如何让我的模型 运行 一次通过多个句子,也许来自 .csv 文件,这样我就不必单独输入每个句子?
def train_model(分类器,feature_vector_train,标签,feature_vector_valid,valid_y,is_neural_net=False):
classifier.fit(feature_vector_train, 标签)
# predict the labels on validation dataset
predictions = classifier.predict(feature_vector_valid)
if is_neural_net:
predictions = predictions.argmax(axis=-1)
return classifier , metrics.accuracy_score(predictions, valid_y)
然后
model, accuracy = train_model(linear_model.LogisticRegression(), xtrain_count, train_y, xtest_count,test_y)
目前我如何测试我的模型
sent = ['here I copy a string']
将文本转换为词向量袋计数
count_vect = CountVectorizer(analyzer='word', token_pattern=r'\w{1,}',ngram_range=(1, 2))
x_feature_vector = count_vect.transform(sent)
pred = model.predict(x_feature_vector)
我得到了句子及其预测
我希望模型一次对我所有的新句子进行分类,并对每个句子进行分类。
model.predict(X) takes a list of samples, the same for count_vec.transform(X) 这样您就可以从文件中读取句子并像这样一起预测它们:
with open('file.txt', 'r') as f:
samples = f.readlines()
vecs = count_vec.transform(samples)
preds = model.predict(vecs)
for s, p in zip(samples, preds):
#printing each sentence with the predicted label
print(s + " Label: " + p)
更简单的方法是
vecs=count_vec.transform(test['column_name_on_which_you_want_to_predict'])
pred=model.predict(vecs)
data=pd.DataFrame({'Text':column_name,'SECTION':pred})
你可以随心所欲地导出它。
我在一组字符串上使用逻辑回归训练了一个分类器模型,该模型将字符串分类为 0 或 1。我目前使用它一次只能测试一个字符串。我如何让我的模型 运行 一次通过多个句子,也许来自 .csv 文件,这样我就不必单独输入每个句子?
def train_model(分类器,feature_vector_train,标签,feature_vector_valid,valid_y,is_neural_net=False): classifier.fit(feature_vector_train, 标签)
# predict the labels on validation dataset
predictions = classifier.predict(feature_vector_valid)
if is_neural_net:
predictions = predictions.argmax(axis=-1)
return classifier , metrics.accuracy_score(predictions, valid_y)
然后
model, accuracy = train_model(linear_model.LogisticRegression(), xtrain_count, train_y, xtest_count,test_y)
目前我如何测试我的模型
sent = ['here I copy a string']
将文本转换为词向量袋计数
count_vect = CountVectorizer(analyzer='word', token_pattern=r'\w{1,}',ngram_range=(1, 2))
x_feature_vector = count_vect.transform(sent)
pred = model.predict(x_feature_vector)
我得到了句子及其预测
我希望模型一次对我所有的新句子进行分类,并对每个句子进行分类。
model.predict(X) takes a list of samples, the same for count_vec.transform(X) 这样您就可以从文件中读取句子并像这样一起预测它们:
with open('file.txt', 'r') as f:
samples = f.readlines()
vecs = count_vec.transform(samples)
preds = model.predict(vecs)
for s, p in zip(samples, preds):
#printing each sentence with the predicted label
print(s + " Label: " + p)
更简单的方法是
vecs=count_vec.transform(test['column_name_on_which_you_want_to_predict'])
pred=model.predict(vecs)
data=pd.DataFrame({'Text':column_name,'SECTION':pred})
你可以随心所欲地导出它。