From sitkarev на komitex.ru Mon Mar 18 06:04:25 2013 From: sitkarev на komitex.ru (Grigoriy A. Sitkarev) Date: Mon, 18 Mar 2013 06:04:25 +0400 Subject: [P&AM Lab] =?utf-8?b?0KHQuNC90YLQtdC3INC/0YDQtdC+0LHRgNCw0LfQvtCy?= =?utf-8?b?0LDQvdC40Lkg0L/QtdGA0YHQv9C10LrRgtC40LLRiw==?= Message-ID: <51467629.5090307@komitex.ru> Всех приветствую! Почему вы так быстро разбежались в субботу? Если ко мне кто-то пришёл, это не значит, что я вас брошу. Мы c Мишей собрались домой ближе к 21.00, и была возможность пообщаться, задать вопросы. Я вложил материал по субботней задаче, туда не помешало добавить ещё и иллюстрации поясняющие. Может кто-то возьмётся помочь мне с картинками? От Григория Моськина особо желаю услышать комментарии. Я свёл эту задачу к решению системы 2х2 в итоге. Это ещё не окончательный вариант, но мне кажется, что мне удалось упростить задачу для специального случая. Проверьте пожалуйста на наличие ошибок, опечаток и неясностей в тексте. Если материал получился более-менее вменяемый, мы его опубликуем на нашем сайте. Заранее благодарен. -- Г.А. ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: transform.pdf Type: application/pdf Size: 103676 bytes Desc: отсутствует URL: From lonely.ruyk на mail.ru Fri Mar 22 20:35:10 2013 From: lonely.ruyk на mail.ru (lonely.ruyk) Date: Fri, 22 Mar 2013 20:35:10 +0400 Subject: [P&AM Lab] =?utf-8?b?0J/QsNGA0YHQuNC90LMg0YHRgtGA0L7Qui4=?= Message-ID: <20130322203510.70f2e98f@Lonely-1015.local> Привет всем из списка рассылки. Столкнулся с небольшой проблемкой, надеюсь кто-нибудь помогёт советом или линком. В общем у меня есть задание: нужно написать парсер который каждую введённую строку (состоящую из названий городов, населённых пунктов, стран) должен распарсить на элементы которые уже потом как-то обрабатываться будут (в моём случае будут запихиваться в бд но это наверное не важно). Приведу простой пример. Строка: г.Гусь-Хрустальный Владимирская обл. должна распарситься на 1) г.Гусь-Хрустальный 2) владимирская область Подводные камни: 1) Строки могут состоять из произвольного кол-ва элементов (т.е. может быть только название города и страны, а может быть 3 - 4 элемента, например посёлок - автономный округ - страна) 2) Порядок не задан. Т.е. могут встречаться строки где элементы перечислены от большего к меньшему или от меньшего к большему 3) могут быть названия из 2 и более слов (пример: Нижнее Ивкино, ненецкий автономный округ) 4) разграничителем записей может был как пробел так и запятые 5) строк порядка 58к Посылаю пример прототипа на питоне. Чего он делает: 1)строка нормализуется (добавляются пробелы в некоторых местах, убираются запятые и прочие лишние символы) и разбивается на список слов 2) каждое слово сравнивается с набором префиксов (например г. с. Республика) и постфиксов((например район, край, ССР) если это префикс то в результирующий список заносится следующее слово, если суффикс то предыдущее 3) производится попытка соединить названия из 2-х слов (пытаюсь найти прилагательное и объединить его со следующим словом) Почему я пишу это длинное сообщение (надеюсь хоть кто-то до этого момента дочитал): алгоритм обрабатывает не все случаи и я не уверен что я делаю всё оптимально и хотелось бы услышать чьё то мнение по коду и идеям пока всё не зашло слишком далеко). Мои вопросы: 1) есть ли более простые способы? 2) может что то стоит изменить/добавить? Во вложении исходник и первые 1000 строк данных) небольшое пояснение по использованию скрипта. на stdin кормятся данные, на stdout выводится список, элементы которого разделены последовательностью "=>". В скобках указан номер типа территории (определяю по префиксам, постфиксам) тип номер поселение 1 район 2 провинция 3 страна 4 Пример: Познанка-1 (1) =>Любашевский район (2) =>Одесская область (3) => Вместо PS: Извините за кривоту кода(только прототип + его нужно будет переписать под другой ЯП поэтому всё немножко не оптимально написано) и многословность. Вместо PPS: Может кто-то имел дело со всякими PL/SQL. Отзовись, добрый человек, нужно задать пару вопросов:). Вместо PPPS: Отдельное спасибо всем дочитавшим. ----------- следущая часть ----------- An embedded and charset-unspecified text was scrubbed... Name: data.txt URL: ----------- следущая часть ----------- A non-text attachment was scrubbed... Name: split.py Type: text/x-python Size: 6861 bytes Desc: отсутствует URL: From sitkarev на komitex.ru Fri Mar 22 21:43:14 2013 From: sitkarev на komitex.ru (Grigory A. Sitkarev) Date: Fri, 22 Mar 2013 21:43:14 +0400 Subject: [P&AM Lab] =?utf-8?b?0J/QsNGA0YHQuNC90LMg0YHRgtGA0L7Qui4=?= Message-ID: <2psetcsw4q35wffvqige22to.1363974194091@email.android.com> Всем здоровья! Борис, у меня в субботу будет кое-что сказать тебе. Но до этого я хочу, чтобы вы реанимировали из своих схронов и тайников введение в нечеткую логику, которую я для вас всех когда-то делал. Если она потерялась, то заберите ее из раздела ?Статьи? нашего сайта. Не зря же Артем его усыновил? Твоя задача решаема, я думаю, с весьма высокой вероятностью. Твой подход слишком жесткий, надо его несколько ?затуманить?. Вот этим тебе и предстоит заняться. Прошу прощения за лаконичность ответа, я только с самолета и отвечаю с мобильного. -- Г.А. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: