понедельник, 4 июля 2011 г.

Re: Приведение двух разных строк к одному виду

Но ты же понимаешь, что всему есть предел. Ну, автоматическое распознавание слов сможет исправить «виво» на «пиво», но «пиво» на «хлеб» оно не исправит никак :)

--
Andrey Ognevsky

On Tuesday, July 5, 2011 at 12:31 AM, weiss --- wrote:

Это тестовое задание :-) Пробелы тоже могут отсутствовать. Про ВУЗ
точно подметили, но после 4х курсов я что-то слабо вспоминаю что-то,
что мне поможет) Хм, значит я был прав когда подумал, что для
тестового задания это круто. Напишу все-таки парсер, который будет
обрабатывать большинство случаев... На хабре было несколько статей про
вред излишнего перфекционизма, я с ними согласен в принципе.

5 июля 2011 г. 0:23 пользователь a.ognevsky <a.ognevsky@gmail.com> написал:
Ну я потому и написал про именно этот случай, хотя да, если это просто
тестовое задание — крутое, спору нет. Если попытка решить боевую задачу —
да, формочки это нудно и неудобно, иногда таки приходится писать парсеры,
предусматривать тысячи разных вариантов, но именно тут я таки влепил бы
формочку.
Опять-таки, зависит от того, боевая ли это задача или просто надуманная «а
ну-ка, сделай-ка вот так».
Ну и чтобы предложить хоть какой-то вариант. Тут много было разговоров о
высших образованиях, люди с образованием знают кучу умных слов с лекций, но
я их (увы) не помню, поэтому просто предложу первое, что пришло в голову:
сделать что-то вроде шаблонов. У вас ведь есть строка, она разбита
пробелами. Порядок нам, в принципе, известен.
А дальше вы разбиваете строку на 5 частей, каждый кусок анализируете своим
анализатором. В анализаторе с 6*40 у вас есть несколько шаблонов:
числоХРЕНЬчисло, как минимум.
Ну и таким образом вы таки по частям анализируете каждую часть, а потом
пишите в базу (или что там нужно делать).
Но опять-таки, если это задача ради задачи — здесь и проверяется знание
крутых умных вещей, которых я не знаю, допустим.
--
Andrey Ognevsky

On Tuesday, July 5, 2011 at 12:10 AM, Timothy N. Tsvetkov wrote:

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

2011/7/5 a.ognevsky <a.ognevsky@gmail.com>:

Я, конечно, не образцовый сотрудник, но таки так и решил бы тестовое
задание: сделать форму, чтобы пользователь не вводил всякую фигню. Ну а если
бы это не подошло -- вежливо попрощался бы, ибо писать килотонные (и
бесполезные) парсеры -- это как-то глупо в данной ситуации (имхо).
(но я не горжусь этим своим качеством)
--
Andrey Ognevsky

On Monday, July 4, 2011 at 8:51 PM, weiss --- wrote:

За ссылку спасибо, гем к сожалению бесполезен - нужно сделать на
отвратительном 1С...

4 июля 2011 г. 20:47 пользователь Саша А <elequtree@gmail.com> написал:

Вот гем: https://github.com/flori/amatch/tree/master

5 июля 2011 г. 0:45 пользователь Саша А <elequtree@gmail.com> написал:

Попробуйте посмотреть в сторону
http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance
Может мысли какие-нибудь появятся по смежным ссылкам.

4 июля 2011 г. 22:49 пользователь weiss --- <ecuezzo@gmail.com> написал:

Всем доброго времени суток! Всплыла задачка которую срочно надо решить
(не на ruby, но дело в принципе). Натолкните пожалуйста на
удовлетворительный алгоритм :-)
В одном филиале люди заносят название товара и его количество, к
примеру

No. Наименование �Количество
1 ДБМ "грибок" 6х40 ЦИЛИНДР 100 7

Похожая ситуация в другом отделении, но так как человеку свойственно
ошибаться, наименование может быть записано немного по другому,
например вот так:

No. Наименование Количество
3 ДБМ "грибок" 6*40 ЦИЛИНДР 100 2

БД не одна и та же, поэтому нужно все это дело сравнить и посчитать
общую сумму товара.
Какой может быть алгоритм, который даст минимум фейлов? Вырезать из
строчки все пробелы, знаки препинания, оставлять только буквы и цифры,
и потом сравнивать? Но если кто-то пишет 6х40 а кто-то 6*40, то это
не сработает. И ИИ еще не изобрели. Или я не туда смотрю, и все-таки
можно сделать так, чтобы конечный результат был на 100% валидным?

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
"RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы
http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
"RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы
http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
"RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы
http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
"RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы
http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
"RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы
http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
"RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы
http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий