Аналіз тексту за допомогою аналітичних служб Bluemix

  1. Налаштування середовища Eclipse для аналітика тексту
  2. Створення проекту аналізу тексту
  3. План аналізу тексту в Eclipse
  4. Аналіз результатів за допомогою функції R
  5. висновок
  6. Ресурси для скачування

Змістовний аналіз, або просто пошук закономірностей в тексті, - це один з ключових інструментів, які багато компаній використовують для визначення потреб клієнтів, контролю репутації своїх брендів або спостереження за діяльністю конкурентів. В якості вхідних даних для такого аналізу часто використовують дані з Twitter і Facebook. У цьому керівництві ми покажемо, як легко отримати цінну інформацію за допомогою такого аналізу. В якості теми для свого прикладу ми використовуємо телевізійну премію «Еммі» -2014. З веб-сайту USA Today ми взяли два списки номінантів. У першому перераховані актори, а в другому - телесеріали. Ці списки використовуються для створення словників, за якими виконується аналіз тексту.

Що потрібно для програми:

  • Eclipse Classic 4.2.2
  • Обліковий запис IBM Bluemix .

Налаштування середовища Eclipse для аналітика тексту

Якщо на комп'ютері вже встановлена ​​Eclipse 4.2.2, достатньо додати або встановити плагін InfoSphere® BigInsights Eclipse tools.

  1. Увійдіть в обліковий запис Bluemix. У меню натисніть кнопку Catalog і знайдіть розділ Big Data. Потім виберіть IBM Analytics for Hadoop. Змістовний аналіз, або просто пошук закономірностей в тексті, - це один з ключових інструментів, які багато компаній використовують для визначення потреб клієнтів, контролю репутації своїх брендів або спостереження за діяльністю конкурентів
  2. У вікні, відкрийте список App та виберіть Leave unbound. Дайте своїм уподобанням власне ім'я; свої ми назвали My Analytics for Hadoop. Натисніть кнопку Create.
  3. Відкриється сторінка служб. Натисніть кнопку Launch.
  4. Відкриється початкова сторінка InfoSphere BigInsights Enterprise Edition. У розділі Quick Links виберіть Enable your Eclipse development environment for BigInsights application development .
  5. InfoSphere BigInsights Eclipse tools можна встановити двома способами: з веб-сервера або з ZIP-файлу. Скористаємося другим способом. Скачайте файл BigInsigthsEclipseTools.zip.
  6. Тепер потрібно встановити плагін в Eclipse IDE. Відкрийте Eclipse і виберіть Help> Install New Software.
  7. Натисніть кнопку Add поруч з полем Work with, потім виберіть файл BigInsightsEclipseTools.zip (який ви завантажили) на своєму комп'ютері та натисніть кнопку ОК.
  8. Перевірте категорію InfoSphere BigInsights і всі її функції, потім натисніть кнопку Next. (Переконайтеся, що встановлено прапорець Group items by category, щоб була видна категорія і її функції).
  9. Дотримуйтесь інструкцій по установці.
  10. Якщо з'явиться попередження безпеки, натисніть кнопку ОК.
  11. Перезапустіть Eclipse, коли з'явиться запит.

Створення проекту аналізу тексту

Необхідно створити новий проект аналізу тексту в Eclipse IDE.

  1. У Task Launcher for Big Data перейдіть на вкладку Develop і на панелі Tasks виберіть Create a text extractor.
  2. Дайте своїм проектом ім'я (пропонуємо: MyEmmy_textAnalytics) і натисніть кнопку Finish.
  3. Натисніть кнопку Yes, щоб при появі відповідного запиту перейти до подання InfoSphere BigInsights.
  4. Створіть папку для файлів даних. У поданні Project Explorer розгорніть папку свого проекту, щоб знайти папку textAnalytics. Клацніть на ній правою кнопкою миші: New> Folder. Введіть ім'я папки (пропонуємо: data) і натисніть кнопку Finish.
  5. Тепер можна перемістити дані в цю папку. Виберіть тільки що створену папку, скопіюйте файли даних зі свого комп'ютера і вставте їх в папку Eclipse. Також можна імпортувати файли з даними (File> Import) або перетягнути їх з локальної файлової системи в тільки що створену папку Eclipse.
  6. Створіть папку для словників. Розгорніть папку проекту в поданні Project Explorer, виберіть папку textAnalytics і клацніть на ній правою кнопкою миші: New> Folder. Введіть в якості імені папки dictionaries (можна вибрати й інше ім'я, але це призведе до розбіжностей з цією статтею) і натисніть кнопку Finish.
  7. Тепер можна перенести файли словників у щойно створену папку. Існує два словника з номінантами Міжнародної премії Еммі: словник усіх акторів і актрис (emmy_actors.dict) і словник усіх телесеріалів (emmy_series.dict). Дані, папки словників і файли показані на наступному малюнку.

Тепер можна приступати до створення програми аналізу тексту.

План аналізу тексту в Eclipse

У цьому розділі ми виконаємо в Eclipse план аналізу тексту для розробки екстрактора.

  1. Спочатку потрібно вказати, де знаходяться дані. У поданні Extraction Tasks перейдіть до пункту Step 1: Select Documents і натисніть кнопку Browse Workspace. Виберіть свою папку з даними (з ім'ям data, створену в попередньому розділі) і натисніть кнопку ОК.
  2. В поле Language виберіть мову даних. Для англійської мови виберіть en. Щоб використовувати іншу мову, можна переглянути всі підтримувані мови і їх коди на сторінці Supported languages.
  3. На кроці 1b виберіть один з файлів даних і натисніть кнопку Open. На цьому перший крок робочого процесу завершено.
  4. На другому кроці ми помітимо приклади в своїх даних. Це допоможе при розробці екстрактора. У файлі data1.txt виберіть Veep, клацніть правою кнопкою миші і натисніть Add example with New Label.
  5. Введіть свою мітку (пропонуємо: MyEmmy_series) в поле Label Name і залиште поле Parent порожнім. Натисніть кнопку Finish.
  6. Виберіть інший телесеріал (наприклад, Breaking Bad), клацніть правою кнопкою миші, виберіть Label example as, потім натисніть на ім'я, вибране для прикладу на попередньому кроці.
  7. Тепер створимо ще одну мітку для акторів і актрис. У файлі data1.txt виберіть Jay Kulick, клацніть правою кнопкою миші і натисніть Add example with New Label.
  8. Введіть ім'я своєї мітки (пропонуємо: MyEmmy_actors) в поле Label Name і знову залиште поле Parent порожнім. Натисніть кнопку Finish.
  9. Виберіть іншого актора (наприклад, Tony Hale), клацніть правою кнопкою миші, виберіть Label example as, потім натисніть на ім'я, вибране для прикладу на попередньому кроці.

    На другому кроці ми вибрали приклади акторів і телесеріалів з файлу data1.txt і позначили їх. А саме, ми вибрали телесеріали Veep і Breaking Bad і акторів Jay Kulick і Tony Hale. Ми не створюємо інших міток, тому що хочемо просто знайти акторів і телесеріали в своїх даних. Ви можете продовжити маркування тексту, додаючи нові приклади акторів і телесеріалів. В кінці можна подивитися всі відмічені приклади в поданні Extraction Plan. При подвійному натисканні на одному з них він буде виділений в тексті.

    При подвійному натисканні на одному з них він буде виділений в тексті

  10. На третьому кроці робочого процесу ми створимо екстрактор. У поданні Extraction Plan клацніть правою кнопкою миші на своїй першій мітці (MyEmmy_series, якщо ви дали їй запропоноване ім'я) і виберіть New AQL Statement> Basic Feature AQL Statement.
  11. Введіть ім'я свого уявлення (пропонуємо: MyEmmy_seriesView) в поле View Name, а в поле AQL Module залиште значення за замовчуванням. Потім вкажіть ім'я сценарію (пропонуємо: MyEmmy_seriesView.aql) в поле AQL script. В поле Type виберіть тип оператора extract. Детальніше див. У довідці The Extract Statement. Тут ми використовуємо в якості типу своїх екстракторів словник, тому виберіть зі меню варіант dictionary. Нарешті, встановіть прапорець Output view і натисніть кнопку ОК.
  12. У редакторі відкриється файл AQL з помилками. Ми повинні просто виправити їх. Почнемо з наступного коду: create dictionary MyEmmySeriesViewDict from file '<path to your dictionary here>' with language as 'en' ;.
  13. Замініть <path to your dictionary here> на шлях до словників з телесеріалами: ../../dictionaries/emmy_series.dict. ../ використовується тому, що папка зі словниками знаходиться в папці textAnalytics, а поточним каталогом є модуль Emmy_series_BasicFeatures. Інакше, можна просто перемістити словник на рівень свого файлу AQL. Це можна зробити в поданні Project Explorer. Також можна створити словники з прикладів, позначених на попередніх кроках, або додати їх до існуючих словників.
  14. Тепер попрацюємо з наступною частиною коду: create view MyEmmySeriesView as extract dictionary MyEmmySeriesViewDict on R. <input column> as match from <input view> R ;.
  15. Замініть <input column> на text і <inputview> на document і збережіть файл. У вас повинен вийти код, аналогічний наведеному нижче, і без помилок. module MyEmmy_series_BasicFeatures; create dictionary MyEmmySeriesViewDict from file '../../dictionaries/emmy_series.dict' with language as 'en'; create view MyEmmySeriesView as extract dictionary MyEmmySeriesViewDict on R.text as match from Document R; output view MyEmmySeriesView;
  16. Тепер перевіримо свій екстрактор. Існує три способи його запуску: виконати план пошуку по всій колекції даних, по набору обраних документів або по набору помічених документів. Виберіть третій варіант: Run the extraction plan on the set of documents that are labeled .
  17. Результати показані в поданні Annotation Explorer - а саме, в стовпці Span Attribute Value.
  18. Тепер можна відзначити цей пункт як виконаний. Клацніть правою кнопкою миші на імені мітки і виберіть Mark Completed.
  19. Тепер потрібно повторити той же процес для мітки MyEmmy_actors. Повторіть кроки 10-18 цього розділу для кожної залишилася мітки (в нашому випадку залишилася тільки мітка MyEmmy_actors зліва). Тут можна створити своє власне уявлення в тому ж файлі AQL, що і попереднє, або створити для нового подання іншої aql-файл. Якщо ви вирішили включати додаткові уявлення в той же модуль, ви отримаєте в результаті тільки один файл; в іншому випадку буде по одному файлу на кожен модуль. Для цієї статті ми створимо MyEmmy_actorsView в іншому модулі, який вказаний в першому полі на наступному малюнку.
    • Щоб створити інший файл AQL, введіть в ім'я уявлення в поле View Name вікна AQL Statement (отримане на кроці 11) (пропонуємо: MyEmmy_actorsView), виберіть MyEmmy_actors_BasicFeatures зі списку AQL Module, введіть ім'я свого файлу AQL, виберіть словник спадному меню і, нарешті , встановіть прапорець Output view. Натисніть кнопку OK.
    • Щоб створити уявлення в тому ж файлі AQL, що і попереднє, виберіть у вікні Create AQL Statement (отриманому на кроці 11) той же модуль AQL, що і для першої мітки (MyEmmy_series_BasicFeatures), і той же сценарій AQL (MyEmmy_seriesView.aql). Решта поля залиште як показано на попередньому малюнку.
  20. Після створення уявлення і виправлення помилок в шаблоні (кроки 12-15) ви повинні отримати наступний код. module MyEmmy_actors_BasicFeatures; create dictionary MyEmmy_actorsViewDict from file '../../dictionaries/emmy_actors.dict' with language as 'en'; create view MyEmmy_actorsView as extract dictionary MyEmmy_actorsViewDict on R.text as match from Document R; output view MyEmmy_actorsView;
  21. Після повторного запуску екстрактора (крок 16) можна вибрати одне зі своїх уявлень і подивитися результати кожного виду окремо. На цьому кроці можна вибрати параметр для виконання плану пошуку по всій колекції даних, замість того, що ми вибрали на кроці 16. Тоді ви отримаєте результати з усіх файлів даних, а не тільки з позначених.
  22. Результати відображаються в іншому вікні, окремо від уявлення Extraction Plan.
  23. Щоб закінчити крок 4 робочого процесу аналізу тексту, відзначте мітку MyEmmy_actors як виконану (крок 18 цього розділу). Примітка. У цьому керівництві ми використовуємо тільки оператор AQL Basic Feature, але ви можете використовувати і інші. Про них можна дізнатися в Посібнику з написання AQL.
  24. Після виконання плану пошуку по всій колекції даних результати також можна експортувати у вигляді HTML- і CSV-файлів. У поданні Annotation Explorer натисніть на значок Export Results.
  25. Тепер потрібно вказати шлях до файлів. Натисніть Browse File System і виберіть каталог для збереження результатів, потім натисніть кнопку Finish.
  26. На кроці 5 робочого процесу аналізу тексту можна досліджувати продуктивність нашого екстрактора. Перейдіть в уявлення Project Explorer, клацніть правою кнопкою миші на імені свого проекту, потім відкрийте Profile As і виберіть Profile Configurations.
  27. Двічі клацніть на Text Analytics, введіть ім'я свого профілю в поле name, виберіть свої модулі і вкажіть місце розташування колекції даних. Можна також змінити мінімальний час виконання Профілювальники. Натисніть кнопку Profile. Після запуску Профілювальники ви побачите результати вимірювання продуктивності екстрактора. Детальніше про AQL Profiler см. В розділі AQL Logic optimization.
  28. Останнім кроком робочого процесу є експорт екстрактора. У поданні Project Explorer клацніть правою кнопкою миші на імені свого проекту і виберіть Export.
  29. Розгорніть папку BigInsights, виберіть Export Text Analytics Extractor і натисніть кнопку Next.
  30. Виберіть експортований модуль і встановіть прапорець Export dependent modules. Натисніть кнопку Browse File System і вкажіть каталог для збереження екстрактора. У вікні Options виберіть Export to a jar or zip archive в папці призначення і введіть ім'я в полі file name.

Ви повинні отримати підтвердження, яке вказує, що процес успішно завершений. Експортований екстрактор можна завантажити в HDFS в кластері Hadoop і запустити з набагато більшим обсягом вхідних даних. Детальніше див. У документації служби аналізу тексту BigInsights.

Аналіз результатів за допомогою функції R

Для побудови діаграм своїх результатів пошуку ми використовуємо функцію R служби dashDB Bluemix. Для роботи з dashDB виконайте наступні дії.

  1. На панелі управління Bluemix виберіть пункт меню Catalog, перейдіть в розділ Big Data і натисніть кнопку dashDB.
  2. Змініть ім'я на My Analytics Warehouse і натисніть кнопку CREATE.
  3. Виберіть свій додаток (My Analytics Warehouse) на головній сторінці.
  4. Натисніть кнопку Launch.
  5. Тепер служба dashDB працює. В якості вхідних даних будемо використовувати два CSV-файлу, отриманих в попередньому розділі (робочий процес аналізу тексту в Eclipse) - зі списком акторів і зі списком телесеріалів. Завантажимо ці набори даних в dashDB. Перейдіть в розділ Manage> Load Data.
  6. Знайдіть вхідні CSV-файли у своєму комп'ютері. Ці файли не містять рядок заголовка. Ми покажемо, як це зробити для одного файлу; для іншого повторіть процес.
  7. Прокрутіть сторінку вниз і натисніть кнопку Load File.
  8. Натисніть кнопку Next, щоб перейти на наступну сторінку. Виберіть Create a new table and load.
  9. Назвіть єдиний стовпець в наборі даних MyColumn і натисніть кнопку Finish. Ім'я таблиці не повинно містити пробілів. Це ім'я скоро знадобиться.
  10. Тепер, коли дані завантажені в dashDB, виконаємо приклад аналізу за допомогою функції R. У меню виберіть Analyze> Develop R Scripts.
  11. Тепер ви знаєте, як завантажувати дані; повторіть цей процес для набору даних з телесеріалами. Потім переходьте до наступного кроку.
  12. Давайте завантажимо сценарій R Script. Натисніть кнопку Import і знайдіть файл в своєму комп'ютері.
  13. Сценарій буде завантажений і з'явиться на екрані. Сценарій необхідно відредагувати так, щоб в рядку з'єднання використовувався потрібний ID користувача і пароль. Цю інформацію можна отримати зі служби Bluemix VCAP. Перейдіть на панель управління Bluemix і знайдіть службу My Analytics Warehouse. Натисніть на стрілку поруч з Show Credentials, як показано на наступному скріншоті.

    Ви побачите інформацію служби Bluemix VCAP, включаючи ім'я користувача, зазвичай щось на кшталт blu00XXX, де XXX - три цифри. Скопіюйте ім'я користувача.

  14. Поверніться до сценарію R і вставте ім'я у відповідне місце (четвертий рядок); в нашому випадку ім'я користувача - BLU00068. Ім'я таблиці повинно бути зазначено в лапках.
  15. Натисніть кнопки Save і Submit.
  16. У вкладці Plots з'явиться значок PDF-файлу, що містить потрібний графік. Клацніть цьому значку, щоб завантажити PDF-файл. У цьому файлі знаходиться графік, побудований за даними для телесеріалів і акторів Премії «Еммі».

Наша мета полягала в тому, щоб дізнатися, кого з номінантів Премії «Еммі» -2014 вітали більше. Так ось, з цієї діаграмі відразу видно, що три перших місця зайняли відповідно знімальні групи Game of Thrones, Orange Is the New Black і Breaking Bad. Графік показує, що більш ніж в 80 твіти повідомляється що-небудь про телесеріалі Game of Thrones. З графіка також видно, що у людей були певні очікування щодо премії. Наприклад, їх мало цікавили реаліті-шоу, такі як Top Chef і The Amazing Race. Нагадаємо, що ці дані зібрані протягом перших чотирьох днів після офіційного номінування.

висновок

У цій статті ми продемонстрували, як створити програму аналізу тексту, і виконали певний аналіз на простому прикладі Премії «Еммі». Тепер ви можете використовувати набуті тут знання в більш складних прикладах, заснованих на ваші потреби.

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів