Python Имя столбца функции фильтра спама в функции - PullRequest
0 голосов
/ 09 апреля 2020

Здравствуйте, я пытаюсь создать спам-фильтр, но теперь я не могу это сделать.

Я хотел бы создать функцию, которая показывает мне вероятность того, что определенное слово является спамом или нет.

таблица из моего фрейма данных

Это моя функция:

def P_E_S(word):
if word in train_set.columns:
    tot_word = train_set.word.sum()
    tot_word_spam = train_set.word[(train_set.type == 'spam')].sum()

    P_word_spam = tot_word_spam / tot_word 
    return P_word_spam
else:
    return 1

проблема в том, что я не могу получить доступ к именам столбцов таким образом с слово в строках 3 и 4.

Если я выполняю такую ​​функцию:

def P_E_S(word):
if word in train_set.columns:
    tot_word = train_set.make.sum()
    tot_word_spam = train_set.make[(train_set.type == 'spam')].sum()

    P_word_spam = tot_word_spam / tot_word 
    return P_word_spam
else:
    return 1

Она отлично работает, но мне нужно изменить слово make в строках 3 и 4.

Может кто-нибудь поможет? Большое вам спасибо.

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Можете ли вы использовать [] для доступа к нему, как показано ниже:

tot_word = train_set[word].sum()
1 голос
/ 09 апреля 2020

Примечание: train_set.word подразумевает, что существует столбец с именем word в train_set, но фактически он не содержит ни одного столбца с именем word.

Заменить:

train_set.word

С:

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