我目前正在使用Apache Flink的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 不包含一个矢量化器来将推文转换为 SVM.fit(( 函数可读的 LibSVM 文件。
你们知道我如何使用"类"列作为标签和"推文"列作为特征向量来转换上面的数据来训练我的 SVM 吗?
我真的很感激任何帮助。搜索数小时。
我想你的问题(还(不是 Flink 问题。Flink 是一个流处理引擎(批处理也是可能的,但流处理是 flink 的独特卖点(。您可以在无界流中定义有状态计算。你如何做到这一点取决于你。您需要解决的第一个问题是:如何将我的文本表示为可用作 SVM 聚类输入的向量。TF/IDF 可能是一个很好的起点。实现随处可见:HaifenGL/SMLE或Deeplearning4j是一些流行的例子。
还请记住,如果您处理非常短的文档(如果我猜对了,则为推特推文(。你应该考虑保留尽可能多的标记(单词( - 这将增加你的词汇量的大小 - 这将增加你的向量的维度(如果你坚持使用某种类似词袋的模型( - 这将迫使你获得更多的训练数据。
在解决了所有这些与 ML 相关的问题之后,您可以想到如何将其集成到 flink 中。