SlideShare a Scribd company logo
1 of 27
Download to read offline
Проверка правописания в
веб-приложениях
Алексей Байтин, Алексей Осипенко



Я.Субботник, Москва, 18 апреля 2009 года
Спеллер – программа для
проверки правописания
• Часть I. Гуманитарная
 Функционалные возможности и лингвистичские
 характиристики современных спеллеров


• Часть II. Техническая
  API Яндекс.Спеллера для веб-мастеров
Ошибки правописания на вебе
•   12% поисковых запросов содержат ошибки…

•   Опечатки в формах…

•   Блоги с орфографическими ошибками…


...Рассматривается функционалные возможности и
       лингвистичские характиристики современных
       спеллеров…

Вопрос: галлерея или галерея ?
Требования к спеллеру
…находить в тексте орфографические ошибки и
  предлагать для них исправления…


3 Не:
• Не пропускать ошибки

• Не подсвечивать хорошие слова

• Не предлагать плохие подсказки
Проверим текст на вебе

Спеллеры:

• Google Toolbar

• Firefox Plugin

• Яндекс.Бар
Google
Firefox
Яндекс
Яндекс.Спеллер

Цель – предоставить десктопный уровень сервиса

• Лексика
  – большой словарь
• Функционал
  – полный набор опций
• Дизайн
  – диалоговый режим проверки
Что в планах?
•   Пополнение лексики за счет веба
•   Проверка сочетаемости соседних слов
•   Новые опции:
    ◦   формальная/разговорная лексика
    ◦   подсказка для транслита и раскладки
    ◦   поддержка буквы «ё»
    ◦   замена во всех формах
◦ Автоматическое исправление ошибок
◦ Исправление ошибок во время набора
Часть II
  Техническая
1. Spell Service – сервис для проверки текстов в формах
2. Подключение к TinyMCE
3. Правописание в HTML формах
Spell Service
IDL определение

 interface SpellService {

      SpellResult checkText(
         string text,
         string lang,
         int    options);

      SpellResult[] checkTexts(
         string[] text,
         string   lang,
         int      options);
 };
Spell Service
http://speller.yandex.net/services/spellservice
Spell Service
http://speller.yandex.net/services/spellservice/checkText

 <SpellResult>
    <error code="1" pos="0" row="0" col="0" len="14">
       <word>синхрофазатрон</word>
       <s>синхрофазотрон</s>
    </error>
    <error code="3" pos="17" row="0" col="17" len="5">
       <word>дубне</word>
       <s>Дубне</s>
    </error>
 </SpellResult>
Spell Service
http://speller.yandex.net/services/spellservice.json/
checkText
 [
     { "code": 1, "pos": 0, "row": 0, "col": 0, "len": 14,
        "word": " синхрофазатрон ",
        "s": [ "синхрофазотрон" ]
     },
     { "code": 3, "pos": 17, "row": 0, "col": 17, "len": 5,
        "word": "дубне",
        "s": [ "Дубне" ]
     }
 ]
Spell Service
Коды ошибок и опции

 // Опции
 const int   IGNORE_UPPERCASE = 0x0001;
 const int   IGNORE_DIGITS = 0x0002;
 const int   IGNORE_URLS = 0x0004;
 const int   FIND_REPEAT_WORDS = 0x0008;
 const int   IGNORE_LATIN = 0x0010;
 const int   NO_SUGGEST = 0x0020;

 // Коды ошибок
 const int ERROR_OK = 0;
 const int ERROR_UNKNOWN_WORD = 1;
 const int ERROR_REPEAT_WORD = 2;
 const int ERROR_CAPITALIZATION = 3;
 const int ERROR_TOO_MANY_ERRORS = 4;
Подключение к TinyMCE
http://tinymce.moxiecode.com/
Подключение к TinyMCE
Скрипт инициализации (word.html)
 <script type="text/javascript">
 tinyMCE.init({
    // General options
    mode : "textareas",
    theme : "advanced",
    plugins : "...,spellchecker,...",
    theme_advanced_buttons3 : "...,spellchecker,...",

    // Spellchecker
    spellchecker_languages :
       "+Russian=ru,Ukrainian=uk,English=en”,
    spellchecker_rpc_url : "/speller/tinyspell",
 });
 </script>
Apache httpd.conf
 ProxyPass /speller/tynispell
 http://speller.yandex.net/services/tynispell
Подключение к TinyMCE
http://tinymce.moxiecode.com/
Правописание в HTML формах
my-form.html




 <form id="email" action="">
    <textarea name="body" rows="5" cols="40">
    </textarea><br/>
 </form>
Правописание в HTML формах
  Инструкция по подключению

1. Загрузить http://speller.yandex.net/speller/0.9/spell.zip




2. Распаковать в каталог <my-app>/speller
3. Отредактировать my-form.html …
Правописание в HTML формах
    Подключаем проверку правописания

1    <script type="text/javascript" src="speller/spell.js">
     </script>
     <script type="text/javascript">
2       var speller = new Speller({ url: "speller" });
        function spellCheck() {
           speller.check([ document.forms["email"].body ]);
        }
     </script>
     <form id="email" action="">
        <textarea name="body" rows="5" cols="40">
        </textarea><br/>
3       <button type="button" onclick="spellCheck()">
     Проверить...</button>
     </form>
Правописание в HTML формах
Как это работает?
Правописание в HTML формах
    Что можно сделать еще?

     ...
     <script type="text/javascript">
        var speller = new Speller({ url: "speller",
1        lang: "uk",
        options: Speller.IGNORE_UPPERCASE + Speller.IGNORE_DIGITS
2               + Speller.IGNORE_URLS + Speller.FIND_REPEAT });
        ...
     </script>
     <form id="email" action="">
        <textarea name="body" rows="5" cols="40">
        </textarea><br/>
        <button type="button" onclick="spellCheck()">
     Проверить...</button>
3       <button type="button" onclick="speller.optionsDialog()">
     Параметры...</button>
     </form>
Правописание в HTML формах
Что можно сделать еще?
Ближайшие планы
1. Словарь пользователя
2. Снять ограничение на размер текста
Алексей Байтин
Алексей Осипенко

111033, Россия, Москва,
ул. Самокатная д.1, стр. 21.

+7 (495) 739-00-00
+7 (495) 739-70-70 — факс

baytin@yandex-team.ru
aosipenko@yandex-team.ru

More Related Content

Viewers also liked

Анастасия Ларкина "Дизайнер в поиске"
Анастасия Ларкина "Дизайнер в поиске"Анастасия Ларкина "Дизайнер в поиске"
Анастасия Ларкина "Дизайнер в поиске"Yandex
 
Артём Кошелев "Чего не хватает в PageObject?"
Артём Кошелев "Чего не хватает в PageObject?"Артём Кошелев "Чего не хватает в PageObject?"
Артём Кошелев "Чего не хватает в PageObject?"Yandex
 
Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Александр Лившиц "Как работают хорошие сниппеты"
Александр Лившиц "Как работают хорошие сниппеты"Александр Лившиц "Как работают хорошие сниппеты"
Александр Лившиц "Как работают хорошие сниппеты"Yandex
 
Вадим Пацев "Adobe Fireworks как инструмент для проектирования интерфейсов"
Вадим Пацев "Adobe Fireworks как инструмент для проектирования интерфейсов"Вадим Пацев "Adobe Fireworks как инструмент для проектирования интерфейсов"
Вадим Пацев "Adobe Fireworks как инструмент для проектирования интерфейсов"Yandex
 
Антон Попов "Анализ эффективности сайтов: Яндекс.Метрика"
Антон Попов "Анализ эффективности сайтов: Яндекс.Метрика"Антон Попов "Анализ эффективности сайтов: Яндекс.Метрика"
Антон Попов "Анализ эффективности сайтов: Яндекс.Метрика"Yandex
 
Вера Лейзерович, Влад Мокеев "Виджеты для главной страницы Яндекса. Что такое...
Вера Лейзерович, Влад Мокеев "Виджеты для главной страницы Яндекса. Что такое...Вера Лейзерович, Влад Мокеев "Виджеты для главной страницы Яндекса. Что такое...
Вера Лейзерович, Влад Мокеев "Виджеты для главной страницы Яндекса. Что такое...Yandex
 
Максим Ширшин "SVARX, или Борьба с большими формами"
Максим Ширшин "SVARX, или Борьба с большими формами"Максим Ширшин "SVARX, или Борьба с большими формами"
Максим Ширшин "SVARX, или Борьба с большими формами"Yandex
 
Александр Садовский "Как получить больше трафика"
Александр Садовский "Как получить больше трафика"Александр Садовский "Как получить больше трафика"
Александр Садовский "Как получить больше трафика"Yandex
 
Владимир Батыгин "Автоматический сбор данных по примерам"
Владимир Батыгин "Автоматический сбор данных по примерам"Владимир Батыгин "Автоматический сбор данных по примерам"
Владимир Батыгин "Автоматический сбор данных по примерам"Yandex
 
Антон Волнухин и Роман Иванов "Как устроен Поиск по блогам"
Антон Волнухин и Роман Иванов "Как устроен Поиск по блогам"Антон Волнухин и Роман Иванов "Как устроен Поиск по блогам"
Антон Волнухин и Роман Иванов "Как устроен Поиск по блогам"Yandex
 
Антон Волнухин "Белорусская блогосфера"
Антон Волнухин "Белорусская блогосфера"Антон Волнухин "Белорусская блогосфера"
Антон Волнухин "Белорусская блогосфера"Yandex
 
Антон Тюрин "Распределённая система near-realtime агрегации больших объёмов д...
Антон Тюрин "Распределённая система near-realtime агрегации больших объёмов д...Антон Тюрин "Распределённая система near-realtime агрегации больших объёмов д...
Антон Тюрин "Распределённая система near-realtime агрегации больших объёмов д...Yandex
 
Сергей Пузанков — XSLT
Сергей Пузанков — XSLTСергей Пузанков — XSLT
Сергей Пузанков — XSLTYandex
 
Conozca nuestro servicio de Marketing Directo - Roncalli CEE
Conozca nuestro servicio de Marketing Directo - Roncalli CEE Conozca nuestro servicio de Marketing Directo - Roncalli CEE
Conozca nuestro servicio de Marketing Directo - Roncalli CEE Fundación Juan XXIII Roncalli
 

Viewers also liked (20)

Анастасия Ларкина "Дизайнер в поиске"
Анастасия Ларкина "Дизайнер в поиске"Анастасия Ларкина "Дизайнер в поиске"
Анастасия Ларкина "Дизайнер в поиске"
 
Артём Кошелев "Чего не хватает в PageObject?"
Артём Кошелев "Чего не хватает в PageObject?"Артём Кошелев "Чего не хватает в PageObject?"
Артём Кошелев "Чего не хватает в PageObject?"
 
Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Александр Лившиц "Как работают хорошие сниппеты"
Александр Лившиц "Как работают хорошие сниппеты"Александр Лившиц "Как работают хорошие сниппеты"
Александр Лившиц "Как работают хорошие сниппеты"
 
Вадим Пацев "Adobe Fireworks как инструмент для проектирования интерфейсов"
Вадим Пацев "Adobe Fireworks как инструмент для проектирования интерфейсов"Вадим Пацев "Adobe Fireworks как инструмент для проектирования интерфейсов"
Вадим Пацев "Adobe Fireworks как инструмент для проектирования интерфейсов"
 
Антон Попов "Анализ эффективности сайтов: Яндекс.Метрика"
Антон Попов "Анализ эффективности сайтов: Яндекс.Метрика"Антон Попов "Анализ эффективности сайтов: Яндекс.Метрика"
Антон Попов "Анализ эффективности сайтов: Яндекс.Метрика"
 
Вера Лейзерович, Влад Мокеев "Виджеты для главной страницы Яндекса. Что такое...
Вера Лейзерович, Влад Мокеев "Виджеты для главной страницы Яндекса. Что такое...Вера Лейзерович, Влад Мокеев "Виджеты для главной страницы Яндекса. Что такое...
Вера Лейзерович, Влад Мокеев "Виджеты для главной страницы Яндекса. Что такое...
 
Максим Ширшин "SVARX, или Борьба с большими формами"
Максим Ширшин "SVARX, или Борьба с большими формами"Максим Ширшин "SVARX, или Борьба с большими формами"
Максим Ширшин "SVARX, или Борьба с большими формами"
 
Александр Садовский "Как получить больше трафика"
Александр Садовский "Как получить больше трафика"Александр Садовский "Как получить больше трафика"
Александр Садовский "Как получить больше трафика"
 
Владимир Батыгин "Автоматический сбор данных по примерам"
Владимир Батыгин "Автоматический сбор данных по примерам"Владимир Батыгин "Автоматический сбор данных по примерам"
Владимир Батыгин "Автоматический сбор данных по примерам"
 
Антон Волнухин и Роман Иванов "Как устроен Поиск по блогам"
Антон Волнухин и Роман Иванов "Как устроен Поиск по блогам"Антон Волнухин и Роман Иванов "Как устроен Поиск по блогам"
Антон Волнухин и Роман Иванов "Как устроен Поиск по блогам"
 
Антон Волнухин "Белорусская блогосфера"
Антон Волнухин "Белорусская блогосфера"Антон Волнухин "Белорусская блогосфера"
Антон Волнухин "Белорусская блогосфера"
 
Антон Тюрин "Распределённая система near-realtime агрегации больших объёмов д...
Антон Тюрин "Распределённая система near-realtime агрегации больших объёмов д...Антон Тюрин "Распределённая система near-realtime агрегации больших объёмов д...
Антон Тюрин "Распределённая система near-realtime агрегации больших объёмов д...
 
Сергей Пузанков — XSLT
Сергей Пузанков — XSLTСергей Пузанков — XSLT
Сергей Пузанков — XSLT
 
Navegadores web
Navegadores webNavegadores web
Navegadores web
 
Conozca nuestro servicio de Marketing Directo - Roncalli CEE
Conozca nuestro servicio de Marketing Directo - Roncalli CEE Conozca nuestro servicio de Marketing Directo - Roncalli CEE
Conozca nuestro servicio de Marketing Directo - Roncalli CEE
 
Sistema circulatório
Sistema circulatórioSistema circulatório
Sistema circulatório
 
Cuidemos el Planeta
Cuidemos el PlanetaCuidemos el Planeta
Cuidemos el Planeta
 
Surf
Surf  Surf
Surf
 

Similar to Алексей Байтин, Алексей Осипенко "Проверка правописания в веб-приложениях"

Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Andrew Mayorov
 
"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИС"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИСit-people
 
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...sqadays8
 
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложенийZestranec
 
Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийSQALab
 
Web осень 2013 лекция 5
Web осень 2013 лекция 5Web осень 2013 лекция 5
Web осень 2013 лекция 5Technopark
 
Максим Ширшин "SVARX: фреймворк для семантической валидации форм"
Максим Ширшин "SVARX: фреймворк для семантической валидации форм"Максим Ширшин "SVARX: фреймворк для семантической валидации форм"
Максим Ширшин "SVARX: фреймворк для семантической валидации форм"Yandex
 
Maksim Shirshin
Maksim ShirshinMaksim Shirshin
Maksim Shirshinyaevents
 
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.Igor Shkulipa
 
PHP Tricks
PHP TricksPHP Tricks
PHP TricksBlackFan
 
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceВыступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceEYevseyeva
 
Project Robotester
Project RobotesterProject Robotester
Project Robotesterbromozel
 
Статический анализ исходного кода на примере WinMerge
Статический анализ исходного кода на примере WinMergeСтатический анализ исходного кода на примере WinMerge
Статический анализ исходного кода на примере WinMergeTatyanazaxarova
 
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...lshevtsov
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеровMedia Gorod
 
Безопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр ВолковБезопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр ВолковYandex
 
Как выглядит современный фронтенд
Как выглядит современный фронтендКак выглядит современный фронтенд
Как выглядит современный фронтендTimophy Chaptykov
 

Similar to Алексей Байтин, Алексей Осипенко "Проверка правописания в веб-приложениях" (20)

Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
 
"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИС"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИС
 
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
 
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложений
 
Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложений
 
Web осень 2013 лекция 5
Web осень 2013 лекция 5Web осень 2013 лекция 5
Web осень 2013 лекция 5
 
Максим Ширшин "SVARX: фреймворк для семантической валидации форм"
Максим Ширшин "SVARX: фреймворк для семантической валидации форм"Максим Ширшин "SVARX: фреймворк для семантической валидации форм"
Максим Ширшин "SVARX: фреймворк для семантической валидации форм"
 
Maksim Shirshin
Maksim ShirshinMaksim Shirshin
Maksim Shirshin
 
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.
 
PHP Tricks
PHP TricksPHP Tricks
PHP Tricks
 
Ci
CiCi
Ci
 
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceВыступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
 
Project Robotester
Project RobotesterProject Robotester
Project Robotester
 
Статический анализ исходного кода на примере WinMerge
Статический анализ исходного кода на примере WinMergeСтатический анализ исходного кода на примере WinMerge
Статический анализ исходного кода на примере WinMerge
 
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с Codeception
 
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеров
 
Безопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр ВолковБезопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр Волков
 
Как выглядит современный фронтенд
Как выглядит современный фронтендКак выглядит современный фронтенд
Как выглядит современный фронтенд
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Алексей Байтин, Алексей Осипенко "Проверка правописания в веб-приложениях"

  • 1. Проверка правописания в веб-приложениях Алексей Байтин, Алексей Осипенко Я.Субботник, Москва, 18 апреля 2009 года
  • 2. Спеллер – программа для проверки правописания • Часть I. Гуманитарная Функционалные возможности и лингвистичские характиристики современных спеллеров • Часть II. Техническая API Яндекс.Спеллера для веб-мастеров
  • 3. Ошибки правописания на вебе • 12% поисковых запросов содержат ошибки… • Опечатки в формах… • Блоги с орфографическими ошибками… ...Рассматривается функционалные возможности и лингвистичские характиристики современных спеллеров… Вопрос: галлерея или галерея ?
  • 4. Требования к спеллеру …находить в тексте орфографические ошибки и предлагать для них исправления… 3 Не: • Не пропускать ошибки • Не подсвечивать хорошие слова • Не предлагать плохие подсказки
  • 5. Проверим текст на вебе Спеллеры: • Google Toolbar • Firefox Plugin • Яндекс.Бар
  • 9. Яндекс.Спеллер Цель – предоставить десктопный уровень сервиса • Лексика – большой словарь • Функционал – полный набор опций • Дизайн – диалоговый режим проверки
  • 10. Что в планах? • Пополнение лексики за счет веба • Проверка сочетаемости соседних слов • Новые опции: ◦ формальная/разговорная лексика ◦ подсказка для транслита и раскладки ◦ поддержка буквы «ё» ◦ замена во всех формах ◦ Автоматическое исправление ошибок ◦ Исправление ошибок во время набора
  • 11. Часть II Техническая 1. Spell Service – сервис для проверки текстов в формах 2. Подключение к TinyMCE 3. Правописание в HTML формах
  • 12. Spell Service IDL определение interface SpellService { SpellResult checkText( string text, string lang, int options); SpellResult[] checkTexts( string[] text, string lang, int options); };
  • 14. Spell Service http://speller.yandex.net/services/spellservice/checkText <SpellResult> <error code="1" pos="0" row="0" col="0" len="14"> <word>синхрофазатрон</word> <s>синхрофазотрон</s> </error> <error code="3" pos="17" row="0" col="17" len="5"> <word>дубне</word> <s>Дубне</s> </error> </SpellResult>
  • 15. Spell Service http://speller.yandex.net/services/spellservice.json/ checkText [ { "code": 1, "pos": 0, "row": 0, "col": 0, "len": 14, "word": " синхрофазатрон ", "s": [ "синхрофазотрон" ] }, { "code": 3, "pos": 17, "row": 0, "col": 17, "len": 5, "word": "дубне", "s": [ "Дубне" ] } ]
  • 16. Spell Service Коды ошибок и опции // Опции const int IGNORE_UPPERCASE = 0x0001; const int IGNORE_DIGITS = 0x0002; const int IGNORE_URLS = 0x0004; const int FIND_REPEAT_WORDS = 0x0008; const int IGNORE_LATIN = 0x0010; const int NO_SUGGEST = 0x0020; // Коды ошибок const int ERROR_OK = 0; const int ERROR_UNKNOWN_WORD = 1; const int ERROR_REPEAT_WORD = 2; const int ERROR_CAPITALIZATION = 3; const int ERROR_TOO_MANY_ERRORS = 4;
  • 18. Подключение к TinyMCE Скрипт инициализации (word.html) <script type="text/javascript"> tinyMCE.init({ // General options mode : "textareas", theme : "advanced", plugins : "...,spellchecker,...", theme_advanced_buttons3 : "...,spellchecker,...", // Spellchecker spellchecker_languages : "+Russian=ru,Ukrainian=uk,English=en”, spellchecker_rpc_url : "/speller/tinyspell", }); </script> Apache httpd.conf ProxyPass /speller/tynispell http://speller.yandex.net/services/tynispell
  • 20. Правописание в HTML формах my-form.html <form id="email" action=""> <textarea name="body" rows="5" cols="40"> </textarea><br/> </form>
  • 21. Правописание в HTML формах Инструкция по подключению 1. Загрузить http://speller.yandex.net/speller/0.9/spell.zip 2. Распаковать в каталог <my-app>/speller 3. Отредактировать my-form.html …
  • 22. Правописание в HTML формах Подключаем проверку правописания 1 <script type="text/javascript" src="speller/spell.js"> </script> <script type="text/javascript"> 2 var speller = new Speller({ url: "speller" }); function spellCheck() { speller.check([ document.forms["email"].body ]); } </script> <form id="email" action=""> <textarea name="body" rows="5" cols="40"> </textarea><br/> 3 <button type="button" onclick="spellCheck()"> Проверить...</button> </form>
  • 23. Правописание в HTML формах Как это работает?
  • 24. Правописание в HTML формах Что можно сделать еще? ... <script type="text/javascript"> var speller = new Speller({ url: "speller", 1 lang: "uk", options: Speller.IGNORE_UPPERCASE + Speller.IGNORE_DIGITS 2 + Speller.IGNORE_URLS + Speller.FIND_REPEAT }); ... </script> <form id="email" action=""> <textarea name="body" rows="5" cols="40"> </textarea><br/> <button type="button" onclick="spellCheck()"> Проверить...</button> 3 <button type="button" onclick="speller.optionsDialog()"> Параметры...</button> </form>
  • 25. Правописание в HTML формах Что можно сделать еще?
  • 26. Ближайшие планы 1. Словарь пользователя 2. Снять ограничение на размер текста
  • 27. Алексей Байтин Алексей Осипенко 111033, Россия, Москва, ул. Самокатная д.1, стр. 21. +7 (495) 739-00-00 +7 (495) 739-70-70 — факс baytin@yandex-team.ru aosipenko@yandex-team.ru