Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / UTL_MATCH.EDIT_DISTANCE на кириллице / 6 сообщений из 6, страница 1 из 1
05.11.2020, 12:49
    #40015518
n1zk1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTL_MATCH.EDIT_DISTANCE на кириллице
Всем привет!
Почему UTL_MATCH.EDIT_DISTANCE для кириллицы работает по другому, и можно ли сделать так чтобы работал как для анг слов?
Пример:

SELECT UTL_MATCH.EDIT_DISTANCE('рука', 'моя рука') distance , 'ru' lt FROM DUAL
union
SELECT UTL_MATCH.EDIT_DISTANCE('dool', 'you dool') distance, 'en' lt FROM DUAL;

Для анг слов показывает 4, типа добавить "you ", я для рус слов 7, и не понимаю почему, хотя должна быть такая же логика как для анг слов, нет?
...
Рейтинг: 0 / 0
05.11.2020, 12:52
    #40015522
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTL_MATCH.EDIT_DISTANCE на кириллице
Юникодица?
...
Рейтинг: 0 / 0
05.11.2020, 13:16
    #40015529
n1zk1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTL_MATCH.EDIT_DISTANCE на кириллице
Вячеслав Любомудров,
не понял. Почему то каждая буква русского языка считается за 2. Это можно решить?
...
Рейтинг: 0 / 0
05.11.2020, 13:21
    #40015532
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTL_MATCH.EDIT_DISTANCE на кириллице
Думаю, вряд ли
Для юникода каждая "английская" буква занимает 1 байт, каждая национальная -- от 2
Хотя, это просто предположение
...
Рейтинг: 0 / 0
05.11.2020, 13:22
    #40015534
n1zk1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTL_MATCH.EDIT_DISTANCE на кириллице
Ок, спасибо за уделённое время!
...
Рейтинг: 0 / 0
05.11.2020, 13:58
    #40015544
Asmodeus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTL_MATCH.EDIT_DISTANCE на кириллице
n1zk1
Всем привет!
Почему UTL_MATCH.EDIT_DISTANCE для кириллицы работает по другому, и можно ли сделать так чтобы работал как для анг слов?
Пример:

SELECT UTL_MATCH.EDIT_DISTANCE('рука', 'моя рука') distance , 'ru' lt FROM DUAL
union
SELECT UTL_MATCH.EDIT_DISTANCE('dool', 'you dool') distance, 'en' lt FROM DUAL;

Для анг слов показывает 4, типа добавить "you ", я для рус слов 7, и не понимаю почему, хотя должна быть такая же логика как для анг слов, нет?

Как подтверждение версии Вячеслава:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
select value from v$nls_parameters
where parameter = 'NLS_CHARACTERSET';


SELECT UTL_MATCH.EDIT_DISTANCE('рука', 'моя рука') distance , 'ru' lt FROM DUAL
union
SELECT UTL_MATCH.EDIT_DISTANCE('dool', 'you dool') distance, 'en' lt FROM DUAL;



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
VALUE                                                           
----------------------------------------------------------------
CL8MSWIN1251

  DISTANCE LT
---------- --
         4 en
         4 ru



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
VALUE                                                           
----------------------------------------------------------------
AL32UTF8                                                        


      DIST LT
---------- --
         7 ru
         4 en
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / UTL_MATCH.EDIT_DISTANCE на кириллице / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]