Описание товаров
Интернет-магазины и каталоги, помимо цен на товары, содержат обычно описания этих товаров. Описания, как правило, говорят по-разному об одном и том же — каждая категория товаров имеют свой набор свойств, значения этих свойств и являются предметом описаний. Стиль же описаний может быть любым.
Рассмотрим описание цифрового фотоаппарата Olympus C2500. Описание в текстовом стиле:
имеет формат носителей: SmartMedia 3.3v и CompactFlash, формат данных: изображения — JPEG(DCF), TIFF(без сжатия), разрешение 2,5 миллиона точек, отличный объектив с переменным фокусным расстоянием OLYMPUS 9.2 — 28 мм, F2.8 — F3.9, 7 элементов в 7 группах (эквивалентно объективу 36 — 110 мм 35 мм камеры). Также есть функция увеличения ( оптическое — до 3х, цифровое — до 2,5х),видоискатель( оптический зеркальный) и ЖК-дисплей ( 4,5 см цветной TFT-дисплей (HAST) с 122 тыс. точек ) и встроенная вспышка ( 4 режима работы)
Описание того же товара в табличном полуструктурированном стиле:
Тип аппарата: |
Цифровой зеркальный фотоаппарат |
Формат носителей (карточки): |
CompactFlash, SmartMedia 3.3v |
Формат данных: изображение: |
JPEG(DCF), TIFF(без сжатия) |
Разрешение (ПЗС): |
2,5 млн. pxl. (ПЗС — 2/3») |
Объектив: |
OLYMPUS 9.2 — 28 мм, F2.8 — F3.9, 7 элементов в 7 группах (эквивалент объектива 36 — 110 мм 35-и мм камеры) |
Увеличение: |
оптическое до 3х, цифровое до 2,5х |
Видоискатель: |
оптический (зеркальный) и ЖК-дисплей |
ЖК-дисплей: |
4,5 см цветной TFT-дисплей (HAST) — 122 тыс. pxl. |
Вспышка: |
встроенная, 4 режима работы, возможно подключение внешней FL-40 |
Пульт ДУ: |
да (на все режимы) |
Последовательная съемка: |
до 5 кадр. |
Размеры: |
109,5х80,5х129 мм. |
Вес: |
490 гр. |
Как видно из этих двух примеров (а они взяты из одного и того же электронного магазина), описание товара даже в табличном виде очень слабо структурировано.
Часто характеристики товара заданы в список (описание карманного компьютера Jornada 568):
- Операционная система: Microsoft Pocket PC 2002 (Windows CE 3.0)
- Процессор: 32-разрядный процессор Intel StrongArm SA-1110 206 MГц, системная шина 51 МГц, шина памяти 103 MГц.
- Дисплей: экран (диагональ 3,5″) цветной рефлективный TFT, 65,536 цветов, разрешение 320 x 240, подсветка
- Память: 32/64 Мб ОЗУ + 32 Мб flash-ПЗУ (8 Мб flash-ПЗУ для пользователя)
- Слоты расширения: 1 х CompactFlash Type I
- Порты: USB, Инфракрасный (IrDA)
- Звук: Динамик и микрофон, гнездо для стереонаушников
- Питание: Li-Polymer съемный аккумулятор (12-14 часов непрерывной работы), резервная литиевая батарея, адаптер переменного тока
- Вес: 173 г
- Размер: 13,2 х 7,65 х 1,72 см
Представим, что мы создаем сервис поиска описаний товаров, их сравнения, верификации и занесения в базу данных. Результатом работы сервиса будут сильно нормализованные данные хорошего качества структурирования и наполнения, т.е. база данных. Рассмотрим применимость Alex’a для этой задачи.
Описание товара, вне зависимости от стиля оформления (текст, таблица, список), понимается человеком в силу того, что
а) он знает, что означает каждый параметр (или хотя бы может догадаться, к чему он относится)
б) может соотнести название свойства с его значением:
- формат носителей: SmartMedia 3.3v и CompactFlash
- разрешение 2,5 миллиона точек
- функция увеличения ( оптическое — до 3х, цифровое — до 2,5х)
- ЖК-дисплей ( 4,5 см цветной TFT-дисплей (HAST) с 122 тыс. точек )
и т.д.
Рассмотрим, как будет устроен банк шаблонов, который бы применял те же принципы. Прежде всего, отразим тот факт, что свойства шаблонов контактируют с их значениями, либо сами значения говорят о том, какие свойства описывают:
[Свойство] = |
| |
|
[Название свойства] [Значение свойства]
| |
По данному принципу введем подобный шаблон для каждого свойства товара, например:
[СвРазрешение] =
|
| |
|
[НазвРазрешение] [Разделитель] [число] [Пиксел]
| |
где шаблон [Пиксел] определим так:
[Пиксел] = |
| |
|
точ..
pxl
пиксел..
пкс
| |
Голубым цветом выделена та часть шаблона, которая пойдет в значение свойства. Это позволяет Алексу нормализовывать и структурировать текстовую информацию. Выделенный шаблон [число] — это то, что нужно «выжать» из этого фрагмента текста, т.е. числовое значение разрешения фотоаппарата, с тем чтобы затем, например, занести это в некоторое поле БД.
Шаблон [НазвРазрешение] (название свойства Разрешение) будет выглядеть так:
[НазвРазрешение] =
|
| |
|
разрешени.. ((ПЗС))
| |
Аналогично делаем для остальных свойств. Теперь нам надо составить шаблон всего описания товара. Однако свойства могут располагаться в любом порядке, и перечислить все возможные перестановки не представляется возможным. В этом случае можно воспользоваться возможностью создания классов шаблонов. Шаблон в Alex’е может относиться к некоторому классу. Введем класс СВОЙСТВО, назначим этому классу все шаблоны, относящиеся к описанию свойств.
Введем шаблон описания свойства товара, который бы учитывал возможный левый и правый произвольный опциональный контекст:
[СвойствоСКонтекстом] =
|
| |
|
(.) [СВОЙСТВО] (.)
| |
Наконец, введем шаблон списка свойств:
[СписокСвойств] =
|
| |
|
[СвойствоСКонтекстом]=
| |
Знак = здесь обозначает возможное повторение шаблона СвойствоСКонтекстом произвольное количество раз.
В результате все перечисленные выше способы задания свойств товаров (текст, список, таблица) будут обрабатываться одним и тем же банком шаблонов.