Начинающие аналитики часто начинают анализ текста с простого поиска ключевых слов. Например, они могут попытаться выявить в тексте словосочетание “great service” (хорошее обслуживание). Затем они могут перейти к поиску этой фразы в контексте предложений: “service was great” или “service is so great”. Однако это очень примитивный подход к анализу текста, который не в состоянии выявить огромное количество важных сведений, поэтому, если пользователи хотят получить более качественный результат в короткие сроки, они скорее всего очень быстро освоят поиск с учетом расстояния между ключевыми словами. Например, можно задать поиск слова “great”, которое находится на расстоянии трех слов от слова “service”. Некоторые аналитики пойдут еще дальше и будут использовать целые списки слов (“awesome”, “good” или “excellent” service) или части речи (прилагательные рядом со словом “service”), для того, чтобы получить более полезные с практической точки зрения результаты. Многие системы анализа текста на этом остановятся.
Для более продвинутого текстового анализа вам понадобится информация о связях и отношениях между словами. Например, предложения “the insured driver hit a bus” и “a bus hit an insured driver” описывают два совершенно разных события, и системе текстового анализа нелегко выяснить, кто является виновником ДТП в каждом случае. При простом поиске запрос на наличие в тексте слов “insured driver”, “hit” и “bus” (именно в таком порядке) позволит распознать первое событие. Но как быть, если в тексте встречается предложение в пассивном залоге – “the insured driver was hit by a bus”? Такое предложение соответствует запросу, но имеет прямо противоположный смысл.
Конечно, существуют разные способы компенсировать отсутствие у компьютеров знаний об отношениях между словами. Например, можно отредактировать запрос и искать все предложения, в которых встречается простое глагольное сказуемое в пассивном залоге “was hit by”. Но здесь необходимо учитывать и многие другие факторы. Например, если не ограничить расстояние между словами, запрос найдет предложение “the insured driver, who drove a red 2008 Ford Focus, hit a bus”. Но этому запросу будет также соответствовать и другое предложение: “the insured driver reported that a red 2008 Ford Focus hit a bus.” Естественный язык очень богат и способен выражать тонкие оттенки значений разными средствами, и поэтому практически невозможно предусмотреть все возможные варианты текстового описания искомого нами события, если только мы не научим компьютеры глубже понимать структуру предложений и связи между словами.
Такое понимание может дать синтаксический парсинг на основе грамматики зависимостей. Например, такой парсинг позволяет определить субъект и объект действия, выраженного глаголом, а также выявить слова, которые являются атрибутами субъекта. Это позволит найти точные ответы на конкретные вопросы, например:
Проехал ли истец на красный свет?
Если машина определит, кто из участников данной ситуации проехал на красный свет, ответ о том, кто является виновником ДТП будет для нее очевиден. В данном случае, слово “claimant” обозначает субъекта действия, выраженного глаголом “run”. Объектом этого глагола является “red light”. Таким образом, компьютер определит, что истец “claimant” выполнил действие “running a red light”, и, вероятнее всего, это и стало причиной последующей аварии.
Какие активы скупают мои конкуренты?
В данном предложении Amazon – субъект действия, Whole Foods – объект покупки. Парсер на основе грамматики зависимостей легко определит это. Рассмотрим похожее предложение:
В данном случае присутствует та же фраза (“Amazon to buy Whole Foods”), но предложение описывает совсем другое приобретение. Теперь в роли покупаемого актива выступает конкурент Whole Foods, компания Trader Joe’s. Такие события (оговоримся, что одно из них реальное, а второе вымышленное), скорее всего, затеряются в пресс-релизах и останутся незамеченными, хотя любая информация о приобретении активов конкурентами может представлять большую ценность.
Как наши клиенты оценивают нашу службу по работе с заказчиками?
В этом предложении парсер на основе грамматики зависимостей корректно определит два важных факта о службе работы с заказчиками: во-первых, то, что служба отлично работает (“outstanding”), а во-вторых, то, что эта служба непосредственно относится к отделу технической поддержки “tech department”.
Существует много способов применения синтаксического парсинга на основе грамматики зависимостей, которые позволят вам более тщательно изучать свои текстовые данные. Конечно, это не решает другие проблемы, связанные с анализом текстов на естественном языке, но о них мы подробнее расскажем в других публикациях в нашем блоге.
Парсер на основе грамматики зависимостей – один из инструментов текстового анализа системы PolyAnalyst, разработанной компанией Megaputer.