powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / как определить схожесть строк?
9 сообщений из 9, страница 1 из 1
как определить схожесть строк?
    #38841081
tramadol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно получать с API нескольких букмекерских кантор коэффициенты по ставкам на футбольные события и записывать их в базу.
в связи с тем что API у каждой кантор возвращает несколько разные названия событий, то нужно их как то распознать и свести так сказать к единому знаменателю, чтобы коэффициенты по одному событию с разных кантор попадали в одну и ту же строку в таблице.

примеры названий событий с разных кантор:

бк1: Chelsea v West Ham
бк2: Chelsea West Ham United
бк3: Chelsea vs West Ham

бк1: West Brom v Man City
бк2: W.B.A Manchester City
бк3: West Brom vs Man City
...
Рейтинг: 0 / 0
как определить схожесть строк?
    #38841194
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку каждая футбольная команда имеет несколько вариантов записи
то надо их как-то привести к каноническому названию в единой (данной)
разрабатываемой системе.

Например:

Код: java
1.
2.
3.
4.
5.
6.
West Ham => "WHU"
West Ham United => "WHU"
Chelsea => "CHE"
West Brom => "WBA"
W.B.A =>"WBA"
Man City => "MCT"



Какой аппарат здесь использовать (регулярки, строковые замены, генераторы парсеров) - неважно.
Важно что правила таки придётся записать "вручную".

Ключевое слово VS/V/Versus после выполнения данного преобразования уже не имеет значения.
Если строка содержит "WHU vs WBA" то и так очевидно что есть полная информация о ставке.
...
Рейтинг: 0 / 0
как определить схожесть строк?
    #38841278
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
как определить схожесть строк?
    #38841342
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicztramadol,

http://en.wikipedia.org/wiki/Levenshtein_distance
+1

Но добавлю что для W.B.A и West Brom расстояние Левешнтейна
будет слишком велико чтобы считать их похожими. Лучше
здесь сделать исключение и позаменять аббревиатуры на
развёрнутый текст.
...
Рейтинг: 0 / 0
как определить схожесть строк?
    #38841365
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Ну, понятно, что чистый алгоритм тут не подходит. Но как помощь в данном случае самое то. Надо выделить правила вычисления, реализовать их. А Левенштейн поможет с опечатками и другими мелочами.
...
Рейтинг: 0 / 0
как определить схожесть строк?
    #38841392
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tramadol,

свой словарь для каждой конторы (хардкод всех названий ) + проверка на то изменила ли контора название .
...
Рейтинг: 0 / 0
как определить схожесть строк?
    #38841592
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1, похоже в данной задаче мы имеем дело с "грязными" данными типа заявок на ставку.
А в них может вообще не быть ключей и справочников.
...
Рейтинг: 0 / 0
как определить схожесть строк?
    #38841772
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если будут сокращения вида WBU <--> WBW
Как какой нибудь Левенштейн поможет поборотся с опечатками? Это опечатка или нет?

Лучше уж система откажется не способной сделать совмещение, чем из-за продвинутого алгоритма "опечаток" примет не верные ставки. Кто возмещать ущерб будет, когда клиент откажется ставку оплачивать (или бабло потребует), а окажется, что опечатка такой не является?

IMHO & AFAIK
...
Рейтинг: 0 / 0
как определить схожесть строк?
    #38841777
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю что данную задачу лучше решать в оперативном режиме.
Добавляя в свой справочник замен новые цепочки. Дамерау-Левенштейн
это конешно общее и концептуальное решение но с аббревиатурами
действительно выйдет пролёт.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / как определить схожесть строк?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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