How could I transfer what I've got to this format?
Вот как бы я это сделал. Я бы использовал скрипт, который вам нужен, чтобы вычислить количество слов для каждого письма в обучающем наборе. Затем используйте другой скрипт и перенесите эти данные в формат LIBSVM, который вы показали ранее. (Это может быть сделано разными способами, но было бы разумно писать с простым языком ввода / вывода, таким как Python). Я бы собрал все данные «good-mail» в один файл и обозначил бы этот класс как «1». , Затем я проделал бы тот же процесс с данными «spam-mail» и пометил бы этот класс «-1». Как сказал Нологин, LIBSVM требует, чтобы метка класса предшествовала признакам, но сами признаки могут быть любым числом, например , если они находятся в порядке возрастания , например. 2: 5 3: 6 5: 9 разрешено, но не 3:23 1: 3 7: 343.
Если вы обеспокоены тем, что ваши данные не в правильном формате, используйте их скрипт
checkdata.py
перед тренировкой, и он должен сообщать о любых возможных ошибках.
Если у вас есть два отдельных файла с данными в правильном формате, вы можете позвонить
cat file_good file_spam > file_training
и создайте обучающий файл, содержащий данные как о доброй, так и спамовой почте. Затем выполните тот же процесс с набором для тестирования. Одно психологическое преимущество при формировании данных таким образом состоит в том, что вы знаете, что 700 лучших (или 300) писем в обучающем (или тестируемом) наборе - это хорошие письма, а остальные - спам. Это облегчает создание других сценариев, которые вы, возможно, захотите воздействовать на данные, таких как код точности / возврата.
Если у вас есть другие вопросы, ответы на часто задаваемые вопросы по номеру http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html должны быть в состоянии ответить на несколько вопросов, а также на различные файлы README, поставляемые с установкой. (Мне лично показалось, что файлы README в каталогах «Инструменты» и «Python» очень полезны.) К сожалению, часто задаваемые вопросы не касаются того, что сказал Нологин, о данных, представленных в разреженном формате.
В заключение, я сомневаюсь, что вам нужно вести подсчет каждого возможного слова, которое может появиться в почте. Я бы порекомендовал подсчитывать только самые распространенные слова, которые вы подозреваете в спаме. Другие потенциальные функции включают общее количество слов, среднюю длину слова, среднюю длину предложения и другие возможные данные, которые, по вашему мнению, могут оказаться полезными.