0

我有一个想应用于我的 SQl 查询的函数。我正在使用 SQL Server。

我想不出一个好的方法来做到这一点。基本上我希望能够检查 COPY 列以查看它是否是西班牙语我想像这样

选择 * from INFO where isForeign(Copy)

这是功能:

Function IsForeign(theString)
   Dim strAlphaNumeric
   Dim strChar
   Dim Found
   Dim i

   strAlphaNumeric = "àáâèéçêóô"                                                                   ' French, Spanish
   strAlphaNumeric = strAlphaNumeric & "ÀÈÉÒÓÙàèéòóù"                   ' Italian

   strChar = ""
   Found = False

   ' Characters
   For i = 1 to Len(theString)
          strChar = Mid(theString, i, 1)
          If Instr(strAlphaNumeric, strChar) Then
                 Found = True
          End If
   Next


   IsForeign = Found

结束功能

4

1 回答 1

0

此函数的复杂性取决于输入数据。

如果输入数据是英语或西班牙语,那么使用常见西班牙语单词和非标准英语字符的子集可能会提供很高的置信度。

但是,如果输入数据可以是其他语言,葡萄牙语、意大利语、法语等,那么这将提供低准确度。在这种情况下,也许对数据集中的所有单词进行字典检查会产生更好的结果。当然,对于该方法,您必须检查整个字符串的所有可接受的语言,因此效率很低。

也许某种贝叶斯分析或预测分析会提供结果。

当然,在本网站范围内可能无法达到 100% 的准确性。

于 2013-10-17T18:58:10.803 回答