学习垃圾邮件发送者名称

use*_*001 3 string algorithm machine-learning similarity feature-engineering

目前,一些垃圾邮件浪潮,尤其是体育赛事发生时,正在泛滥互联网.

由于我强烈怀疑垃圾邮件发送者的用户名不是由计算机生成的,我认为以某种方式尝试以编程方式学习垃圾邮件发送者名称可能会很有趣.

用户名应介于2到15个字符之间,以字母开头,仅包含字母,数字_-.

名称的样本列表将是

riazsports0171
maya34444
thelmaeatons
tigran777
newlive100
darbeshbaba
litondina10
nithuhasan
newlive100
bankuali
lldztwydni554
monomala505
nasiruddin1500
lldztwydni554
ariful3032
nazmulhasan
Run Code Online (Sandbox Code Playgroud)

我只有相当基本的算法知识(来自大学).我的问题是,我可以使用哪种机器学习算法和/或字符串度量来预测仲裁用户名是否可能是垃圾邮件发送者.我想过使用cosine string similaritz,因为它相当简单.

ami*_*mit 6

有趣.但我认为字符串相似度算法不是最好的解决方案.

我尝试从名称中提取特征,并使用分类算法.与其他分类算法相比,SVM通常提供非常好的结果,但也有其他算法(例如:朴素贝叶斯,决策树,KNN)各有其优点和缺点.

棘手的部分是提取功能.你应该有创意.一些选项是:数字位数,连续字母数,连续辅音数,大写字母的使用,大写的正确用法,匹配某个正则表达式,...(您还可以使用非字符串中的其他功能,例如此用户向您发送的消息数量,....)

接下来,您需要创建一个训练集.此培训集将包含垃圾邮件发送者和非垃圾邮件发送者用户名,这些用户名被手动标记为垃圾邮件发送者或非垃圾邮件发送者.

将训练集提供给您选择的算法,它将创建一个分类器,您可以使用它来预测新用户是否是垃圾邮件发送者.

您可以通过对数据进行交叉验证评估每种算法的有效性.