我目前正在使用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不包含矢量化程序,无法将Tweet转换为SVM.fit()函数可读的LibSVM文件。
你们是否知道我如何使用“类”列作为标签并使用“ tweet”列作为特征向量来训练我的SVM来转换上面的数据?
非常感谢您的帮助。搜索小时。
我猜您的问题还不是Flink问题。 Flink是一个流处理引擎(也可以进行批处理,但是流处理是flink的独特卖点)。您可以在无限制的流中定义状态计算。 How您的操作取决于您。您需要解决的第一个问题是:如何将文本表示为矢量,可以用作SVM群集的输入。 TF / IDF可能是一个很好的起点。可以在各处找到实现:HaifenGL/SMLE或Deeplearning4j是一些受欢迎的示例。
[还请记住,如果您处理的文档很短(如果我答对了,请发送推文)。您应该考虑保留尽可能多的记号(单词)-这将增加词汇量-这将增加向量的维数(如果您坚持使用类似词袋之类的模型)-将迫使您获得更多的训练数据。
解决了所有与ML相关的问题之后,您可以想到如何将其集成到flink中。