[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите придумать логическое решение
art_zebra
Нужно пропарсить разные xml и записать данные в базу.
данные - это названия спортивных матчей и коэффициенты к ним. нужно отследить какая лента какие коэф-ты предлагает на матчи.
проблема в том, что разные ленты пишут названия команд по-разному.
например:
CSKA
CSKA Moscow
CSKA MSK
FC CSKA Moscow

Borussia Monchengladbach
Borussia M'gladbach

Таких названий очень много, поэтому привести к общему формату с помощью например str_replace не вариант. Нужно какое-то решение для автоматизированной проверки всех названий.

Есть идея создать таблицу в базе как справочник всех названий всех команд, которые только могут встречаться. но это самоубийство.

Уточняю, речь идет не о самом парсинге xml, а о том, как добиться того, чтобы разные варианты названия одной команды распознавались и записывались правильно.

Может кто имел дело с парсингом xml для букмекерской конторы.
Подскажите плиз как у вас это реализовано. Сасибо.
kaww
Можно посмотреть в сторону https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%...%B9%D0%BD%D0%B0 , есть много реализаций на различных языках, в том числе и php. Но, по-моему, самый правильный вариант - это составление словаря, т.к. какой алгоритм вы бы не выбрали, потребуется ручная проверка.
sergeiss
Цитата (art_zebra @ 5.10.2014 - 14:26)
Есть идея создать таблицу в базе как справочник всех названий всех команд, которые только могут встречаться. но это самоубийство.

Почему "самоубийство"? Ежели "таких названий очень много", то какие еще могут быть варианты, кроме как создать справочник? При правильно организованных таблицах и правильных запросах поиск будет быстрый.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
art_zebra
да, но эти справочники надо самому вручную делать. а как, если например футбольных команд сотни а то и тысячи. и искать все варианты по каждой из них - это реально самоубийство. да и времени нет на все это. а что и как делать не знаю.
GET
Цитата
да, но эти справочники надо самому вручную делать. а как, если например футбольных команд сотни а то и тысячи. и искать все варианты по каждой из них - это реально самоубийство. да и времени нет на все это. а что и как делать не знаю.



не надо их искать...создать 2 таблицы вида:

В 1 таблице good_clubs одобренные имена
id/club
1/CSKA Moscow
2/Dinamo Moscow
3/CSKA Saratov


Во 2 таблице all_clubs, все когда либо существующие и поступившие:

id/id_club/name
1/1/CSKA Moscow//1-одобрены админом
2/1/FC CSKA Moscow//1-одобрены админом
56/2/Dinamo Moscow//2-одобрены админом
78/3/CSKA Saratov//3-одобрены админом
80/0/CSKA MSK//0-ждёт одобрения


Т.е. при поступлении клуба:
1. Ищет себя в таблице all_clubs если находит, проверяет id_club - если отличен от 0, значит известен и есть инфа о его правильном названии в good_clubs (например, FC CSKA Moscow) если 0, то такое название еще не проверялось, но уже было и ждет проверки админом. Если строки нет вообще, вставляем ее со статусом 0, опять же кандидат на проверку.

Таким образом нужно будет только время от времени смотреть на таблицу all_clubs и проверять/проставлять id_club.

Если сделать удобную админку, где на месте вновь вставленного клуба (со статусом 0) будет появлятся селект с именами из good_clubs эта работа будет быстрой и удобной, словарь будет расти постепенно , особо не напрягая и по мере надобности.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.