Метод predict
даст вам прогноз с наибольшей вероятностью. Вы можете использовать метод predict_proba
, который даст вам оценку вероятности для каждой категории. Таким образом, вы можете использовать функцию max()
, чтобы получить максимальную вероятность, затем вы можете просто использовать оператор if
, чтобы проверить, больше ли вероятность, чем требуемое значение, напечатайте прогноз, иначе else
напечатайте другие. Если вы не видите пример кода.
model.fit(text, tags)
textToBeClassified = ["Google's shares are going down"] # it is to be in a [] list that's how the predict method expects the input, you can classify more text by adding here separated by a comma.
prediction = model.predict(textToBeClassified) # it will return the tag as politics or sports or business etc.
predictionConfidence = model.predict_proba(textToBeClassified) # it will return a tuple of confidence score (probability) for each inputs.
maxConfidence = max(predictionConfidence[0]) # I'm having only one text to be classified which is the first text so I'm finding the maximum value of the first text.
if maxConfidence > 0.8: # I want the output only if it is 80% confident about the classification, you can change 0.8 to 0.9 if you want 90% accurate.
print(prediction)
else:
print("Sorry the text doesn't fall under any of the categories")
попробуйте добавить операторы печати здесь и там, чтобы вы знали, что происходит
model.fit(text, tags)
textToBeClassified = ["Google's shares are going down"]
prediction = model.predict(textToBeClassified)
print("Predicted as:", prediction)
predictionConfidence = model.predict_proba(textToBeClassified)
print("The Confidance scores:", predictionCondidence)
maxConfidence = max(predictionConfidence[0])
print("maximum confidence score is:", maxConfidence)
if maxConfidence > 0.8:
print(prediction)
else:
print("Sorry the text doesn't fall under any of the categories")
Вот так:)