Основные сведения о компонентах ресурсов языка
Языковые ресурсы состоят из средств разбиения по словам и стеммеров, которые расширяют возможности создания и выполнения запросов к индексу для новых языков и языковых стандартов. Средства разбиения по словам используются как во время создания индекса, так и для запросов. Стеммеры используются только для запросов. Поиск Windows использует языковые DLL-библиотеки для привязки к реализациям IWordBreaker и IStemmer для определенного языкового стандарта.
Этот раздел организован следующим образом:
Сведения о языковых ресурсах
Поиск Windows использует фильтр (реализацию интерфейса IFilter) и интерфейс ILoadFilter для доступа к документу в собственном формате. Компонент IFilter извлекает текстовое содержимое, свойства и форматирование из документа. IFilter определяет локаль документа, который он фильтрует. Компонент индексирования вызывает соответствующий средство разбиения слов для этого языкового стандарта. Если ни один недоступен, компонент индексирования вызывает нейтральное средство разбиения слов. Средство разбиения слов получает от IFilterвходной поток символов Юникода, который средство разбиения слов анализирует для создания отдельных слов и фраз. Средство разбиения слов также нормализует форматы даты и времени. Индексатор нормализует слова, созданные средством разбиения слов, преобразовав слова во все прописные буквы. Индексатор сохраняет заглавные слова в полнотекстовый индекс, за исключением шумовых слов, определенных для этого региона.
В следующей таблице перечислены действия и соответствующие результаты предложения "Рис. 1 иллюстрирует роль языковых ресурсов для поиска Windows во время процесса создания индекса".
Действие | Результирующий текст |
---|---|
Исходный текст | На рисунке 1 показана роль языковых ресурсов для поиска Windows во время процесса создания индекса. |
Фильтрация | На рисунке 1 показана роль языковых ресурсов для поиска Windows во время процесса создания индекса. |
Разделение слов | На рисунке 1 показана роль языковых ресурсов для Windows Search во время процесса создания индекса. |
Нормализация | РИСУНОК 1 ИЛЛЮСТРИРУЕТ РОЛЬ ЯЗЫКОВЫХ РЕСУРСОВ ПОИСКА WINDOWS ВО ВРЕМЯ ПРОЦЕССА СОЗДАНИЯ ИНДЕКСА |
Удаление шумовых слов | Рисунок иллюстрирует роль языковых ресурсов в процессе создания индекса в поиске Windows. |
Сохранение в полнотекстовый индекс | На рисунке показана роль языковых ресурсов Windows в процессе создания индекса поиска. |
Средства разбиения по словам и стеммеры используются для расширения FREETEXT запросов в момент запроса. Языковой стандарт запроса является языковым стандартом по умолчанию, если идентификатор кода языка (LCID) не передается в качестве параметра запроса. Компонент запроса вызывает соответствующее средство разбиения слов по терминам запроса, перечисленным в предложении WHERE . Например, если предложение WHERE запроса содержит FREETEXT (яблоки, апельсины и груши), средство разбиения слов получает текст, "яблоки, апельсины и груши". Если предложение WHERE запроса использует CONTAINS предикате полнотекстового текста, то выходные данные текста из средства разбиения слов нормализуются. В противном случае компонент запроса передает каждое слово, определяемое средством разбиения слов, в соответствующий скрипт для этого языка и языкового стандарта. Стеммер создает список альтернативных или перегибаемых форм для этого слова. Компонент запроса нормализует расширенный список терминов запроса и удаляет шумовые слова.
В следующей таблице перечислены действия и соответствующие результаты запроса "яблоки, апельсины и груши".
Действие | Результирующий текст |
---|---|
Исходный текст | яблоки, апельсины и груши |
Критические слова | яблоки, апельсины и, груши, EOS |
Стемминг | яблоко, яблоки, апельсин, оранжевый, апельсины, и, груша, груши |
Нормализация | ЯБЛОКО, ЯБЛОКИ, АПЕЛЬСИН, ОРАНЖЕВЫЙ, АПЕЛЬСИНЫ, И, ГРУША, ГРУШИ |
Удаление шумового слова | ЯБЛОКО, ЯБЛОКИ, АПЕЛЬСИН, ОРАНЖЕВЫЙ, АПЕЛЬСИНЫ, ГРУША, ГРУШИ |
Расширенный список терминов запроса | ЯБЛОКО, ЯБЛОКИ, АПЕЛЬСИН, ОРАНЖЕВЫЙ, АПЕЛЬСИНЫ, ГРУША, ГРУШИ |
Развернутые термины запроса повышают вероятность того, что запрос найдет документы, соответствующие намерению исходного запроса. Текст, который создает средство разбиения слов или стеммер во время запроса, не хранится на диске.
Разделение слов
Разбиение слов — это разделение текста на отдельные текстовые токены или слова. Многие языки, особенно с римскими алфавитами, имеют массив разделителей слов (таких как пробелы) и препинания, которые используются для распознавания слов, фраз и предложений. Средства разбиения слов должны полагаться на точные эвристики языка, чтобы обеспечить надежные и точные результаты. Разбиение слов более сложно для систем письма, основанных на символах или алфавитах, где значение отдельных символов определяется из контекста. Дополнительные сведения о лингвистических и юникодных соображениях, которые могут повлиять на реализацию средства разбиения слов, см. в Лингвистике и Юникоде.
Стемминг
Поиск Windows применяет стеммеры исключительно во время запроса для создания дополнительных форм слов для терминов в FREETEXT и запросов по свойствам. Стеммеры выполняют морфологический анализ и применяют грамматические правила для создания списка альтернативных или перегибаемых форм для слов. Альтернативные формы часто имеют одинаковые стебли или базовые формы. Создавая инфильтрированные формы для слова, служба индексирования возвращает результаты запросов, которые статистически более релевантны для запроса. Например, полнотекстовый запрос на "соревнование по плаванию" соответствует документам, которые содержат "плавать, плавания, плавает, плавают, плавающий, плавал, проплыл" или "встреча, встречи, встречает, встречаются, встречался, встретился" и комбинации этих терминов.
Для некоторых языков требуется создание форм со стандартными и вариантными окончаниями как на этапе индексации, так и на этапе выполнения запроса. В этом случае в компоненте для разбиения слов процесс стемминга происходит с минимальной работой самого стеммера. Например, японское средство разбиения слов выполняет стемминг во время создания индекса и запроса, чтобы запрос мог находить различные словоизменённые формы терминов поиска.
Нормализация
Документы всех языков хранятся в одном индексе. Хотя слова и лингвистические правила значительно отличаются, существуют некоторые аспекты, такие как числа, даты и время, которые обрабатываются согласованно во всех разбиениях слов. Для получения дополнительной информации о нормализации форм, которая может повлиять на реализацию средства разбиения слов, см. в "Surface Form Normalization".
Шумные слова
Шумные слова, также известные как стоп-слова, являются словами, которые не являются значительными индикаторами для содержимого. Служба индексирования удаляет шумовые слова из терминов запроса и из содержимого, включенного в полнотекстовый индекс. Смещение — это вхождение слова в документ или список терминов запроса. Смещение шумовых слов в документе или запросе записывается как пустое. Удаление шумовых слов повышает производительность запросов, избегая роста ненужных индексов. Он также повышает релевантность результатов запроса. Поиск Windows можно настроить для использования списков шумных слов для определенных языков. Эти списки используются при вызове средства разбиения слов для этого языка. Например, "the" в английском языке встречается так часто, что оно имеет мало ценности в качестве уникального ключа. "«The» находится в списке шумовых слов, не записывается в индекс содержимого и, если его запрашивают, не возвращает результаты."
Шумовые слова действуют как заполнители в запросах фраз. Документ, содержащий текст "wag собака" хранится в индексе с "wag" при возникновении 1 и "собака" при вхождения 3. Фразовый запрос "wag dog" не соответствует, но фразовый запрос "wag a dog" соответствует, потому что информация об их возникновении совпадает. Фраза "фиолетовая собака wag" не совпадает, потому что "фиолетовая" не найдена на второй позиции в индексе. Тем не менее, запрос "wag the dog" возвращает документы, содержащие "wag purple dog", потому что нет способа эффективно определить, было ли в документе некое не 'шумовое' слово между "wag" и "dog".
Связанные разделы