Что, если в классификации текста ML текст не принадлежит ни к какой категории? - PullRequest
0 голосов
/ 05 мая 2020

Я использую классификацию текста для таких типов новостей, как спорт, политика, бизнес, развлечения с использованием логистической регрессии. c текст, который не принадлежит к вышеуказанным категориям, также прогнозируется как одна из категорий. Как предотвратить это в машинном обучении? также как добавить текст вне категории к метке other_category?

1 Ответ

1 голос
/ 05 мая 2020

Метод 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")

Вот так:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...