распознание смысла текста
От: RobinHood  
Дата: 15.11.10 22:38
Оценка:
Всем доброго времени суток.
Не подскажите какие на сегоднешний день сушествуют алгоритмы ,которые определяют о чем данный текст.
Например если на вход приходит интернет страничка , то допустим там есть слово самолет , но текст может быть о
самолетостроении , истории самолетов или билетах на самолет(тур агенство).
Я понимаю что наверное банально так подходить к задаче , но все же очень интересно какие существуют решения.

Заранее спасибо.
Олег
Re: распознание смысла текста
От: andy1618 Россия  
Дата: 16.11.10 02:37
Оценка: 9 (3) +4
Здравствуйте, RobinHood, Вы писали:


RH>распознание смысла текста


1. Плохие новости.
В общем случае задача нерешаемая, т.к. смысл не содержится в тексте, а вызывается текстом в голове данного конкретного читателя.

Вот пример из книги "Машинное понимание текстов с ошибками" (В.С.Файн, Л.И.Рубанов, М.:Наука, 1991):

... Так, вопрос, адресованный участнице курортного знакомства, "Ты помнишь июнь?", конечно же, имеет целью не напоминание о том, что между маем и июлем текущего года имелся июнь, а побуждение ее к формированию в мозгу сложнейшего комплекса, включающего и зрительные образы моря, луны и т.д., и слуховые, и обонятельные воспоминания, и определенное настроение, и чувство влечения к автору текста, и многое другое. Разумеется, всё это ни в коей мере не содержится в словосочетании "Ты помнишь июнь?". Последнее, очевидно, является лишь кодом, запускающим у слушательницы механизм формирования указанного комплекса. В свою очередь, ответ "Да" или "Нет", полученный автором вопроса, вызывает в его мозгу целый мир образов и переживаний, соответственно радостных или горестных. Разумеется, смысл, вызываемый в этой ситуации словом "Да", не имеет ничего общего со смыслом, вызываемым тем же ответом при выяснении, например, готовности яичницы.



2. Хорошие новости.
Если жёстко ограничить предметную область, и, самое главное, стиль анализируемых текстов, то кое-что сделать можно. Вот несколько уровней подхода, от простого к сложному:
1) анализ статистики отдельных словоформ без учёта морфологии (слова "иду", "идёт", "шёл" будут считаться разными)
2) +анализ словосочетаний (пары/тройки/... соседних слов)
3) +учёт морфологии (для слов "иду", "идёт", "шёл" будет выявлена их начальная форма — "идти")
4) +снятие омонимии ("Закрой замок на замок, чтобы замок не замок.")
5) и т.д. и т.п. (анализ синтаксиса, семантики, прагматики, расширенная графематика, интернет-сленг, ...)

К вопросу о сложности: в современных крутых поисковых системах (Яндекс, Гугл, ...) уже давно на приемлемом уровне решена проблема морфологического анализа, но вот с омонимами пока беда!

Для разминки, наверное, стоит поискать существующие онлайн-системы анализа текстов (например, Семантическое зеркало) — как минимум, это будет полезно для осознания масштаба проблемы
Re[2]: распознание смысла текста
От: Aleх  
Дата: 16.11.10 08:50
Оценка: 2 (1) -3
Здравствуйте, andy1618, Вы писали:

A>Здравствуйте, RobinHood, Вы писали:



RH>>распознание смысла текста


A>1. Плохие новости.

A>В общем случае задача нерешаемая, т.к. смысл не содержится в тексте, а вызывается текстом в голове данного конкретного читателя.

A>Вот пример из книги "Машинное понимание текстов с ошибками" (В.С.Файн, Л.И.Рубанов, М.:Наука, 1991):

A>

... Так, вопрос, адресованный участнице курортного знакомства, "Ты помнишь июнь?", конечно же, имеет целью не напоминание о том, что между маем и июлем текущего года имелся июнь, а побуждение ее к формированию в мозгу сложнейшего комплекса, включающего и зрительные образы моря, луны и т.д., и слуховые, и обонятельные воспоминания, и определенное настроение, и чувство влечения к автору текста, и многое другое. Разумеется, всё это ни в коей мере не содержится в словосочетании "Ты помнишь июнь?". Последнее, очевидно, является лишь кодом, запускающим у слушательницы механизм формирования указанного комплекса. В свою очередь, ответ "Да" или "Нет", полученный автором вопроса, вызывает в его мозгу целый мир образов и переживаний, соответственно радостных или горестных. Разумеется, смысл, вызываемый в этой ситуации словом "Да", не имеет ничего общего со смыслом, вызываемым тем же ответом при выяснении, например, готовности яичницы.

A>
Это какое то словоблудие.
На самом деле, фразу "Ты помнишь июнь?", просто напросто надо понимать как устоявшееся шаблонное выражение и переводить во фразу "Ты помнишь, что было в июле(и естли нет, то вспоминай)?" Если же эта фраза содержится в тексте и разговор происходил между двумя персонажами, то единственное, что узнает читатель — так это то, что один герой побудил другого вспомнить, что было в июле. А в голове читателя, никаких образов это вызывать в общем случае не должно. И если в голове ТП это вызывает, сложнейший комплекс ощущений, включающий зрительные и слуховые образы моря и луны, то это не общий случай.

И если пользователем системы, определяющей смыслы текста, будет ТП, то нужен дополнительно ещё один алгоритм — ассоциативный — то есть банально множество соответствий слов/фраз и эмоций.
Таким образом, если нужно вызвать определнную эмоцию, мы показываем ТП текст, содержащий определнные слова и фразы.
Кстати, базу данных можно сделать, проанализировав посты ТП в дненичке. Они обычно состоят из самого бессмысленного текста, содержащего слова-эмоции и настроения в котором писался этот пост.
Re: распознание смысла текста
От: Maktub  
Дата: 16.11.10 11:42
Оценка: 3 (1)
Здравствуйте, RobinHood, Вы писали:

RH> Не подскажите какие на сегоднешний день сушествуют алгоритмы ,которые определяют о чем данный текст.


Посмотрите в сторону латентного семантического анализа. Несмотря на обилие математики, идея очень проста. К сожалению, реализация на практике особенно для большого количества текстов, требует много вычислительных ресурсов. Менее ресурсоемкий но идейно похожий вариант я видел в библиотеке semanticvectors.
Re[3]: распознание смысла текста
От: andy1618 Россия  
Дата: 17.11.10 09:11
Оценка:
Здравствуйте, Aleх, Вы писали:

A> проанализировав посты ТП в дненичке. Они обычно состоят из самого бессмысленного текста, содержащего слова-эмоции и настроения в котором писался этот пост.


Дык об том и речь! Отличный пример! Получается, что текст в дневнике будет легко воспринят подругами этой девушки, в то время как этот же текст для человека со стороны будет пустым набором слов или даже знаков (учитывая современную моду на "йа тя о4 лю!")
Re: распознание смысла текста
От: ettcat США  
Дата: 21.11.10 18:07
Оценка: 5 (2)
Вот, посмотрите, возможно и не нужно решать общую задачу понимания текста, а достаточно решить проработанные задачи.

1. Fact extraction
Есть текст(ы), может быть база знаний о предметной области (может и не быть). Цель — собрать из текстов упоминаемые объекты и связи между ними. Например из новостного потока выделять упоминаемых людей, должности компании в которых они работают и т.д. Также требуется чтоб собираемые отношения не были противоречивы (в том числе уже собранной базе знаний). См. Яндекс: Пресс-портреты
Эта тема достаточно проработана, так как здесь не нужен глубокий анализ текста. См. презентацию того же Яндекса: Автоматическое извлечение фактов из текста на примере сервиса Яндекс.Пресс-портреты, материалы конференции MUC (Message Understanding Conference).

2. Классификация (кластеризация)
Есть корпус текстов, и может быть есть размеченный корпус (часть текстов пометили нужными тегами люди). Нужно отнести тексты к заданному набору классов. Например (google mail): есть классы — spam/normal/important. Нужно каждое входящее письмо пометить этими метками. В случае important есть размеченный пользователем набор писем.
Самый простой метод — наивный байес, который в некоторых случаях дает приемлимый результат. Вообще методов много (SVM, Maximum entropy/logistic regression, TreeNet, +Boosting, +feature selection, etc).

3. Opinion extraction
Для заданного текста выяснить эмоциональную окраску. Например, выяснить сколько сообщений о данном ресторане положительны а сколько — отрицательны.
Пример — Yelp, Bing Shopping см. scorecard.
Методы решения, в частности, рассмотрены в книге Bing Liu "Web Data Mining"

Есть еще сопутствующие задачи — как Part-of-speech tagging, stemming/lemmatization. Хороший обзор таких базовых задач и методов решения можно посмотреть в книге Jurafsky, Martin "SPEECH and LANGUAGE PROCESSING"
Re[4]: распознание смысла текста
От: wvoquine  
Дата: 21.11.10 21:19
Оценка:
Здравствуйте, andy1618, Вы писали:

A>Здравствуйте, Aleх, Вы писали:


A>> проанализировав посты ТП в дненичке. Они обычно состоят из самого бессмысленного текста, содержащего слова-эмоции и настроения в котором писался этот пост.


A>Дык об том и речь! Отличный пример! Получается, что текст в дневнике будет легко воспринят подругами этой девушки, в то время как этот же текст для человека со стороны будет пустым набором слов или даже знаков (учитывая современную моду на "йа тя о4 лю!")


А это уже похоже на проблему радикального перевода, как в случае со словом gavagai, которую обнаружил Уиллард ван Орман Куайн. Но сама по себе проблема, по-моему, лишь уточняет ошибочность задачи: понятие "смысла" шатко. Ведь, если комплексы ощущений свести к физиологическим реакциям... Сами эти реакции также, будучи описанными некоторой теорией, будут подвержены той же проблеме радикального перевода. В общем, возможно, смысл — это не совсем то, что мы хотим узнать, когда узнаём "смысл предложения".

Потому, вполне возможно, что Alex прав в том, что пренебрегает изначальной задачей.
To be is to be the value of a variable
Re: распознание смысла текста
От: Кодёнок  
Дата: 22.11.10 07:33
Оценка: 12 (2)
Здравствуйте, RobinHood, Вы писали:

RH> Не подскажите какие на сегоднешний день сушествуют алгоритмы ,которые определяют о чем данный текст.


Как уже правильно написали, текст смысла не содержит вовсе. Текст это вроде программного кода, который вызывает у получателя в воображении нужное понимание. Или не вызывает — все зависит от его образования, эрудиции, психического состояния и т.д. Так что задача извлечения смысла не имеет определения.

RH> Я понимаю что наверное банально так подходить к задаче , но все же очень интересно какие существуют решения.


Есть системы, которые вручную обучены понимать некоторую часть common sense.

Например, компания powerset имела проект с небольшой выборкой статей из википедии, способный на запрос "how old is bill gates" выдать "Born 1955 = 55 years". Их купила Microsoft и работа используется в Bing.

Можете проверить: запрос в bing.com "how old is bill gates" подсвечивает жирным дату его рождения в результатах поиска.

К сожалению, дальше тех наработок powerset-а бинг судя по всему не идет (например запрос “when the ladytron band formed” не подсвечивает наипрямейший ответ “Ladytron formed in the summer of 1999 ...”, много раз встречающийся в результатах). Есть подозрение, что цель покупки сводилась к получению рекламного преимущества над Google и никаких прорывов в AI там делать и не собираются.

Также можешь ознакомиться с Wolfram http://www.wolframalpha.com/ Это база данных по общеизвестным числовым фактам, способная ответить на запрос “weight of an egg” (выдает: 35 gramms).
Re: распознание смысла текста
От: Аноним  
Дата: 25.01.11 13:39
Оценка:
Здравствуйте, RobinHood, Вы писали:

RH>Всем доброго времени суток.

RH> Не подскажите какие на сегоднешний день сушествуют алгоритмы ,которые определяют о чем данный текст.
RH>Например если на вход приходит интернет страничка , то допустим там есть слово самолет , но текст может быть о
RH>самолетостроении , истории самолетов или билетах на самолет(тур агенство).
RH>Я понимаю что наверное банально так подходить к задаче , но все же очень интересно какие существуют решения.

RH>Заранее спасибо.

RH>Олег

топик старый конечно, а вдруг кто ответит

не пойму, почитав википедию и прочее, про классификацию текстов.. в идее все как: сначала учимся — берем текст, заведомо относящийся к определенной категории, выделяем основу слов, и набираем статистику

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

вероятность текста быть спамом = (вероятность, что текст спам на основе наблюдений) * произведение вероятностей каждого слова из текста быть в категории спам

но умножая числа меньше единицы очень быстро ведь получаем число -> 0? — может я чего-то не понимаю в формулах этих (не математик, да и не програмист настоящий)
спам байес классификатор
Re[2]: распознание смысла текста
От: sanok  
Дата: 26.01.11 11:06
Оценка: 3 (1)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, RobinHood, Вы писали:


RH>>Всем доброго времени суток.

RH>> Не подскажите какие на сегоднешний день сушествуют алгоритмы ,которые определяют о чем данный текст.
RH>>Например если на вход приходит интернет страничка , то допустим там есть слово самолет , но текст может быть о
RH>>самолетостроении , истории самолетов или билетах на самолет(тур агенство).
RH>>Я понимаю что наверное банально так подходить к задаче , но все же очень интересно какие существуют решения.

RH>>Заранее спасибо.

RH>>Олег

А>топик старый конечно, а вдруг кто ответит


А>не пойму, почитав википедию и прочее, про классификацию текстов.. в идее все как: сначала учимся — берем текст, заведомо относящийся к определенной категории, выделяем основу слов, и набираем статистику


А>теперь берем неизвестный текст, для каждого слова определяем вероятность его попадания в ту или иную категорию; вероятность никак не более единицы, так же?.. дальше, чтобы оценить вероятность попадания всего документа в ту или иную категорию (как правило в статьях берут пример спам/не спам), надо использовать теорему байеса (или хрен знаю, что это), ну когда игнорируют связь между словами в тексте, а просто считают, что


А>вероятность текста быть спамом = (вероятность, что текст спам на основе наблюдений) * произведение вероятностей каждого слова из текста быть в категории спам


А>но умножая числа меньше единицы очень быстро ведь получаем число -> 0? — может я чего-то не понимаю в формулах этих (не математик, да и не програмист настоящий)


В конце концов для принятия решения (спам/не спам) важны относительные значения вероятностей, поэтому при вычислении вероятностей можно не вычислять нормирующий множитель. Вычисляемые таким образом "вероятности" стремятся к 0, но их отношение в общем случае может не стремится к 0. Чтобы избежать вычислительных проблем связанных с представлением чисел с конечной точностью, можно вместо перемножения вероятностей складывать их логрифмы.
Re[3]: распознание смысла текста
От: Аноним  
Дата: 26.01.11 11:45
Оценка:
S>В конце концов для принятия решения (спам/не спам) важны относительные значения вероятностей, поэтому при вычислении вероятностей можно не вычислять нормирующий множитель. Вычисляемые таким образом "вероятности" стремятся к 0, но их отношение в общем случае может не стремится к 0. Чтобы избежать вычислительных проблем связанных с представлением чисел с конечной точностью, можно вместо перемножения вероятностей складывать их логрифмы.

ага.. так в конце-концов и сделал, суммирую логарифмы

главное, все ж в той же вики написано, но почему-то игнорировал
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.