如何使用机器学习中的数据检测英语单词

时间:2018-10-21 06:05:43

标签: python tensorflow machine-learning

我有包含英文短信的数据。

我想检测“用英文字母书写”但不是英文单词的邮件。 (例如,基于代码的规则,但我不想对规则进行硬编码)。

请注意,所使用的计算机没有有效的互联网连接(因此我无法检查在线词典)

示例数据

  1. “你好,你好吗”
  2. “ fjrio kjfdelf ejfe” <-代码(假设是西班牙语的意思是“你好吗”)
  3. “我很好,谢谢”
  4. “十人”
  5. “ jfrojf feoif” <-代码(假设它在日语中表示“ hello world”)

我是机器学习的新手,所以据我了解,也许一种方法可以 正在使用nlp?

1 个答案:

答案 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)