如何针对许多字符串测试NLP模型

时间:2019-09-30 16:24:11

标签: python nlp logistic-regression

我已经在一组字符串上使用逻辑回归训练了分类器模型,该模型将字符串分为0或1。我现在只能在一次只能测试一个字符串的地方使用它。如何让我的模型一次遍历一个以上的句子,也许是从一个.csv文件运行,所以我不必单独输入每个句子?

def train_model(分类器,feature_vector_train,标签,feature_vector_valid,valid_y,is_neural_net = False):         classifier.fit(feature_vector_train,label)

def round_down(x):
     return int(x * 10) / 10

然后

# 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'] 

我得到了句子及其预测

我希望模型能够一次对所有新句子进行分类,并对每个句子进行分类。

2 个答案:

答案 0 :(得分:0)

model.predict(X)提取了一个样本列表,与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)

答案 1 :(得分:0)

更容易的方法是

disallowedFields

您可以根据需要将其导出。