Apache Flink - SVM 的推文向量化

Apache Flink - Tweet Vectorization for SVM

我目前正在使用在 Scala 中编程的 Apache Flink 的 FlinkML 开发仇恨言论过滤器。

我有一个巨大的 .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 不包含用于将推文转换为 SVM.fit() 函数可读的 LibSVM 文件的 Vectorizer。

你们知道我如何使用 "class" 列作为标签并使用 "tweet" 列作为特征向量来转换上述数据来训练我的 SVM 吗?

非常感谢任何帮助。正在搜索小时数。

我猜你的问题(还)不是 Flink 问题。 Flink是一个流处理引擎(批处理也是可以的,但是流处理是flink的独特卖点)。您可以在无界流中定义有状态计算。 如何 由您决定。您需要解决的首要问题之一是:如何将我的文本表示为可用作 SVM 聚类输入的向量。 TF/IDF 可能是一个很好的起点。实现随处可见:HaifenGL/SMLE or Deeplearning4j 是一些流行的示例。

还请记住,如果您处理的文档非常短(如果我猜对了,则为 Twitter 推文)。你应该考虑保留尽可能多的标记(单词)——这会增加你的词汇量——这会增加你的向量的维度(如果你坚持使用某种类似词袋的模型)——这会迫使你获得更多的训练数据。

在解决了所有这些 ML 相关问题之后,您可以想到如何将其集成到 flink 中。