Python НЛТК не классифицируют правильно даже с правильными информативными признаками - PullRequest
1 голос
/ 11 февраля 2020

Я использую NLTK для анализа небольшого набора данных (1000 строк) данных из моей системы. Все работает как положено, покупаю, когда я пытаюсь классифицировать данные, происходит то же самое. Посмотрите мои "show_most_inforrative_features" результат:

              execut = True             1114 : 1790   =     91.2 : 1.0
                  r$ = True             1114 : 1790   =     56.2 : 1.0
                pens = True             1114 : 1790   =     40.1 : 1.0
                 val = True             1114 : 1790   =     39.8 : 1.0
                 pag = True             1114 : 1790   =     28.5 : 1.0
              parcel = True             1114 : 1790   =     24.1 : 1.0
                real = True             1114 : 1790   =     24.1 : 1.0
            municípi = True             2049 : 1790   =     23.6 : 1.0
             aliment = True             1114 : 203    =     22.2 : 1.0
              veícul = True             2049 : 1790   =     22.1 : 1.0
                   é = True             1114 : 1790   =     21.5 : 1.0
               efetu = True             1114 : 1790   =     21.2 : 1.0
          palmas/to, = True             1114 : 1790   =     21.2 : 1.0
                rend = True             2049 : 1790   =     20.5 : 1.0
                cont = True              178 : 1790   =     19.9 : 1.0

Это мои данные для теста:

['execut', 'r$', 'pen', 'val', 'pag']

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

Если I print prob_classify(), то это результат:

КОД:

def show_distribuicao():
  distribuicao = classificador.prob_classify(linha_teste_frase)

  for classe in distribuicao.samples():
      print("%s: %f" % (classe, distribuicao.prob(classe)))

РЕЗУЛЬТАТ:

178: 0.000000
1790: 1.000000
203: 0.000000
1114: 0.000000
2049: 0.000000

И мой qualificacao_id.value_counts():

1790    323
203     237
178     152
1114    147
2049    141

Есть идеи, почему это происходит?

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