我有包含英文短信的数据。
我想检测“用英文字母书写”但不是英文单词的邮件。 (例如,基于代码的规则,但我不想对规则进行硬编码)。
请注意,所使用的计算机没有有效的互联网连接(因此我无法检查在线词典)。
示例数据
我是机器学习的新手,所以据我了解,也许一种方法可以 正在使用nlp?
答案 0 :(得分:1)
字符频率扫描是执行此操作的一种方法。
例如,对于每种语言,获取字符频率列表, 答:3% B:1% C:0.5% D:0.7% E:4% 等。
然后根据您的静态映射评估字符串的字符频率。您可以获取字符串是您的一种语言的可能性的概率模型。
当然,这对于较长的字符串最有效,因为它有足够的统计数据来捕获真实的频率。您还需要在目标来源的样本上训练频率,例如英文推文与莎士比亚作品的字母频率可能不同。
另一种选择是找到一种语言中最可能出现的n-gram,例如,“ we”是英语中常见的2-gram。如果您在代码中扫描这些最有可能的n-gram出现的频率,则通常可以检测到某种东西是否是特定语言的。
我敢肯定,还有其他想法或分类器的组合,但这为您提供了一个起点。也不要低估一组分类器的功能。例如,假设您想出了3种不同且互不相关的不同模型,并说每种模型都能正确地检测英语(4分之3)(75%)。如果您随后以相等的加权投票使用了所有3个模型,那么如果将3个模型中的3个或3个模型中的2个投票为英语,则您的错误从4(85%)(= 0.75 ^ 3 + 3 * 0.75 ^ 2 * 0.25)