現在、Naive Bayesを使用して複数のテキストを分類しています。私は複数のカテゴリを持っています。今私は事後確率とカテゴリーを出力していますが、私がしたいことは事後確率に基づいてカテゴリーをランク付けし、第2位、第3位カテゴリーを「バックアップ」カテゴリーとして使用することです。NLTKでNaive Bayesを使用してテキスト文字列を複数のクラスに分類する
df = pandas.DataFrame({ 'text' : pandas.Categorical(["I have wings","Metal wings","Feathers","Airport"]), 'true_cat' : pandas.Categorical(["bird","plane","bird","plane"])})
text true_cat
-----------------------
I have wings bird
Metal wings plane
Feathers bird
Airport plane
私がやっている:ここで
は一例ですnew_cat = classifier.classify(features(text))
prob_cat = classifier.prob_classify(features(text))
最終的な出力:私はclassify_manyとを使用してカップルの例を発見した
new_cat prob_cat text true_cat
bird 0.67 I have wings bird
bird 0.6 Feathers bird
bird 0.51 Metal wings plane
plane 0.8 Airport plane
prob_classify_manyしかし、私はPythonを初めて使っているので、問題に翻訳するのに問題があります。私はそれがパンダでどこでも使われているのを見たことがありません。
私はそれは次のようになりたい:
df_new = pandas.DataFrame({'text': pandas.Categorical(["I have wings","Metal wings","Feathers","Airport"]),'true_cat': pandas.Categorical(["bird","plane","bird","plane"]), 'new_cat1': pandas.Categorical(["bird","bird","bird","plane"]), 'new_cat2': pandas.Categorical(["plane","plane","plane","bird"]), 'prob_cat1': pandas.Categorical(["0.67","0.51","0.6","0.8"]), 'prob_cat2': pandas.Categorical(["0.33","0.49","0.4","0.2"])})
new_cat1 new_cat2 prob_cat1 prob_cat2 text true_cat
-----------------------------------------------------------------------
bird plane 0.67 0.33 I have wings bird
bird plane 0.51 0.49 Metal wings plane
bird plane 0.6 0.4 Feathers bird
plane bird 0.8 0.2 Airport plane
任意の助けをいただければ幸いです。
完璧、ありがとう! –