无论如何,是否可以使用认知服务来检测字符串是否包含单词而不是垃圾移位 chars/gibberish?

Is there anyway to use cognitive services to detect if a string contains words vs just junk shift chars/gibberish?

我正在尝试寻找一种方法来使用认知服务来检测字符串是否包含一段连贯的文本或者只是垃圾。示例:

SDF#%# ASFSDS b

Hi my name is Sam.

这似乎是不可能的。我的想法是通过关键字文本分析 运行 宁文本(这会给我一个 ASDSDS 的关键字(多么有用!)),然后 运行 通过 Bing 拼写的关键字查看。我不确定美国发生了什么,但 ASFSDS 似乎是英语。真的很...呃..笨.

我已经尝试 运行通过一系列服务(如语言检测)收集类似的文本,他们似乎都相信我的乱码样本是 100% 连贯的英语。

我打算在周五就此问题对 MS 代表进行测验,但我想知道是否有人使用认知服务取得了类似的成就?

而不是二元的是词还是非词问题,您可能会考虑的是一个词是乱码的概率。然后您可以选择您喜欢的阈值。

要计算单词概率,您可以尝试 Web 语言模型 API。例如,您可以查看联合概率。对于您的词组,响应如下所示(body 语料库的值):

{
  "results": [
    {
      "words": "sdf#%#",
      "probability": -12.215
    },
    {
      "words": "asfsds",
      "probability": -12.215
    },
    {
      "words": "b",
      "probability": -3.127
    },
    {
      "words": "hi",
      "probability": -3.905
    },
    {
      "words": "my",
      "probability": -2.528
    },
    {
      "words": "name",
      "probability": -3.128
    },
    {
      "words": "is",
      "probability": -2.201
    },
    {
      "words": "sam.",
      "probability": -12.215
    },
    {
      "words": "sam",
      "probability": -4.431
    }
  ]
}

您会注意到一些特质:

  1. 概率为负。这是因为它们是对数的。
  2. 所有术语都是大小写折叠的。这意味着语料库不会 区分 GOAT 和山羊。
  3. 来电者必须执行 一定数量的归一化本身(注意概率 sam. 对比 sam)
  4. 语料库仅适用于 en-us 市场。这可能有问题 取决于您的用例。

一个高级用例是计算条件概率,即一个词在它前面的词上下文中的概率。