|
|
|
как определить схожесть строк?
|
|||
|---|---|---|---|
|
#18+
нужно получать с 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2014, 20:38 |
|
||
|
как определить схожесть строк?
|
|||
|---|---|---|---|
|
#18+
Поскольку каждая футбольная команда имеет несколько вариантов записи то надо их как-то привести к каноническому названию в единой (данной) разрабатываемой системе. Например: Код: java 1. 2. 3. 4. 5. 6. Какой аппарат здесь использовать (регулярки, строковые замены, генераторы парсеров) - неважно. Важно что правила таки придётся записать "вручную". Ключевое слово VS/V/Versus после выполнения данного преобразования уже не имеет значения. Если строка содержит "WHU vs WBA" то и так очевидно что есть полная информация о ставке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 04:11 |
|
||
|
как определить схожесть строк?
|
|||
|---|---|---|---|
|
#18+
Blazkowicztramadol, http://en.wikipedia.org/wiki/Levenshtein_distance +1 Но добавлю что для W.B.A и West Brom расстояние Левешнтейна будет слишком велико чтобы считать их похожими. Лучше здесь сделать исключение и позаменять аббревиатуры на развёрнутый текст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 10:24 |
|
||
|
как определить схожесть строк?
|
|||
|---|---|---|---|
|
#18+
mayton, Ну, понятно, что чистый алгоритм тут не подходит. Но как помощь в данном случае самое то. Надо выделить правила вычисления, реализовать их. А Левенштейн поможет с опечатками и другими мелочами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 10:37 |
|
||
|
как определить схожесть строк?
|
|||
|---|---|---|---|
|
#18+
tramadol, свой словарь для каждой конторы (хардкод всех названий ) + проверка на то изменила ли контора название . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 10:52 |
|
||
|
как определить схожесть строк?
|
|||
|---|---|---|---|
|
#18+
Atum1, похоже в данной задаче мы имеем дело с "грязными" данными типа заявок на ставку. А в них может вообще не быть ключей и справочников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 12:51 |
|
||
|
как определить схожесть строк?
|
|||
|---|---|---|---|
|
#18+
А если будут сокращения вида WBU <--> WBW Как какой нибудь Левенштейн поможет поборотся с опечатками? Это опечатка или нет? Лучше уж система откажется не способной сделать совмещение, чем из-за продвинутого алгоритма "опечаток" примет не верные ставки. Кто возмещать ущерб будет, когда клиент откажется ставку оплачивать (или бабло потребует), а окажется, что опечатка такой не является? IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 15:23 |
|
||
|
как определить схожесть строк?
|
|||
|---|---|---|---|
|
#18+
Я думаю что данную задачу лучше решать в оперативном режиме. Добавляя в свой справочник замен новые цепочки. Дамерау-Левенштейн это конешно общее и концептуальное решение но с аббревиатурами действительно выйдет пролёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 15:26 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=146&tid=2126026]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 361ms |

| 0 / 0 |
