我正在尝试找到一种方法来使用认知服务来检测字符串是否包含一段连贯的文本或者只是垃圾。例如:
SDF#%#ASFSDS b
VS
我的名字是Sam。
这似乎无法做到。我想通过关键字文本分析运行文本(这会给我一个关键字ASDSDS(多么有用!))然后通过Bing拼写检查运行该关键字。我不确定在美国发生了什么,但似乎ASFSDS是英语。真的很......呃......笨蛋。
我尝试通过一系列服务(如语言检测)运行类似的文本,他们似乎都相信我的胡言乱语的样本是100%连贯的英语。
我将在周五向MS代表进行测试,但我想知道是否有人使用认知服务取得了类似的成绩?
答案 0 :(得分:1)
而不是二元 is-word-or-not 问题,你可能会考虑的是一个词是乱码的概率。然后,您可以选择自己喜欢的阈值。
对于计算单词probalities,您可以尝试使用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
}
]
}
您会注意到一些特质:
sam.
vs sam
)高级用例是计算条件概率,即单词在其前面的单词上下文中的概率。