Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

Новые машины, XML и разрешение неоднозначности

Как помочь машине разобраться в контекстуальной информации

Колин Бекингем, исследователь и автор, Freelance
Колин Бекингем (Colin Beckingham) ― независимый исследователь, писатель и программист из Канады. Имеет ученые степени Королевского университета в Кингстоне и Университета Виндзор. Работал в самых разных областях, включая банковские услуги, садоводство, конные скачки, преподавание, гражданскую службу, розничную торговлю, а также путешествия и туризм. Автор приложений на основе баз данных и многочисленных статей в газетах, журналах и в Интернете. В круг его научных интересов входят программирование с открытым исходным кодом, VoIP и управляемые голосом приложения для Linux. Адрес для контактов: colbec@start.ca.

Описание:  Представление о текстовых планшетных компьютерах как об устройствах, предназначенных исключительно для чтения, не учитывает возможностей машин по оказанию помощи читателю. Чтобы поднять текст на более высокий уровень общедоступности, необходимо снабдить машину текстом, лишенным неоднозначности, и инструментами для выполнения более эффективного поиска и анализа. Среду для решения этой задачи может обеспечить XML.

Дата:  14.11.2011
Уровень сложности:  средний PDF:  A4 and Letter (39KB | 9 страница)Загрузить Adobe® Reader®
Активность:  1698 просмотров
Комментарии:  


Нереализованный потенциал

Часто используемые сокращения

  • CSS: Cascading stylesheet – каскадные таблицы стилей
  • HTML: HyperText Markup Language – язык разметки гипертекста
  • IT: Information technology – информационная технология
  • XML: Extensible Markup Language – расширяемый язык разметки

В последнее время планшетные компьютеры привлекают большое внимание в связи с выпуском Amazon Kindle™, Apple® iPad и других устройств. Их портативность и простота использования позволяют отказаться от стандартных печатных СМИ, а их возможности уже выходят за рамки функций настольного компьютера. Такие инструменты подчеркивают недостатки цифрового представления текста: они великолепно отображают его, но только на поверхностном уровне.

В области визуального представления текста проделана огромная работа. CSS решили многие проблемы, связанные с оформлением окна: шрифтов, интервалов, отступов, фона и т.п. – всех визуальных элементов отображения. HTML и JavaScript сделали информацию более наглядной для читателя.

Но машины способны на большее, включая понимание смысла текста до гораздо большей глубины, чем та, которой от них требуют сегодня. Среди множества еще не решенных проблем – по крайней мере, в мире обычной повседневной работы по поиску и письму – разрешение неоднозначности: истинный контекстный поиск и, что еще важнее, способ для программиста сообщить машине контекст в том формате, который она сможет использовать.


Задача разрешения неоднозначности

Неоднозначность ― хорошо известная проблема в области ИТ. Один и тот же набор данных может означать то или это. Проблемы возникают при расшифровке изображений. Что означает изображение, представленное множеством пикселей, и что оно напоминает с точки зрения человеческого сознания? Проблема текста кажется более податливой и в какой-то мере изучается в исследованиях, связанных с запросами на естественном языке и автоматическим (а скорее, неточным) разрешением неоднозначности, однако обычно отображаемый текст по-прежнему несет в себе неопределенности, которые следует разрешить: что автор в действительности имел в виду?

Рассмотрим следующее абстрактное утверждение:

The cow jumped over the moon.

Читателю оно напомнит (скорее всего) о старых временах, когда рифмованный вздор составлял важную часть жизни. Дойная корова, прыгающая через естественный спутник Земли, ― первое, что приходит в голову, но это очень маловероятно. Однако это может означать и другие вещи. Прыгающие коровы обретают больше смысла, если cow – это самка лося, а Moon ― река в Онтарио (или, например, самка буйвола, перепрыгивающая реку с тем же названием, впадающую в Меконг). Что же эта строка означает на самом деле? Ответ зависит от контекста, который отсутствует. Человек способен делать выводы на основе предыдущих знаний. Машина ― нет, и она не в состоянии помочь читателю – это важная задача, которую предстоит решить.


Проблемы неоднозначности

Разрешение неоднозначности текста имеет важное значение по целому ряду причин. Вот некоторые из них.

  • Поисковые запросы. Просят ли известные поисковые системы уточнить запрос? Нет, они полагаются на то, что вы обеспечите достаточную информацию, добавляя термины, и делают предположения, которые часто бывают ошибочными. Иногда вы сами виноваты в неправильном указании терминов, а иногда исходный текст носит неопределенный характер. Опять же, поисковые алгоритмы здесь помочь не могут.
  • Перевод. На каком бы языке не выражалось слово, за немногими исключениями, поисковые системы приводят его к общему корню (концепции), не зависящему от языка. Ссылка на абсолютный корень может помочь сделать перевод более точным.
  • Поиск. Читая текст, человек может поискать слово в словаре, но словарь представляет лишь список альтернатив. Он не скажет вам, какой из альтернативных вариантов имел в виду автор. Автор мог и намеренно писать расплывчато (хотя вряд ли).
  • Машинный анализа. Если ей предоставить точную, однозначную информацию о наборе текстов, машина может компоновать этот набор в соответствии с общими критериями и давать рекомендации относительно других подобных источников информации – продвинутая версия десятичной системы классификации Дьюи.

Как устранить неоднозначность?

Наиболее очевидный способ устранения сомнений ― прямое предварительное указание, содержащее дополнительные конкретные детали, проясняющие контекст. Предоставление дополнительной информации может помочь читателю, поскольку она апеллирует к накопленным за жизнь знаниям, которые человек может использовать для уточнения контекста. Этот процесс может оказаться трудоемким: если читателю приходится прочесть целый абзац, чтобы понять смысл одного слова, то время потрачено впустую, и им лучше было бы распорядиться как-то иначе.

Но как объяснить что-то машине? Чтобы передать смысл, можно:

  • дать ссылку на известное абсолютное значение – например, полностью лишенный неоднозначности список, такой как WordNet (см. ссылку в разделе Ресурсы).
  • указать группу, к которой относится идея (дойная корова и лосиха – животные);
  • сравнить с аналогичной концепцией и указать расстояние, которое их разделяет – то есть, относительную ссылку (дойная корова и лосиха подобны в одном смысле, но различны в другом).

Простое разрешение противоречий

Как программисту, вам интересно узнать о способах позволить машине помочь читателю. Вот пример того, как попросить машину прояснить общую идею:

The <span title='moo-cow, milk cow, etc.' 
    style='color: blue'>cow</span> jumped over the moon.

В этом коде HTML-элемент <span> содержит атрибут title, благодаря которому при наведении мыши на слово в предложении отображаются более конкретные сведения. Читатель видит синий текст – разметку, указывающую, что при желании можно получить дополнительную информацию. Таким образом, каждый раз, когда вы не уверены в значении слова в предложении, достаточно навести указатель мыши на это слово, и появится всплывающее окно со статической пояснительной информацией. Сегодня это обычная практика для браузеров наряду с HTML-тегами <abbr> и <acronym>, а также специальной функцией JavaScript onmouseover(). Все это предполагает, что читатель хорошо знает английский язык.

"Как это утомительно! ― скажете вы. Устранение любых неоднозначностей в тексте займет у автора в десять раз больше времени, чем его написание!" Вот мой ответ: "Не разобьется ли корабль ясности о скалы недостаточного внимания к деталям?" Возможно, потому что у меня есть еще более вопиющее предложение, выходящее за любые вообразимые рамки трудоемкости. Но, конечно, награды достанутся тем, кто сможет облегчить утомительную работу. Следите за развитием событий: должен появиться более легкий и менее утомительный путь.


Продвинутое разрешение неоднозначности

Слово, которое вы видите на странице, подобно верхушке айсберга. Видимая вершина представляется вам (человеку) в форме, которую вы узнаете и можете интерпретировать с учетом контекста, окружающего это слово. Однако под этой вершиной внутри страницы сокрыто много другой информации, такой как ссылки на соответствующие источники как внутри, так и за пределами текущего документа.

Обобщение с помощью XML

С использованием XML эту проблему можно решить следующим образом. Рассмотрим код XML, приведенный в листинге 1.


Листинг 1. Продвинутое обобщение с помощью XML

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Let's call this file myxml.xml -->
<doc>
  <section id='1' hr='The'>The</section>
  <section id='2' hr='cow' wnssid='n02403454'>cow2</section>
  <section id='3' hr='jumped' wnssid='v01963942'>jump16</section>
  <section id='4' hr='over the'>over the</section>
  <section id='5' hr='moon' wnssid='n09358358'>moon2</section>
</doc>

Листинг 1 содержит корневой элемент doc; внутри этого контекста находится ряд элементов section. Каждый элемент section имеет атрибуты, полезные в конкретных условиях, которые могут быть сделаны доступными читателю. Заметьте, что здесь я демонстрирую устранение неоднозначности только существительных и глаголов, чтобы дать общее представление о методе.

Представление XML-документа

Сам XML неудобен для читателя, и в листинге 2 представлен простейший сценарий PHP, который отображает содержимое для общей аудитории.


Листинг 2. Исходное представление

<?php
$xml = simplexml_load_file("myxml.xml"); 
foreach ($xml->section as $sec) {
  echo "$sec ";                  
}
echo "\nDone\n";
?>

Этот код PHP читает XML-данные из листинга 1 в переменную object. Затем с помощью оператора foreach распечатывается содержание элементов section.

В результате получается строка The cow2 jump16 over the moon2, где cow2, jump16 и moon2 ― произвольные метки, бесполезные для машины и для человека, которые используются здесь просто для иллюстрации. (На самом деле это индексные номера, возвращенные в ответ на запрос к моей локальной копии базы данных WordNet.) The cow1 jump3 over the moon1 в этой форме будет означать нечто совершенно иное, но человеку разница не ясна.

Один из ключевых принципов представления заключается в адаптации сообщения к определенной аудитории. В листинге 3 приведена возможная альтернатива для читателя.


Листинг 3. Представление для человека

<?php
$xml = simplexml_load_file("myxml.xml"); 
foreach ($xml->section as $sec) {
  echo $sec['hr']." ";
}
echo "\nDone\n";
?>

Этот код отличается от кода листинга 2 только атрибутом hr (human reader), что приводит к строке The cow jumped over the moon, с которой я начал и которая представляет собой частный случай более полного представления. Но ясности все еще нет.

Наконец, в листинге 4 приведен код для машины.


Листинг 4. Представление для машины

<?php
$xml = simplexml_load_file("myxml.xml"); 
foreach ($xml->section as $sec) {
  echo $sec['wnssid']." ";
}
echo "\nDone\n";
?>

Этот код отличается от листинга 3 тем, что извлекает только wnssid (synsetid из WordNet). Наборы synset, которые хранятся в базе данных и снабжены уникальными ключами в формате annnnnnnn, это группы слов, относящихся к одному и тому же предмету. Результат, n02403454 v01963942 n09358358, сообщает машине содержание, лишенное неоднозначности.

Эта информация слишком специфична для читателя, поэтому инструкция echo в данном контексте делает ее доступной для другой программы, которая анализирует содержание наборов synset и использует соответствующую зависимую информацию, чтобы помочь читателю. Таким способом можно предоставить пользователю соответствующую обогащенную информацию из базы данных WordNet. Cow, jumped и moon можно выделить синим цветом и представлять сведения из WordNet во всплывающем окне, когда читатель наводит указатель на слово (как описано в разделе Простое разрешение противоречий). Например, используя информацию для jumped из набора synset с идентификатором v01963942, можно вывести leap, bound, spring.

Вы, наверное, заметили, что оригинальные слова "The" и "over the" на выходе не появляются. Но они не имеют особого значения, так как предполагается, что внешняя подпрограмма будет реконструировать предложение по-своему с использованием имеющейся информации, возможно, в виде изображений с соединительными стрелками или на языке, в котором нет определенных артиклей. В этом контексте артикли, предлоги, союзы и т.п. не играют никакой роли.

Точно также можно добавить такие атрибуты, как roget='xxx" (см. листинг 5).


Листинг 5. Добавление еще одного атрибута

<section id='3' hr='jumped' 
    wnssid='v01963942' 
    roget='309'>jump16</section>

Этот код делает доступным для машины содержание с исключенной неоднозначностью из Тезауруса Роже – в частности, пункт 309, который дает только значение слова "leap", хотя в других местах в Роже рассматривается и "jump". С учетом аудитории, можно добавить также ссылки на Википедию или что-то еще, что имеет отношение к контексту.


Заключение

Ясно, что XML можно использовать в качестве инструмента для хранения и перекомпоновки неоднозначного текста для разных аудиторий. Но это кажется очень трудоемким. Сегодня почти нет литературы, представленной в таком виде, так что это будет стоить больших усилий, пока не появятся средства для динамического разрешения неоднозначности – сегодня этот процесс очень далек от совершенства.

Возможно, нет необходимости устранять неоднозначность во всем тексте: достаточно тщательно составленной аннотации. Во многих случаях поиск по аннотации, лишенной неоднозначности, обеспечит точный набор результатов при гораздо меньших трудозатратах, так как можно найти больше документов в более короткие сроки (при условии, что аннотация короче, чем текст) и соответственно с меньшей затратой энергии. Примером простого механизма поиска, использующего этот тип исключения неоднозначности, служит DAMSEL (см. раздел Ресурсы).

Стоит ли игра свеч? В какой то мере для уменьшения неопределенности может помочь поиск со сложными терминами "cow water buffalo", если только догадка о том, что имел в виду автор, правильна. Если же автор писал на тайском языке без исключения неоднозначности, то поиск значительно затрудняется.

Говорят, что люди используют всего 10% потенциала своего мозга. Нет никаких причин ограничить машины, уготовив им ту же участь.


Ресурсы

Об авторе

Колин Бекингем (Colin Beckingham) ― независимый исследователь, писатель и программист из Канады. Имеет ученые степени Королевского университета в Кингстоне и Университета Виндзор. Работал в самых разных областях, включая банковские услуги, садоводство, конные скачки, преподавание, гражданскую службу, розничную торговлю, а также путешествия и туризм. Автор приложений на основе баз данных и многочисленных статей в газетах, журналах и в Интернете. В круг его научных интересов входят программирование с открытым исходным кодом, VoIP и управляемые голосом приложения для Linux. Адрес для контактов: colbec@start.ca.

Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Спасибо. Эта запись была помечена для модератора.


Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Сообщение о нарушении не было отправлено. Попробуйте, пожалуйста, позже.


developerWorks: вход


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Выберите ваше отображаемое имя

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

(Должно содержать от 3 до 31 символа.)


Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Оценить эту статью

Комментарии

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=XML
ArticleID=781094
ArticleTitle=Новые машины, XML и разрешение неоднозначности
publish-date=11142011

Теги

Help
Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Используйте ползунок, чтобы отразить больше или меньше тегов.

КнопкаПопулярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere).

Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).

Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Кнопка Популярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere). Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).