Google использует вероятностную модель (Байесовский классификатор) для точной идентификации языка и кодировки документа. Система анализирует две группы сигналов: атрибуты документа (домен верхнего уровня, HTTP-заголовки, HTML-теги) и непосредственно текст, анализируемый на уровне байтовых триграмм. Это позволяет корректно определять язык даже при противоречивых метаданных и эффективно обрабатывать многобайтовые кодировки (например, азиатские языки).
Описание
Какую задачу решает
Патент решает проблему точной и надежной идентификации языка и кодировки (character set encoding) веб-документов (веб-страниц, новостных сообщений). Существовавшие методы часто полагались на метаданные (HTTP-заголовки, HTML-теги), которые могут отсутствовать, быть неверными или установленными по умолчанию. Кроме того, многие текстовые методы были неэффективны для обработки многобайтовых или переменных кодировок (например, в китайском, японском, корейском языках), так как предполагали фиксированную длину символа в один байт.
Что запатентовано
Запатентована система и метод идентификации языковых атрибутов с использованием вероятностного анализа (Байесовский классификатор). Система определяет Language Class (пару язык/кодировка) документа путем обучения и применения двух независимых моделей: Attribute Model (основанной на свойствах документа, таких как TLD и заявленная кодировка) и Text Model (основанной на анализе последовательностей байтов в тексте, в частности, trigrams). Система объединяет вероятности из обеих моделей для точной классификации.
Как это работает
Система работает в два этапа: обучение и классификация.
- Обучение: На основе обучающего корпуса (Training Corpora) документов с известными языками система строит две модели. Attribute Model изучает, насколько вероятны определенные комбинации домена верхнего уровня (TLD) и кодировки для данного языка. Text Model изучает частоту встречаемости trigrams (последовательностей из трех байтов) для данного языка/кодировки.
- Классификация: При анализе нового документа система вычисляет общую вероятность принадлежности документа к каждому возможному Language Class. Эта вероятность является произведением вероятности текста (из Text Model) и вероятности атрибутов (из Attribute Model). Выбирается класс с наибольшей вероятностью. Для эффективности система может отсекать (prune) маловероятные классы в процессе анализа.
Актуальность для SEO
Средняя/Высокая. Идентификация языка остается фундаментальной задачей для индексирования. Хотя конкретные методы, описанные в патенте (Байесовский классификатор на байтовых триграммах), вероятно, были дополнены или заменены более современными нейросетевыми подходами, базовый принцип, заложенный в патенте — комбинирование различных типов сигналов (атрибуты документа + анализ контента) для надежного определения языка — остается абсолютно актуальным.
Важность для SEO
Патент имеет высокое инфраструктурное значение (7/10), особенно для международного SEO. Он не описывает факторы ранжирования, но детализирует критически важный этап индексирования. Если система не сможет правильно определить язык и кодировку страницы, контент не будет корректно обработан системами NLP и не сможет эффективно ранжироваться в целевом языковом поиске. Патент подтверждает важность предоставления четких и непротиворечивых технических сигналов.
Детальный разбор
Термины и определения
- Attribute Model (Модель атрибутов)
- Вероятностная модель, которая оценивает вероятность набора свойств документа (таких как TLD и кодировка) при условии заданного Language Class. Учитывает P(tld,enc|cls) * P(cls).
- Backoff Estimate (Резервная оценка)
- Метод оценки вероятности для редко встречающихся комбинаций атрибутов (TLD и кодировка). Если комбинация встречается нечасто, система использует произведение вероятностей отдельных атрибутов вместо совместной вероятности.
- Bayesian Classifier (Байесовский классификатор)
- Статистический классификатор, используемый для определения вероятности принадлежности объекта к определенному классу на основе наблюдаемых признаков, используя теорему Байеса.
- Language Class (Языковой класс)
- Ключевое понятие патента. Определяется как пара, состоящая из языка и кодировки символов (например, Японский/Shift-JIS).
- Pruning (Отсечение)
- Механизм оптимизации процесса классификации, при котором языковые классы, чья вероятность падает ниже определенного порога, исключаются из дальнейшего рассмотрения для данного документа.
- Text Model (Текстовая модель)
- Вероятностная модель, которая оценивает вероятность текста документа при условии заданного Language Class. Основана на анализе частоты байтовых trigrams. Учитывает P(text|cls).
- TLD (Top Level Domain / Домен верхнего уровня)
- Свойство документа, используемое в Attribute Model как индикатор языка (например, .es, .jp).
- Training Corpora (Обучающий корпус)
- Набор документов, для которых заранее известен Language Class, используемый для обучения Attribute Model и Text Model.
- Trigrams (Триграммы байтов)
- Последовательности из трех последовательных байтов. Используются в Text Model для анализа текста, что позволяет эффективно обрабатывать однобайтовые, многобайтовые и переменные кодировки.
Ключевые утверждения (Анализ Claims)
Claim 1 (Независимый пункт): Описывает систему идентификации языковых атрибутов.
- Система хранит набор Language Classes (язык + кодировка) и обучающие документы.
- Обучение Attribute Model: Анализируются свойства документов (document properties). Эти свойства явно определены как включающие TLD, параметры кодировки и языка из HTTP-заголовков, а также параметры кодировки и языка из HTML метатегов. Рассчитывается условная вероятность набора этих свойств для каждого Language Class.
- Обучение Text Model: Анализируется встречаемость байтов (byte occurrences) в обучающих документах. Рассчитывается условная вероятность этих байтов для каждого Language Class.
- Расчет общей вероятности: Общая вероятность для Language Class рассчитывается путем комбинирования вероятностей из Attribute Model и Text Model.
Claim 2 (Зависимый от 1): Уточняет формулу расчета общей вероятности как Байесовский классификатор: argmax P(text|cls) * P(props|cls) * P(cls).
Claim 5 и 6 (Зависимые от 1): Детализируют реализацию Text Model.
Встречаемость байтов анализируется через подсчет совместной встречаемости байтов (byte co-occurrences) (Claim 5). Эта совместная встречаемость реализуется как набор триграмм (trigrams). Вероятность триграммы рассчитывается как частота ее встречаемости, деленная на общее число триграмм в обучающих документах данного класса (Claim 6).
Claim 9 (Зависимый от 1): Описывает механизм обработки редких свойств.
Система включает back off module для оценки менее часто встречающихся свойств документа. Это позволяет делать оценки даже для редких комбинаций атрибутов.
Claim 23 (Зависимый от 22): Описывает процесс классификации нового документа.
- Определение свойств документа и инициализация вероятности класса из Attribute Model.
- Оценка встречаемости байтов и обновление вероятности класса из Text Model.
- Выполнение Pruning: отсечение классов, чья вероятность падает ниже порога.
- Присвоение итогового класса на основе финальной вероятности.
Где и как применяется
Изобретение применяется на ранних этапах обработки контента для его корректной классификации.
CRAWLING – Сканирование и Сбор данных
На этом этапе собираются исходные данные, включая сам контент (последовательность байтов), а также сопутствующие метаданные, такие как HTTP-заголовки (Content-Type, Content-Language) и URL (из которого извлекается TLD).
INDEXING – Индексирование и извлечение признаков
Основной этап применения патента. Перед тем как контент будет проанализирован (NLP, извлечение сущностей), система должна точно определить его язык и кодировку.
- Извлечение признаков (Feature Extraction): Извлекаются атрибуты (TLD, HTTP/HTML теги) и текст преобразуется в последовательность байтовых trigrams.
- Классификация (Classification): Classifying Engine применяет Attribute Model и Text Model для вычисления вероятностей и определения наиболее вероятного Language Class.
- Аннотирование и Декодирование: Документ аннотируется идентифицированным языком и кодировкой. Знание кодировки позволяет корректно интерпретировать поток байтов как текст для дальнейшей обработки.
Входные данные:
- Необработанный текст документа (последовательность байтов).
- URL документа (для извлечения TLD).
- HTTP-заголовки (Content-Type, Content-Language).
- HTML-метатеги (CHARSET, LANG).
Выходные данные:
- Идентифицированный Language Class (Язык и Кодировка) для документа.
На что влияет
- Конкретные типы контента: Влияет на все типы индексируемого текстового контента (веб-страницы, новостные сообщения, документы).
- Языковые и географические ограничения: Ключевое значение для международного поиска. Система специально разработана для работы с широким спектром языков и кодировок, включая те, которые используют многобайтовые символы (например, китайский, японский, корейский), благодаря анализу на уровне байтовых триграмм.
Когда применяется
- Условия применения: Применяется каждый раз, когда новый или обновленный документ поступает в систему индексирования.
- Особые случаи: Система особенно полезна в случаях, когда метаданные (атрибуты) отсутствуют, ненадежны или противоречат содержимому текста. Комбинированный подход позволяет сделать обоснованное предположение, опираясь на все доступные сигналы.
Пошаговый алгоритм
Алгоритм состоит из двух основных процессов: Обучение моделей и Классификация документов.
Процесс А: Обучение моделей (Офлайн)
- Подготовка данных: Создание списка Language Classes (Язык/Кодировка). Сбор Training Corpora.
- Нормализация текста: Парсинг и нормализация текста обучающих документов (например, удаление неалфавитных символов, приведение ASCII к нижнему регистру).
- Обучение Attribute Model:
- Для каждого документа извлечь TLD и заявленную кодировку.
- Рассчитать частоту встречаемости пар (TLD, Кодировка) для каждого Language Class.
- Присвоить вероятности P(tld,enc|cls)⋅P(cls). Для редких пар использовать backoff estimate: P(tld|cls)⋅P(enc|cls).
- Обучение Text Model:
- Для каждого документа подсчитать все байтовые триграммы.
- Для каждого Language Class рассчитать условную вероятность каждой триграммы (частота триграммы в классе / общее число триграмм в классе).
Процесс Б: Классификация документов (Индексирование)
- Получение документа и извлечение свойств: Определяются TLD, HTTP-заголовки и HTML-метатеги.
- Инициализация вероятностей: Для каждого возможного Language Class начальная вероятность устанавливается на основе Attribute Model.
- Анализ текста (Триграммы):
- Текст документа нормализуется и разбивается на байтовые триграммы.
- Для каждой триграммы система обновляет вероятность каждого Language Class, используя данные из Text Model (P(trigram|cls)). Вычисления производятся в логарифмическом пространстве для эффективности (умножение заменяется сложением).
- Оптимизация (Pruning): Если в процессе анализа вероятность какого-либо класса падает ниже порога (Low class probability), этот класс исключается из дальнейшего рассмотрения.
- Выбор класса: Выбирается Language Class с наибольшей итоговой вероятностью.
Какие данные и как использует
Данные на входе
Система использует комбинацию технических, контентных и структурных факторов для определения языка.
- Технические факторы:
- TLD (Top Level Domain): Домен верхнего уровня источника документа (например, .jp, .de).
- HTTP-заголовки: Заголовки ответа сервера, в частности Content-Type (для кодировки, например, charset=iso-latin-1) и Content-Language (например, fr).
- Структурные факторы (HTML):
- Метатеги HTML: Теги внутри документа, указывающие кодировку (META CHARSET) или язык (META LANG или атрибут lang).
- Контентные факторы:
- Текст документа (Raw bytes): Содержимое документа анализируется как последовательность байтов после нормализации.
Какие метрики используются и как они считаются
Система использует вероятностные метрики на основе Байесовского классификатора.
- Общая формула классификации: argmax P(text|cls)⋅P(tld,enc|cls)⋅P(cls). Цель — найти класс (cls), который максимизирует это произведение.
- Метрики Attribute Model:
- P(tld,enc|cls)⋅P(cls): Вероятность встретить данную пару TLD и кодировки для данного класса, умноженная на априорную вероятность класса. Рассчитывается на основе частоты встречаемости в обучающем корпусе.
- Backoff Estimate: P(tld|cls)⋅P(enc|cls). Используется, если пара (TLD, enc) встречается редко.
- Метрики Text Model:
- Вероятность триграммы: P(trigram|cls). Частота триграммы в классе, деленная на общее число триграмм в этом классе.
- Вероятность текста: P(text|cls) = ∏ P(trigram|cls). Произведение вероятностей всех триграмм в тексте для данного класса.
- Методы анализа текста: Используется анализ частотности N-грамм на уровне байтов (Byte-level N-gram analysis), конкретно триграммы. Это позволяет работать с любыми кодировками без необходимости предварительного знания языка или структуры слов.
- Нормализация вычислений: Вероятности хранятся и обрабатываются в логарифмическом виде для эффективности (сложение вместо умножения).
Выводы
- Комбинированный подход к идентификации языка: Google не полагается исключительно на текст или исключительно на метаданные (HTML-теги, TLD, HTTP-заголовки). Система использует вероятностную модель, которая взвешивает все доступные сигналы (Attribute Model + Text Model).
- Язык и кодировка как единое целое: Система идентифицирует не просто язык, а Language Class — пару язык/кодировка. Это критично, так как знание языка без знания кодировки не позволяет корректно интерпретировать текст.
- Универсальность через анализ на уровне байтов (Byte-level Analysis): Ключевой особенностью является анализ текста с использованием trigrams байтов. Это позволяет системе эффективно обрабатывать однобайтовые (ASCII) и многобайтовые (например, UTF-8, Shift-JIS) кодировки, не делая предположений о длине символов или границах слов.
- Устойчивость к противоречивым сигналам: Поскольку система является вероятностной, она может обрабатывать конфликтующие сигналы. Например, если метатеги указывают на один язык, а текст статистически соответствует другому, система выберет наиболее вероятный вариант, основываясь на силе сигналов.
- Механизмы эффективности: Система включает механизмы для обработки редких комбинаций атрибутов (Backoff Estimate) и оптимизации скорости классификации (Pruning и использование логарифмических вероятностей).
Практика
Best practices (это мы делаем)
Хотя патент описывает внутренний механизм классификации, он подчеркивает важность правильной технической реализации международного SEO.
- Обеспечение согласованности сигналов: Критически важно, чтобы все сигналы указывали на один и тот же язык и кодировку. TLD (если используется ccTLD), HTTP-заголовки (Content-Language, Content-Type), HTML-атрибуты (lang в теге <html>) и сам текст должны быть согласованы. Это максимизирует уверенность Attribute Model и Text Model в правильной классификации.
- Корректное указание кодировки: Всегда явно указывайте кодировку (предпочтительно UTF-8) через HTTP-заголовок Content-Type и/или HTML-метатег. Это важный входной сигнал для Attribute Model и гарантирует корректную интерпретацию байтов.
- Использование атрибута HTML LANG: Явно указывайте язык контента с помощью атрибута lang в теге <html> (например, <html lang=»en-US»>). Это прямой сигнал для Attribute Model.
- Чистота языка контента: Избегайте смешивания нескольких языков в основном контенте одной страницы. Поскольку Text Model анализирует статистику триграмм, однородный текст на целевом языке обеспечивает более четкий сигнал для классификации.
Worst practices (это делать не надо)
- Противоречивые языковые сигналы: Не допускайте ситуаций, когда HTTP-заголовок указывает один язык, HTML-тег — другой, а текст написан на третьем. Это создает неопределенность в вероятностной модели и может привести к неверной классификации.
- Отсутствие указания кодировки или неверное указание: Отсутствие явного указания кодировки или указание кодировки, не соответствующей фактическому байтовому представлению текста. Это может привести к невозможности корректного декодирования текста и проблемам с индексацией («кракозябрам»).
- Использование языка, не соответствующего ccTLD (без явного таргетинга): Хотя система может определить язык по тексту, использование контента, который сильно не соответствует ожидаемому языку для данного ccTLD (например, сайт на русском языке на домене .de), вносит неопределенность в Attribute Model.
Стратегическое значение
Патент подтверждает, что корректная идентификация языка является фундаментальным этапом индексирования. Для SEO-стратегии это означает, что техническая точность в реализации многоязычных сайтов критически важна. Система Google разработана так, чтобы быть устойчивой к ошибкам в метаданных, полагаясь на статистический анализ самого контента. Однако предоставление четких и согласованных сигналов через атрибуты (HTTP, HTML, TLD) снижает вероятность ошибок классификации и гарантирует, что контент попадет в нужный индекс.
Практические примеры
Сценарий: Запуск нового языкового раздела (Японский) на домене .com.
- Действия SEO:
- Убедиться, что контент сохранен в кодировке UTF-8.
- Настроить сервер на отдачу HTTP-заголовка Content-Type: text/html; charset=UTF-8.
- Добавить HTTP-заголовок Content-Language: ja (полезно).
- В HTML шаблоне указать <html lang=»ja»>.
- Разместить достаточное количество контента на японском языке.
- Как это обрабатывается системой:
- Attribute Model анализирует TLD (.com — нейтральный), HTTP-заголовки (UTF-8, ja) и HTML (lang=ja). Это дает начальное предположение о классе «Японский/UTF-8».
- Text Model анализирует байтовые последовательности японского текста. Паттерны триграмм байтов в UTF-8 для японского языка сильно отличаются от других языков.
- Ожидаемый результат: Система быстро и с высокой степенью уверенности классифицирует страницы как «Японский/UTF-8» благодаря консистентности метаданных и явным текстовым паттернам, обеспечивая корректную индексацию в японском поиске.
Вопросы и ответы
Что такое Language Class в контексте этого патента?
Language Class — это не просто язык документа, а строго определенная пара: язык и кодировка символов (например, Русский/UTF-8 или Японский/Shift-JIS). Google стремится идентифицировать обе составляющие одновременно, так как без знания кодировки невозможно правильно интерпретировать байты текста.
Почему система использует байтовые триграммы (Trigrams) для анализа текста, а не слова?
Использование последовательностей байтов делает систему универсальной и независимой от конкретной кодировки или языка. Чтобы анализировать слова, нужно сначала знать язык (для токенизации) и кодировку. Анализ триграмм байтов позволяет находить статистические закономерности в любых языках, включая многобайтовые кодировки (например, азиатские языки).
Что важнее для определения языка: метатеги (HTML lang, TLD) или сам текст?
Система использует Байесовский классификатор, который объединяет вероятности от обеих групп сигналов (Attribute Model для метатегов/TLD и Text Model для текста). Ни один из них не является абсолютно приоритетным; система ищет комбинацию, дающую наибольшую общую вероятность. Однако статистически значимый объем текста часто может перевесить неверные метатеги.
Как система обрабатывает ситуацию, когда TLD противоречит языку контента (например, домен .de с английским текстом)?
Attribute Model учтет .de как сигнал в пользу немецкого языка. Однако Text Model проанализирует триграммы текста и даст высокую вероятность английскому языку. Итоговое решение будет зависеть от того, какая модель предоставит более сильные статистические доказательства, а также от наличия других атрибутов (например, HTML lang).
Влияет ли этот патент на использование тегов Hreflang?
Патент напрямую не упоминает hreflang. Описанная система фокусируется на определении языка *текущего* документа. Однако корректная работа этой системы критична для того, чтобы Google правильно понял базовый язык каждой страницы, прежде чем применять аннотации hreflang для связывания альтернативных версий.
Что произойдет, если на странице смешано несколько языков?
Система вычислит вероятности для разных языков на основе статистики триграмм всего текста. Если один язык доминирует, он, скорее всего, будет выбран как основной язык документа. Если смешение значительно, уверенность классификации будет ниже. Для SEO лучше избегать смешивания языков в основном контенте.
Что такое Pruning (Отсечение) в процессе классификации?
Это механизм оптимизации скорости. Когда система анализирует текст триграмма за триграммой, она постоянно обновляет вероятности для всех возможных языков. Если вероятность какого-либо языка падает ниже определенного порога, система исключает его из дальнейшего рассмотрения для этого документа, чтобы сэкономить вычислительные ресурсы.
Что такое Backoff Estimate и зачем он нужен?
Это механизм обработки редких данных в Attribute Model. Если определенная комбинация атрибутов (например, TLD=.fr и кодировка=Shift-JIS) встречается очень редко в обучающих данных, система не может надежно оценить их совместную вероятность. Вместо этого она использует «резервную оценку» (backoff estimate), рассматривая вероятность каждого атрибута независимо.
Может ли этот механизм привести к проблемам с индексацией?
Да, если механизм сработает некорректно. Если система неверно определит кодировку, текст будет интерпретирован неправильно (кракозябры), что сделает контент неиндексируемым. Если система неверно определит язык, к контенту будут применены неверные NLP-модели, что снизит его релевантность в поиске на правильном языке.
Что важнее всего для SEO, исходя из этого патента?
Самое важное — это обеспечение максимальной консистентности всех сигналов. Техническое SEO должно гарантировать, что настройки сервера (HTTP-заголовки, кодировка), HTML-разметка (атрибут lang) и сам контент страницы однозначно указывают на один и тот же язык. Это является фундаментом для корректной индексации и международного продвижения.