Многие люди уже представляют, на что способны компьютеры, анализирующие человеческий язык, благодаря огромному успеху компьютера IBM Watson в викторине
Именно поэтому предприятия имеют чрезвычайно большие ожидания, когда начинают анализировать имеющиеся у них текстовые данные: комментарии клиентов, результаты опросов, медицинские записи – любой текст, хранящийся в базах данных. Если уж путешественники могут перевести свою речь на один из сотни языков за долю секунды, то и компания, безусловно, сможет проанализировать тысячи комментариев клиентов, чтобы выявить самые насущные проблемы. Верно?
Ну, может, и так.
Технологии анализа текста, хоть и позволяют решать масштабные и сложные задачи, вроде преобразования голоса в текст и речевого перевода, но часто не справляются с задачами, которые кажутся гораздо более простыми. И мы по опыту знаем, что, когда компании приступают к анализу собственных текстовых данных, их часто постигает разочарование. Короче говоря, анализировать текст сложнее, чем может показаться. И как главный по данным, вы должны учитывать это при формулировании своих ожиданий.
Цель этой главы – преподать вам основы текстовой аналитики[107], которая позволяет извлекать полезную информацию из необработанного текста. Имейте в виду, что мы коснемся этой развивающейся области лишь вскользь. Однако мы надеемся, что это позволит вам получить некоторое представление о ее возможностях и проблемах. Благодаря этому по мере появления новых разработок в этой области вы сумеете понять, что из них может оказаться полезным, а что – нет. Как и в случае с любым другим направлением, чем больше вы его изучаете, тем лучше представляете его возможности, а также вырабатываете некоторый скептицизм, вполне приличествующий главному по данным.
В следующих разделах мы поговорим о том, как обнаружить структуру в неструктурированных текстовых данных, какому анализу вы можете их подвергнуть, а затем вернемся к вопросу о том, почему крупнейшие технологические компании могут добиться научно-фантастического прогресса в анализе своих текстовых данных, в то время как остальные могут испытывать с этим трудности.
Как текст превращается в числа
Читая текст, люди понимают настроение, сарказм, намеки, нюансы и смысл. Иногда это даже невозможно объяснить: стихотворение вызывает в памяти воспоминание, шутка заставляет смеяться.
Так что совсем не удивительно, что компьютер не понимает смысла так же, как это делает человек. Компьютеры могут лишь «видеть» и «считывать» числа. Чтобы проанализировать массу неструктурированных текстовых данных, их необходимо сначала преобразовать в числа и уже знакомые вам структурированные наборы данных. Это преобразование неструктурированного и запутанного текста, содержащего орфографические ошибки, сленг, смайлики или аббревиатуры, в аккуратный структурированный набор данных из строк и столбцов может быть весьма субъективным и трудоемким процессом. Сделать это можно несколькими способами; три из них мы рассмотрим далее.
Самый простой способ преобразования текста в числа предполагает создание модели «мешка слов», которая игнорирует порядок слов и грамматику. В результате фраза «Это предложение является очень большим мешком слов» преобразуется в набор, называемый документом, в котором каждое слово является идентификатором, а количество слов – признаком. Порядок слов не имеет значения, поэтому мы сортируем содержимое мешка по алфавиту: {большим: 1, мешком: 1, очень: 1, предложение: 1, слов: 1, это: 1, является: 1}.
Прежде чем двигаться дальше, давайте поговорим об облаках слов; это первое, с чем сталкиваются люди, интересующиеся текстовой аналитикой. Облако слов – это простое визуальное представление, в котором размер слова зависит от частоты, с которой оно встречается в словаре. Облако слов из текста данной главы показано на рис. 11.1[108].
Рис. 11.1. Облако слов из текста данной главы