Apache Flink - Tweet Векторизация для SVM - PullRequest
1 голос
/ 18 октября 2019

В настоящее время я работаю над фильтром ненависти с использованием Apink Flink's FlinkML, запрограммированного в Scala.

У меня огромный обучающий набор данных .csv, содержащий такие строки, как:

id,count,hate_speech,offensive_language,neither,class,tweet

326,3,0,1,2,2,"""@complex_uk: Ashley Young has tried to deny that bird s*** landed in his mouth ---> http:**** https:****"" hahaha"

Моя проблема, что Flink не включает векторизатор для преобразования твитов в файл LibSVM, читаемый для функции SVM.fit ().

Ребята, вы не представляете, как я могу преобразовать данные выше, используя "класс" -column как метка и «tweet» -колонка как вектор признаков для обучения моего SVM?

Я действительно ценю любую помощь. Поиск по часам.

1 Ответ

0 голосов
/ 20 октября 2019

Полагаю, ваша проблема не является (пока) проблемой Флинка. Flink - это механизм потоковой обработки (пакетная обработка также возможна, но потоковая обработка является уникальным преимуществом для flink). Вы можете определять вычисления с состоянием в неограниченном потоке. Как вы делаете это на ваше усмотрение. Одна из первых проблем, которую вам нужно решить: как мне представить мой текст как вектор, который можно использовать в качестве входных данных для кластеризации SVM. TF / IDF может быть хорошей отправной точкой. Реализации можно найти повсюду: HaifenGL / SMLE или Deeplearning4j - некоторые популярные примеры.

Пожалуйста, также имейте в виду, что если вы имеете дело с очень короткими документами(Твиттер, если я правильно понял). Вы должны сохранить как можно больше токенов (слов) - это увеличит размер вашего словарного запаса - что увеличит размеры ваших векторов (если вы придерживаетесь какой-то модели, подобной сумке слов), котораязаставит вас получить больше данных обучения.

После решения всех этих проблем, связанных с ML, вы можете подумать, как мне интегрировать это в Flink.

...