Что нужно уметь верстальщику — журнал «Доктайп»
В нулевых никаких фронтов не было, и человек, который делает сайты, был просто человеком, который делает сайты. Мог и на HTML что-то собрать, и стили прописать, и на JavaScript алерты наставить, где нужно. Веб-разработка была маленькой, смешной, но самодостаточной. А потом понеслось.
Верстальщики стали больше писать на JavaScript и начали поглядывать в сторону именования «фронтендер», но всё ещё очень любили делать файлы style.css
на десять тысяч строк.
И чем ближе был 2020, тем больше грань размывалась — и теперь нет разработчиков на React, которые не понимают, как сверстать макет и обвязать всё стилями. При этом спрос на чистых верстальщиков ещё остался — им не обязательно в совершенстве владеть JavaScript, а вот глубоко понимать, как быстро, точно и качественно из макета сделать страницу — обязательно.
В этом и заключается суть работы верстальщиков. Они берут у дизайнеров макет (это картинка, на которой нарисован сайт — К. О.) и собирают из него страницу. Пишут HTML, CSS, используют магию гридов, флоатов, какой-нибудь БЭМ. Стараются, в общем, делают. Молодцы.
С другой стороны, HTML сейчас даже в некоторых школах изучают — но отчего-то сразу после школы никто не спешит платить первокурсникам по 500$ за вёрстку. И тут мы приходим к тому, что в 2020 году требуют от верстальщика работодатели.
Мы в HTML Academy работаем над тем, что верстальщики после двух наших интенсивов по вёрстке находили работу, а после интенсива по JavaScript делали это вообще без проблем. И для того, чтобы чему-то обучать, мы должны понять, что требуется рынку сейчас и какие требования выставляет работодатель к верстальщику, чтобы мы могли покрывать такие требования на курсах.
Идеальная вакансия
Коля Шабалин, автор и преподаватель курсов в Академии, написал скрипт и проанализировал вакансии на hh и Хабр-карьере, выделил требования и посчитал, какие встречаются чаще. Оказалось, что усреднённая вакансия выглядела бы как-то так:
Требуется верстальщик, который:
- Умеет делать адаптивную кроссбраузерную оптимизированную вёрстку, совместимую с современными браузерами. В вёрстке использует SVG.
- Идеально знает CSS. Использует препроцессор Sass. Знает флексы. Умеет делать CSS-анимации и использует БЭМ. Знает библиотеку Bootstrap.
- Знает HTML. В своей работе использует Сanvas. Шаблонизирует HTML с помощью PUG.
- Использует Git. Умеет работать в GitHub.
- Может натянуть вёрстку на CMS: Bitrix и Wordpress.
- JavaScript пишет с помощью jQuery, но не чурается ES6.
- Умеет автоматизировать свою работу с Node.js, npm-скрипты, Autoprefixer, Gulp или Webрасk.
- Уверенно владеет Photoshop и Illustrator или знает Figma или Sketch.
- Имеет своё портфолио, инициативный, готов пройти испытательный срок
Уроками информатики, как видите, даже не пахнет. Много непонятных слов, давайте разберёмся.
Верстальщический вундерлист
Умение использовать каждую вещь из этого списка немножечко повышает шансы верстальщика найти работу в 2020 году.
Кроссбраузерная вёрстка — это когда сайт во всех браузерах выглядит одинаково. Даже в IE11 (хотя это несколько сложно, учитывая одно из следующих требований).
- SVG — векторный формат изображений, при котором картинки не портятся, если их растянуть.
- Sass — это такая надстройка над CSS. Sass помогает избежать дублирования и структурировать код, в таком виде его легче поддерживать. Но с препроцессорами есть проблемы.
- БЭМ — изобретение Яндекса, чтобы упростить вёрстку и разбить всё на блоки.
- Canvas— сущность в HTML, на которой можно рисовать (люблю объяснять!).
- PUG — шаблонизатор HTML, написанный на JavaScript для Node.js. Нужен, чтобы шаблонизировать. Все же любят шаблоны.
- Git — система контроля версий, чтобы не делать
Макет_2_Финальный_СПравками_final_наревью.html
. Мы в Академии любим Git и написали про него много статей. - Натянуть вёрстку на CMS — взять WordPress или какой-нибудь там ещё движок для блога и сверстать страницу его встроенными средствами. Но по макету, чтобы дорого-богато.
- Bootstrap — ещё одна библиотека, чтобы быстро верстать. Её много где используют, но киллерфичей верстальщика может стать понимание, как сверстать «как на бутстрапе», но с нуля.
- jQuery — популярное
нечторешение, которое используют, чтобы поудобнее работать с JavaScript. Порог вхождения низкий, запутанность кода — высокая. Вообще, после хороших курсов по JavaScript никакой jQuery будет не нужен, но если он используется в компании, то разобраться будет легко. - Node.js, npm-скрипты, Autoprefixer, Gulp, Webpack — инструменты, чтобы экономить кучу времени при вёрстке за счёт автоматизации.
Что там с Фотошопом и Иллюстратором
Некоторые ребята говорят, что их всерьёз кто-то использует.
Практика показывает, что все потихоньку переходят на Figma, Sketch и Avocode. Ну то есть Фотошоп и Иллюстратор, конечно, ещё много где, но по сравнению с Фигмой это как заколачивать гвозди дорогущим перегруженным графическим редактором по подписке.
Ну и потом, вспомните Adobe Flash — все постепенно пересядут на нормальную технологию, никуда не денешься.
А портфолио откуда брать?
- Найти бесплатных макетов и наверстать.
- Придумать самому, если есть Дизайнерская Жилка.
- Пройти полноценную подготовку к работе и получить пару проектов в портфолио.
Что об этом всём думают в индустрии?
Я спросил Катю, которая раньше верстала в Яндекс.Деньгах, о том, что должен уметь верстальщик, чтобы его все хотели. Катя отвечает:
По опыту: нужно точно, быстро и адаптивно.
Точно — значит по макету: надо уметь открыть psd
и померить отступы. Быстро — значит код легко изменять и его можно переиспользовать: надо знать препроцессоры и уметь правильно разделить макеты на компоненты (приходит с опытом). Адаптивно то и значит: надо знать про медиа-запросы и уметь нафлексить флексами резиновую вёрстку, или на гридах.
Чтобы собрать своё добро, нужно знать, где скачать Node.js, как скачать пакет из npm и уметь пользоваться Webpack или Gulp (если он ещё не умер): пожать, минифицировать, запустить хот-релоад. И да, Git, нужно выучить десяток базовых команд. Это необходимый минимум.
В идеале нужно освоить базовый JavaScript и React, чтобы верстать компоненты сразу на нём. И вот еще чуть-чуть, и ты уже фронтендер.
Нынче если ищут именно верстальщика, а не полноценного фронта, значит последний уже есть, а вёрстки много и/или она сложная. Значит можно не знать JavaScript, но стоит освоить любой шаблонизатор, одну из популярных методологий, познакомиться с существующими библиотеками компонентов.
Чтобы тебя все хотели, нужно много и быстро верстать. А для этого нужно активно пользоваться доступными инструментами и подходами и уметь выбирать подходящие. Что, конечно, выходит далеко за рамки знания HTML и CSS.
— Катя Иванова, перевела бабушку на React
Что ещё?
Все работодатели хотят, чтобы к ним пришёл опытный верстальщик — для этого берите и верстайте. Можно смотреть на популярные сайты, верстать по бесплатным макетам или хорошим курсам. Как определить, хорошие ли перед вами курсы, я рассказывал в статье «Как получать 100 тысяч за код». Там есть полный список вещей, которые хорошо бы знать веб-разработчику, чтобы повысить шансы на высокую зарплату.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
ТелеграмПодкастБесплатные учебники
Верстка сайта – организовать тендер на адаптивную верстку (html, css, bootstrap в г. Стерлитамак)
Локация
Популярные
Россия, Москва Россия, Санкт-ПетербургРоссия Россия, Колпино Россия, Ярославль Россия, Ижевск Россия, Омск Россия, Краснодар Россия, Саратов Россия, Сургут Россия, Елизово Россия, Чебоксары Россия, Челябинск Россия, Казань Россия, Ростов-на-Дону Россия, Воронеж Россия, Миасс Россия, Владивосток Россия, Екатеринбург Россия, Петропавловск-Камчатский Россия, Пермь Россия, Барнаул Россия, Томск Россия, Новочеркасск Россия, Тюмень Россия, Йошкар-Ола Россия, Таганрог Россия, Оренбург Россия, Самара Россия, Калининград Россия, Новоржев Россия, Саранск Россия, Нижний Новгород Россия, Сыктывкар Россия, Владимир Россия, Киров Россия, Тверь Россия, Уфа Россия, Хабаровск Россия, Красноярск Россия, Анапа Россия, Щелково Россия, Ковров Россия, Тула Россия, Комсомольск-на-Амуре Россия, Ульяновск Россия, Иркутск Россия, Волгоград Россия, Новосибирск Россия, Кемерово Россия, Красный Сулин Россия, Геленджик Россия, Сочи Россия, Тольятти Россия, Абакан Россия, Березовский Россия, Дзержинск Россия, Курск Россия, Гусь-Хрустальный Россия, Рязань Россия, Набережные Челны Россия, Котлас Россия, Александров Россия, Брянск Россия, Улан-Удэ Россия, Пенза Россия, Артем Россия, Находка Россия, Уссурийск Россия, Иваново Россия, Ставрополь Россия, Феодосия Россия, Архангельск Россия, Ухта Россия, Вологда Россия, Рыбинск Россия, Севастополь Россия, Симферополь Россия, Великий Новгород Россия, Череповец Россия, Калуга Россия, Жуковский Россия, Истра Россия, Южно-Сахалинск Россия, Белгород Россия, Медногорск Россия, Якутск Россия, Георгиевск Россия, Ессентуки Россия, Железноводск Россия, Кисловодск Россия, Лермонтов Россия, Минеральные Воды Россия, Пятигорск Россия, Кострома Россия, Мурманск Россия, Смоленск Россия, Тамбов Россия, Ханты-Мансийск Россия, Чита Россия, Новокузнецк Россия, Серебряные Пруды Россия, Подольск Россия, Реутов Россия, Волгодонск Россия, Бердск Россия, Липецк Россия, Серпухов Россия, Курган Россия, Альметьевск Россия, Нижневартовск Россия, Дубна Россия, Орск Россия, Мытищи Россия, Магнитогорск Россия, Петрозаводск Россия, Белово Россия, Великий Устюг Россия, Астрахань Россия, Нижний Тагил Россия, Кирово-Чепецк Россия, Лесной Россия, Балаково Россия, Алапаевск Россия, Благовещенск Россия, Чехов Россия, Боровичи Россия, Кимры Россия, Королев Россия, Клин Россия, Балашиха Россия, Туапсе Россия, Пущино Россия, Долгопрудный Россия, Великие Луки Россия, Орел Россия, Обнинск Россия, Борисоглебск Россия, Новороссийск Россия, Азнакаево Россия, Лениногорск Россия, Красный Октябрь Россия, Волжский Россия, Камышин Россия, Красноуфимск Россия, Шуя Россия, Махачкала Россия, Одинцово Россия, Майкоп Россия, Нальчик Россия, Сергиев Посад Россия, Горно-Алтайск Россия, Хабары Россия, Черноголовка Россия, Батайск Россия, Воскресенск Россия, Сибай Россия, Псков Россия, Электросталь Россия, Прокопьевск Россия, Старая Русса Россия, Владикавказ Россия, Первоуральск Россия, Зеленоград Россия, Сальск Россия, Братск Россия, Орехово-Зуево Россия, Вязники Россия, Стерлитамак Россия, Химки Россия, Ачинск Россия, Рубцовск Россия, Усинск Россия, Назрань Россия, Пушкино Россия, Грозный Россия, Березники Россия, Шахты Россия, Кстово Россия, Радужный Россия, Муром Россия, Ангарск Россия, Егорьевск Россия, Югра Россия, Коломна Россия, Новоуральск Россия, Бакал Россия, Тихорецк Россия, Городец Россия, Евпатория Россия, Когалым Россия, Ярцево Россия, Полевской Россия, Люберцы Россия, Протвино Россия, Биробиджан Россия, Домодедово Россия, Кириллов Россия, Нарьян-Мар Россия, Норильск Россия, Нефтеюганск Россия, Нязепетровск Россия, Жигулевск Россия, Теберда Россия, Кингисепп Россия, Салехард Россия, Междуреченск Россия, Красногорск Россия, Каменск-Уральский Россия, Котельники Россия, Руза Россия, Красноармейск Россия, Ревда Россия, Лабинск Россия, Невинномысск Россия, Дальнереченск Россия, Бийск Россия, Усолье-Сибирское Россия, Солнечногорск Россия, Краснознаменск Россия, Наро-Фоминск Россия, Минусинск Россия, Переславль-Залесский Россия, Черногорск Россия, Сызрань Россия, Ногинск Россия, Раменское Россия, Армавир Россия, Алушта Россия, Ялта Россия, Трёхгорный Россия, Ступино Россия, Долинск Россия, Дзержинский Россия, Пересвет Россия, Новозыбков Россия, Чайковский Россия, Хасавюрт Россия, Старый Оскол Россия, Юрга Россия, Павловский Посад Россия, Новомосковск Россия, Октябрьский Россия, Белорецк Россия, Дербент Россия, Салават Россия, Нефтекамск Россия, Керчь Россия, Ивантеевка Россия, Лысьва Россия, Кинешма Россия, Зеленоградск Россия, Северодвинск Россия, Волхов Россия, Шадринск Россия, Феодосия Россия, Саки Россия, Белокуриха Россия, Апатиты Россия, Димитровград Россия, Сланцы Россия, Кызыл Россия, Лобня Россия, Арсеньев Россия, Лыткарино Россия, Гороховец Россия, Менделеевск Россия, Менделеевск Россия, Нижнекамск Россия, Нижнекамск Россия, Елабуга Россия, Елабуга Россия, Энгельс Россия, Пыть-Ях Россия, Копейск Россия, Черкесск Россия, Дмитров Россия, Горячий Ключ Россия, Елец Россия, Златоуст Россия, Выборг Россия, Конаково Россия, Воткинск Россия, Шатура Россия, Гатчина Россия, Джанкой Россия, Яшалта Россия, Южноуральск Россия, Видное Россия, Троицк Россия, Глазов Россия, Сортавала Россия, Магадан Россия, Советская Гавань Россия, Кропоткин Россия, Ахтанизовская Россия, Богатые Сабы Россия, Новоалтайск Россия, Кузьмоловский Россия, Бугульма Россия, Малоярославец Россия, Светлоград Россия, Элиста Россия, Новочебоксарск Россия, Ишим Россия, Кировск Россия, Зеленодольск Россия, Нестеров Россия, Лахденпохья Россия, Иваново Украина Украина, Харьков Украина, Киев Украина, Донецк Украина, Черкассы Украина, Днепр Украина, Ивано-Франковск Украина, Коломыя Украина, Львов Украина, Черновцы Украина, Одесса Украина, Винница Украина, Запорожье Украина, Луганск Украина, Николаев Украина, Ривне Украина, Тирасполь Украина, Ужгород Украина, Бердянск Украина, Алчевск Украина, Радехов Украина, Кировоград Украина, Тернополь Украина, Южный Украина, Сумы Украина, Луцк Украина, Ровно Украина, Полтава Украина, Краматорск Украина, Житомир Украина, Кривой Рог Украина, Мариуполь Украина, Буча Украина, Мелитополь Украина, Херсон Украина, Хмельницкий Украина, Стаханов Украина, Макеевка Украина, Северодонецк Украина, Чернигов Украина, Александрия Украина, Харцызск Украина, Борисполь Украина, Артёмовск Украина, Белая Церковь Украина, Кременчуг Украина, Мерефа Украина, Светловодск Украина, Днепр Украина, Новая Каховка Украина, Старобельск Украина, Умань Украина, Жёлтые Воды Украина, Острог Украина, Ирпень Украина, Первомайск Украина, Дрогобыч Беларусь Беларусь, Брест Беларусь, Минск Беларусь, Полоцк Беларусь, Гродно Беларусь, Бобруйск Беларусь, Гомель Беларусь, Могилёв Беларусь, Мозырь Беларусь, Орша Беларусь, Пинск Беларусь, Витебск Беларусь, Солигорск Беларусь, Червень Беларусь, Барановичи Беларусь, Борисов Беларусь, Речица Беларусь, Дзержинск Беларусь, Боровляны Беларусь, Пружаны Беларусь, Ветка Беларусь, Жодино Беларусь, Молодечно Беларусь, Вилейка Беларусь, Сморгонь Беларусь, Новополоцк Беларусь, Лида Беларусь, Жлобин Абхазия Абхазия, Гагра Австрия Австрия, Вена Азербайджан Азербайджан, Баку Армения Армения, Ереван Армения, Ванадзор Армения, Иджеван Болгария Болгария, Варна Болгария, София Болгария, Бургас Великобритания Великобритания, Эдинбург Великобритания, Лондон Великобритания, Оксфорд Германия Германия, Гамбург Германия, Кельн Германия, Бамберг Германия, Дуйсбург Германия, Штутгарт Германия, Франкфурт-на-Майне Германия, Дюссельдорф Германия, Берлин Грузия Грузия, Тбилиси Грузия, Батуми Египет Ирландия Ирландия, Дублин Израиль Израиль, Рамат-Ган Израиль, Натания Израиль, Тель Авив Израиль, Иерусалим Израиль, Ашдод Израиль, Бат Ям Израиль, Ришон ле-Цион Израиль, Хайфа Израиль, Беэр-Шева Испания Испания, Барселона Испания, Торревьеха Индия Индия, Нави Мумбаи Италия Италия, Милан Казахстан Казахстан, Астана Казахстан, Усть-Каменогорск Казахстан, Алматы Казахстан, Караганда Казахстан, Уральск Казахстан, Степногорск Казахстан, Павлодар Казахстан, Актобе Казахстан, Петропавловск Казахстан, Атырау Казахстан, Костанай Казахстан, Актау Казахстан, Есик Казахстан, Шымкент Казахстан, Степняк Казахстан, Семипалатинск Казахстан, Тараз Казахстан, Кокшетау Канада Канада, Торонто Канада, Монреаль Южная Корея Китай Китай, Пекин Китай, Гуанчжоу Латвия Латвия, Рига Латвия, Царникава Кыргызстан Кыргызстан, Бишкек Литва Литва, Вильнюс Литва, Висагинас Литва, Клайпеда Литва, Каунас Молдова Молдова, Кишинев Молдова, Тирасполь Молдова, Бельцы Молдова, Бендеры Молдова, Рыбница Польша Польша, Варшава Польша, Лодзь Польша, Познань Сербия Сербия, Белград Словакия Словакия, Кошице Словакия, Братислава Швеция Швеция, Стокгольм США США, Александрия США, Мемфис США, Роузвилль США, Лумис США, Миннеаполис США, Саннивейл США, Нью-Йорк США, Рено, Невада США, Бостон США, Сан-Франциско США, Лос-Анджелес США, Майами США, Довер США, Форт Лодердейл Таджикистан Таджикистан, Душанбе Таджикистан, Худжанд Таиланд Таиланд, Ао Нанг Таиланд, Патонг Таиланд, Пхукет Таиланд, Бангкок Туркменистан Туркменистан, Ашхабад Турция Турция, Стамбул Узбекистан Узбекистан, Ташкент Узбекистан, Бухара Узбекистан, Джизак Узбекистан, Самарканд Узбекистан, Андижан Узбекистан, Янгибазар Финляндия Финляндия, Хельсинки Финляндия, Каяни Финляндия, Оулу Франция Франция, Ницца Франция, Труа Франция, Лион Франция, Париж Чехия Чехия, Прага Чехия, Пльзень Чехия, Брно Эстония Эстония, Таллин Эстония, Кохтла-Ярве Эстония, Нарва Кипр Кипр, Лимассол Кипр, Пафос
Ничего не найдено
Deep Layout Parsing — Документация по Layout Parser 0.
3.2 В этом руководстве мы покажем, как использовать API layoutparser
для
Загрузить модели обнаружения макета для глубокого обучения и предсказать макет бумажное изображение
Использовать систему координат для анализа вывода
Бумажное изображение
взято с https://arxiv.org/abs/2004.08686.
импортировать layoutparser как lp импорт cv2
Использовать модели макетов для обнаружения сложного макета
layoutparser
может идентифицировать макет данного документа только с помощью
4 строки кода.
изображение = cv2.imread("data/paper-image.jpg") изображение = изображение[..., ::-1] # Преобразование изображения из BGR (стиль загрузки по умолчанию cv2) # в RGB
модель = lp.Detectron2LayoutModel('lp://PubLayNet/faster_rcnn_R_50_FPN_3x/config', extra_config=["MODEL.ROI_HEADS.SCORE_THRESH_TEST", 0,8], label_map={0: "Текст", 1: "Заголовок", 2: "Список", 3:"Таблица", 4:"Рисунок"}) # Загрузите модель глубокого макета из API layoutparser # Для всех поддерживаемых моделей, пожалуйста, проверьте Модель # Страница зоопарка: https://layout-parser. readthedocs.io/en/latest/notes/modelzoo.html
макет = model.detect(изображение) # Определяем макет входного изображения
lp.draw_box(изображение, макет, box_width=3) # Показать обнаруженный макет входного изображения
Проверьте результаты модели
тип(макет)
layoutparser.elements.Layout
Переменные макета
являются экземпляром макета
, который наследуется
из списка и поддерживает удобные методы обработки макета.
макет[0]
TextBlock (блок = прямоугольник (x_1 = 646,4182739)257812, y_1 = 1420,1715087890625, x_2 = 1132,8687744140625, y_2 = 1479,72220625), text =, id = None, type = Text, parent = None, next = None, score = 0,9996440410614014 )
макет
содержит серию TextBlock
s. Они хранят
координаты в переменной .block
и другая информация
блоки, такие как тип блока в .type
, текст в . text
и т. д. Подробнее
информацию можно найти на
документация.
Использовать систему координат для обработки обнаруженного макета
Сначала мы фильтруем текстовую область определенного типа:
text_blocks = lp.Layout([b вместо b в макете, если b.type=='Text']) Figure_blocks = lp.Layout([b вместо b в макете, если b.type=='Рисунок'])
Поскольку внутри области рисунка может быть обнаружена текстовая область, мы просто бросьте их:
text_blocks = lp.Layout([b вместо b в text_blocks \ если нет (b.is_in(b_fig) для b_fig в figure_blocks)])
Наконец, отсортируйте текстовые области и назначьте идентификаторы:
ч, ш = изображение.форма[:2] left_interval = lp.Interval(0, w/2*1.05, ось='x').put_on_canvas(изображение) left_blocks = text_blocks.filter_by(left_interval, center=True) left_blocks.sort(key = lambda b:b.coordinates[1], inplace=True) right_blocks = [b вместо b в text_blocks, если b не в left_blocks] right_blocks. sort(key = lambda b:b.coordinates[1], inplace=True) # И, наконец, объедините два списка и добавьте индекс # по заказу text_blocks = lp.Layout([b.set(id = idx) для idx, b в перечислении(left_blocks + right_blocks)])
Визуализировать очищенные текстовые блоки:
lp.draw_box(image, text_blocks, коробка_ширина = 3, show_element_id = Истина)
Извлечь текст внутри каждой текстовой области
Мы также можем использовать функцию OCR в layoutparser
для
получить текст в документе.
ocr_agent = lp.TesseractAgent(languages='eng') # Инициализировать механизм распознавания текста tesseract. Вам может понадобиться # для установки компонентов OCR в layoutparser: # pip install layoutparser[ocr]
для блока в text_blocks: segment_image = (блок .pad(слева=5, справа=5, сверху=5, снизу=5) .crop_image(изображение)) # добавление отступов в каждый сегмент изображения может помочь # повысить надежность текст = ocr_agent. detect(segment_image) block.set(текст=текст, inplace=Истина)
для txt в text_blocks.get_texts(): печать (txt, конец = '\n---\n')
Рисунок 7: Примеры аннотаций в HJDataset. (a) и (b) показывают два примера маркировки главных страниц. Коробки окрашены по-разному, чтобы отразить категории элементов макета. Как показано на (c), элементы в каждой строке индексной страницы классифицируются как основные надписи, а аннотации более плотные. --- уровень над союзом (IOU) [0,50:0,95]’, на тестовых данных. В В целом, высокие значения mAP указывают на точное обнаружение элементы макета. Более быстрый R-CNN и Mask R-CNN достичь сравнимых результатов, лучше, чем RetinaNet. Уведомление- Таким образом, обнаружение небольших блоков, таких как заголовок, менее предсказуемо. cise, и точность резко падает для категории заголовков. В Рисунок 8, (a) и (b) иллюстрируют точные результаты прогнозирования. модели Faster R-CNN. --- Мы также изучаем, как наш набор данных может помочь с мировое приложение для оцифровки документов. При оцифровке новых публикаций исследователи обычно не генерируют больших масштабировать наземные достоверные данные для обучения своих моделей анализа компоновки. Если они смогут адаптировать наш набор данных или модели, обученные на наш набор данных, чтобы разрабатывать модели на их данных, они могут построить их конвейеры более эффективно и развиваются более точно модели. Для этого проведем два эксперимента. Сначала мы изучить, как модели анализа компоновки обучены на основных страницы можно использовать для понимания индексных страниц. Более- мы изучаем, как предварительно обученные модели работают на других исторические японские документы. --- В таблице 4 сравнивается производительность пяти Faster R-CNN. модели, которые по-разному обучаются на индексных страницах. Если модель загружает предварительно обученные веса из HJDataset, она включает информация, извлеченная из главных страниц. Модели прошли обучение --- «Это основная метрика, разработанная для конкурса COCO [| 2] для оценка качества обнаружения объекта. --- все тренировочные данные можно рассматривать как эталоны, в то время как обучение с несколькими выборками (пятью в данном случае) считается предназначен для имитации сценариев реального мира. Учитывая разные поезда- данных, модели, предварительно обученные на HJDataset, значительно ненамного лучше, чем инициализированные весами COCO. В- интуитивно модели, обученные на большем количестве данных, работают лучше, чем те, у которых меньше образцов. Мы также напрямую используем модель обучены на main предсказывать индексные страницы без тонкой настройки. тюнинг. Низкая точность предсказания нулевого выстрела указывает на несоответствие индексной и главной страниц. Большой увеличение mAP с 0,344 до 0,471 после того, как модель --- Таблица 3: Обнаружение mAP @ IOU [0,50:0,95] разных модели для каждой категории в тестовом наборе. Все значения даны как проценты. --- * Для обучения Mask R-CNN масками сегментации являются квадри- боковые области для каждого блока. По сравнению с прямоугольным ограничением рамки, они более точно очерчивают текстовую область. ---
Плоская и глубокая иерархия веб-сайтов
Резюме: Информация может быть организована как в плоской, так и в глубокой иерархии; у обоих есть свои преимущества и недостатки.
Автор: Кэтрин Уайттон
- Кэтрин Уайттон
на 2013-11-10 10 ноября 2013 г.
Темы:
Информационная архитектура, навигация, сортировка карт- Информационная архитектура Информационная архитектура,
- Навигация
Поделиться этой статьей:
Практически каждый веб-сайт, содержащий более нескольких страниц, использует некоторую структуру для организации контента. Наиболее распространенная (и наиболее понятная) структура заключается в разделении страниц на группы, часто с отдельными подгруппами. В итоге иерархия содержания, структура, знакомая большинству из нас по нашему взаимодействию с организациями, семьями и миром природы.
Решения о том, как именно следует группировать контент, могут иметь драматические последствия для того, как структура вашего сайта работает (или не работает) для пользователей, но эти нюансы трудно понять на первый взгляд. Чтобы проанализировать, как будет работать структура, нам часто нужно создать визуализацию, которая показывает общее представление о том, как разные страницы сайта связаны друг с другом.
Рассмотрим эти 2 структуры: каждая представляет одинаковое количество информации и демонстрирует совершенно логичный способ организации содержимого веб-сайта. Тем не менее, опыт конечного пользователя при просмотре этих двух иерархий — даже если они содержат одинаковую информацию — будет очень разным.
Слева: плоская иерархия сайта с несколькими вертикальными уровнями. Справа: глубокая иерархия сайта имеет ту же информацию, организованную на большем количестве подуровней. Обе эти иерархии сайтов начинаются вверху с одной домашней страницы, но информация под этой страницей организована совершенно по-разному: сайт слева имеет 8 основных категорий, а сайт справа — только 4. боковое сравнение иллюстрирует, что мы имеем в виду, когда говорим о плоская и глубокая иерархии. Плоская (или широкая) иерархия слева выглядит широкой и короткой, потому что в ней всего 3 слоя. Структура справа глубокая, с 5 уровнями, меньшим количеством категорий и подкатегорий на каждом уровне, и в итоге кажется выше и уже.Хотя посетители веб-сайта никогда не видят этот тип визуализации, форма иерархии оказывает огромное влияние на работу конечного пользователя по двум причинам:
- Содержание больше обнаруживаемый , если он не скрыт под несколькими промежуточными слоями. При прочих равных, глубокие иерархии использовать сложнее.
- Категории, которые специфичны для и не пересекаются с , легче всего понять. Это работает в обе стороны: в глубоких иерархиях, когда на каждом уровне всего несколько категорий, они имеют тенденцию быть более общими и, следовательно, более запутанными. Более плоская иерархия с большим количеством категорий на каждом уровне обычно имеет более конкретные метки, которые легче понять; но в широких иерархиях с очень большим количеством элементов часто существует некоторое концептуальное совпадение, по крайней мере, между несколькими категориями. Пользователи также могут быть перегружены длинными и загроможденными меню.
Три больницы во Флориде иллюстрируют преимущества и недостатки различных информационных иерархий. На веб-сайте больницы общего профиля Тампы в категории «Медицинские услуги» перечислены 32 отдельных области заболевания и лечебные центры. Эта плоская иерархия позволяет очень легко узнать, какие виды лечения предлагает больница. Посетители могут щелкнуть прямо из раскрывающегося меню глобальной навигации на страницу, посвященную конкретному заболеванию. Поскольку большинство пациентов лечатся от одного заболевания за раз, привлекательным является переход сразу к информации о конкретном заболевании. Но риск этого типа меню заключается в том, что пользователи могут быть перегружены таким количеством ссылок, не смогут внимательно прочитать весь список и пропустить лучший вариант. Например, посетитель, интересующийся уходом за новорожденными, может легко пропустить ссылку на отделение интенсивной терапии новорожденных Дженнифер Ли Мума и вместо этого щелкнуть Педиатрический центр в Healthpark. Списки такой длины можно упростить для просмотра, обеспечив некоторую группировку — не помещая некоторые элементы в подкатегории иерархии, а просто визуально организуя связанные элементы вместе.
Плоская иерархия: на веб-сайте больницы общего профиля Тампы представлен длинный список из более чем 30 пунктов в разделе Медицинские услуги . Вместо того, чтобы скрывать их под несколькими широкими группами, каждая отдельная область лечения отображается и доступна непосредственно из раскрывающегося меню в глобальной навигации. На веб-сайте Baptist Health в Джексонвилле в раскрывающемся меню Services пунктов вдвое меньше. Этот более короткий список гораздо легче просматривать, но он не обеспечивает такой же возможности обнаружения определенного контента. Во многих случаях пользователям придется щелкнуть одну категорию, а затем перейти к более низкому уровню, чтобы найти конкретную информацию, например, об экстракорпоральном оплодотворении или интенсивной терапии новорожденных. В некоторых случаях даже неясно, какая основная категория будет хорошей отправной точкой. Вы можете нажать Cancer Care , чтобы получить информацию о раке предстательной железы, но нет категории «Урология», поэтому непонятно, где найти информацию о других заболеваниях предстательной железы. Умеренно глубокая иерархия: Baptist Health перечисляет только 16 областей обслуживания; некоторые конкретные темы не перечислены в этом меню, поэтому пользователям придется переходить на более низкие уровни иерархии, чтобы найти их. Веб-сайт Университета здоровья Флориды, напротив, показывает информацию о конкретных заболеваниях только на более низких уровнях иерархии сайтов, ниже 9.0139 Уход за больными , затем Медицинское обслуживание , а затем Специализированная помощь . Всего на 3 уровня ниже вы, наконец, попадаете на страницу, на которой перечислены (все еще довольно широкие) области лечения, такие как Онкологические специальности , Сердечные услуги и Женские услуги . Глубокая иерархия: веб-сайт UF Health показывает информацию о конкретном заболевании на 3 уровня ниже главной страницы: Главная страница > Уход за пациентами > Медицинская помощь > Специализированная помощь. Требование от пользователей переходить по стольким уровням, чтобы перейти к определенному контенту, обычно не работает. Пользователи легко теряются, отвлекаются или просто решают, что это слишком много работы, и сдаются. Таким образом, для более глубоких иерархий очень важно предоставить альтернативные варианты навигации: ярлыки, которые ведут непосредственно на более низкие уровни. UF Health делает это в раскрывающемся меню глобальной навигации, где пользователи могут просматривать в алфавитном порядке информацию о конкретном заболевании или выбирать один из 9 вариантов.0139 Самые просматриваемые условия и услуги . Ярлыки с глубокой иерархией. Раскрывающееся меню Patient Care на веб-сайте UF Health включает альтернативные варианты навигации (по алфавиту и Наиболее просматриваемые условия и услуги) , которые помогают сделать содержимое более низкого уровня более заметным.Представление иерархий в интерфейсе
При плоской иерархии пользователям относительно легко понять, как та или иная страница связана с другими страницами, если есть видимые меню навигации. Но чем глубже становится иерархия, тем больше вероятность того, что посетители будут дезориентированы. Для сайтов, которые имеют более чем несколько уровней глубины, навигационные цепочки (которые показывают ссылку для каждого уровня сайта от главной страницы до текущей страницы) могут помочь пользователям сориентироваться и понять структуру сайта. Карты сайта — еще один полезный способ помочь пользователям увидеть структуру веб-сайта.
Плоский или глубокий?
Должна ли иерархия вашего веб-сайта быть плоской или глубокой? Как и в большинстве вопросов о дизайне, здесь нет единственно правильного ответа, и слишком далекое вхождение в любую крайность приведет к неприятным последствиям. Плоские иерархии, как правило, хорошо работают, если у вас есть различных, узнаваемых категорий , потому что людям не нужно переходить через столько уровней. Когда пользователи знают, чего они хотят, просто уйдите с дороги и дайте им это найти. Вы можете использовать карточную сортировку, чтобы решить, как структурировать информацию так, как о ней думают пользователи. Тестирование дерева может помочь проверить структуру, позволяя пользователям попытаться найти информацию в предлагаемой иерархии.
Но из каждого правила есть исключения. В некоторых ситуациях просто слишком много категорий , чтобы показать их все на одном уровне.