Поиск данных, которые не являются английским текстом - PullRequest
0 голосов
/ 26 декабря 2018

в двух словах: мне нужно иметь возможность искать в базе данных Oracle внутри определенного столбца все вхождения, которые не являются текстом на английском языке или содержат такие знаки, как - ^ и т. Д.(с заглавной и без заглавной буквы все в порядке) В общем, я ищу, чтобы найти все вхождения на других языках, корейском испанском и т. д.1004 *

Ответы [ 3 ]

0 голосов
/ 26 декабря 2018

Найти неанглийские символы довольно просто.Решение @moudiz решит эту проблему .Но для определения того, написано ли тело текста на английском или другом языке, требуется некоторая форма возможностей AI / ML, которая не входит в стандартную комплектацию СУБД Oracle.

Одной из возможностей может быть Oracle Text.World Lexer имеет поддержку автоопределения для ряда языков.Возможно, будет возможность разобраться в том, есть ли фрагмент текста на английском языке. Узнайте больше .(Предостережение: голубое небо думает здесь, никогда не пробовал ничего подобного.)

Другим решением было бы создание пакета PL / SQL, который вызывает Google Translate API.detect() может идентифицировать язык пропущенного текста. Узнайте больше .

Существует несколько очевидных ошибок:

  1. Многие организации возражают против передачи текста из базы данных на внешний сайт, напримерGoogle.
  2. Если у вас есть много данных для проверки, лицензирование обойдется дорого.
0 голосов
/ 26 декабря 2018

благодаря @moudiz мне удалось найти идеальное решение для этого.Я использую:

select * from table 
where not  REGEXP_LIKE (field_name, '^[^0-9a-z]+$', 'i');
0 голосов
/ 26 декабря 2018
with test as
(
select 'hello good morning' txt from dual 
union select 'Bad weather' from dual
union select '测试 ' from dual
    union select 'L''Inhêrit ' from dual
    union select 'هلا' from dual
)
select *
from test
where txt != asciistr( txt )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...