Я планирую применить dspam для кассификации сообщений приходящих в службу поддержки
скажите насколько сложно это сделать с dspam?
думается сделать для каждой категории псевдо-юзера (чтобы настраивать для него фильтр), а потом входящее прогонять для каждого, чтобы
выявить наибольший коэффициент попадания...
ну это пока мысли, в правильном ли направлении я рассуждаю?
а что будет если учить только "хорошему" dspam? т.е. думаю если я возьму уже существующую базу сообщений, где уже известна категория и
натренирую dspam с соотв. псевдо-юзером
типа
Код: Выделить всё
./dspam --user mailtroubles --class=spam --process < message
PS: много чего наговорил, но надеюсь общий смысл понятен
---------------- немного подумал и дополнил ----------------
предположим я имею 3 катерогии вопросов: sport, culture, books
и допустим 100 сообщений с уже известными категориями
что приходит в голову (очевидно, что это неффективно, но все же):
реализация обучения на псевдо-языке:
Код: Выделить всё
categories = {"sport", "culture", "books"};
foreach (msg in messages) {
./dspam --user msg.category --class=spam --source=corpus --process < msg.text
foreach (category in categories) {
if (category != msg.category) {
./dspam --user msg.category --class=innocent --source=corpus --process < msg.text
}
}
}
помеченным относится ли оно к данной категории (мы пометили его как spam)
или нет (тогда оно помечаетсяч innocent)
мне кажется что тут большая избыточность...
а определения категории для нового сообщения
Код: Выделить всё
msg = new (....)
...
max_category = ""
max_probability = -1
foreach (caterory in categotied) {
get probability from `./dspam --user category --classify < msg.text`
if (probability > max_probability || max_probability == -1) {
max_probability = probability
max_category = category
}
}
поделитесь мыслями, please