我有包含英文短信的数据。
我想检测那些“用英文字母写的”但不是英文单词的信息。(例如,使用基于代码的规则,但我不想硬编码这些规则)。
请注意,正在使用的计算机没有活动的互联网连接(因此我不能检查在线字典)。
示例数据
我是机器学习的新手,所以据我所知,可能有一种方法是使用nlp?
发布于 2018-10-21 06:51:13
字符频率扫描是这样做的一种方法。
例如,每种语言都会得到一个字符频率列表,A: 3% B: 1% C: 0.5% D: 0.7% E: 4%等等。
然后根据静态映射计算字符串的字符频率。您可以获得字符串可能是您的语言之一的概率模型。
当然,如果有足够的统计数据来捕获真正的频率,这对于更长的字符串来说是最有效的。你还需要在你的目标来源的样本上训练你的频率,例如英语推文可能与莎士比亚的作品有不同的字母频率。
另一种选择是在一种语言中找到最有可能的n克,例如,“we”在英语中是一种常见的2克。如果你扫描你的代码,看看这些最有可能发生的n-克发生的频率,你通常可以检测到某一特定语言中是否有某种东西。
我相信也有其他的想法或分类器的组合,但这给你一个开始。也不要低估分类器集合的力量。例如,假设您想出了3种不同且互不相关的模型,并且假设每种模型都能正确地检测4种模式中的3次(75%)。如果您使用了所有3种模型,并进行了同样加权的表决,那么如果3/3或2/3投了英语,那么您的错误将从4 (85%)提高到大约3.4倍(=0.75^3 + 3*0.75^2*0.25)。
https://stackoverflow.com/questions/52912553
复制相似问题