Метод аналізу відгуків клієнтів з природномовних текстів
Стаття присвячена методу аналізу текстів природною мовою, що містять відгуки клієнтів. Метод від-різняється від існуючих комбінацією різних типів векторизатора та уведенням ієрархії компонентів. Послі-довність застосування різних векторизаторів дає змогу будувати ієрархію ознак та маркерів. Використ...
Saved in:
| Date: | 2018 |
|---|---|
| Main Authors: | , |
| Format: | Article |
| Language: | Ukrainian |
| Published: |
Інститут проблем штучного інтелекту МОН України та НАН України
2018
|
| Series: | Штучний інтелект |
| Subjects: | |
| Online Access: | https://nasplib.isofts.kiev.ua/handle/123456789/162439 |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Journal Title: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Cite this: | Метод аналізу відгуків клієнтів з природномовних текстів / Н.Б. Шаховська, Х.Р. Шаховська // Штучний інтелект. — 2018. — № 3 (81). — С. 18-26. — Бібліогр.: 6 назв. — укр. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraine| id |
nasplib_isofts_kiev_ua-123456789-162439 |
|---|---|
| record_format |
dspace |
| spelling |
nasplib_isofts_kiev_ua-123456789-1624392025-02-09T10:44:12Z Метод аналізу відгуків клієнтів з природномовних текстів The customer sentiment analysis method from natural language texts Шаховська, Н.Б. Шаховська, Х.Р. Системи розпізнавання і сприйняття образів Стаття присвячена методу аналізу текстів природною мовою, що містять відгуки клієнтів. Метод від-різняється від існуючих комбінацією різних типів векторизатора та уведенням ієрархії компонентів. Послі-довність застосування різних векторизаторів дає змогу будувати ієрархію ознак та маркерів. Використання методу опорних векторів та острівної кластеризації з подальшим навчання моделі для прогнозування почут-тів є одним із кращих методів аналізу настроїв, як для небінарних, так і для бінарних аспектів. На основі від-критого набору даних з допомогою Python та Tablau побудовано програмний продукт для аналізу вподобань клієнтів і візуалізації результатів аналізів. The article is devoted to the method of analysis of texts in the natural language, containing reviews of clients. The method differs from the existing combination of different types of vectorizer and the introduction of the component hierarchy. The sequencing of the use of different vectorizers allows us to build a hierarchy of features and markers. Using the reference vectors and island clustering techniques, with the subsequent training of a model for prediction of feelings, is one of the best methods for analyzing mood, both for non-binary and binary aspects. Based on open data set with Python and Tablau, a software product was developed to analyze customer preferences and visualize the results of analyzes. 2018 Article Метод аналізу відгуків клієнтів з природномовних текстів / Н.Б. Шаховська, Х.Р. Шаховська // Штучний інтелект. — 2018. — № 3 (81). — С. 18-26. — Бібліогр.: 6 назв. — укр. 1561-5359 https://nasplib.isofts.kiev.ua/handle/123456789/162439 004.37 uk Штучний інтелект application/pdf Інститут проблем штучного інтелекту МОН України та НАН України |
| institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| collection |
DSpace DC |
| language |
Ukrainian |
| topic |
Системи розпізнавання і сприйняття образів Системи розпізнавання і сприйняття образів |
| spellingShingle |
Системи розпізнавання і сприйняття образів Системи розпізнавання і сприйняття образів Шаховська, Н.Б. Шаховська, Х.Р. Метод аналізу відгуків клієнтів з природномовних текстів Штучний інтелект |
| description |
Стаття присвячена методу аналізу текстів природною мовою, що містять відгуки клієнтів. Метод від-різняється від існуючих комбінацією різних типів векторизатора та уведенням ієрархії компонентів. Послі-довність застосування різних векторизаторів дає змогу будувати ієрархію ознак та маркерів. Використання методу опорних векторів та острівної кластеризації з подальшим навчання моделі для прогнозування почут-тів є одним із кращих методів аналізу настроїв, як для небінарних, так і для бінарних аспектів. На основі від-критого набору даних з допомогою Python та Tablau побудовано програмний продукт для аналізу вподобань клієнтів і візуалізації результатів аналізів. |
| format |
Article |
| author |
Шаховська, Н.Б. Шаховська, Х.Р. |
| author_facet |
Шаховська, Н.Б. Шаховська, Х.Р. |
| author_sort |
Шаховська, Н.Б. |
| title |
Метод аналізу відгуків клієнтів з природномовних текстів |
| title_short |
Метод аналізу відгуків клієнтів з природномовних текстів |
| title_full |
Метод аналізу відгуків клієнтів з природномовних текстів |
| title_fullStr |
Метод аналізу відгуків клієнтів з природномовних текстів |
| title_full_unstemmed |
Метод аналізу відгуків клієнтів з природномовних текстів |
| title_sort |
метод аналізу відгуків клієнтів з природномовних текстів |
| publisher |
Інститут проблем штучного інтелекту МОН України та НАН України |
| publishDate |
2018 |
| topic_facet |
Системи розпізнавання і сприйняття образів |
| url |
https://nasplib.isofts.kiev.ua/handle/123456789/162439 |
| citation_txt |
Метод аналізу відгуків клієнтів з природномовних текстів / Н.Б. Шаховська, Х.Р. Шаховська // Штучний інтелект. — 2018. — № 3 (81). — С. 18-26. — Бібліогр.: 6 назв. — укр. |
| series |
Штучний інтелект |
| work_keys_str_mv |
AT šahovsʹkanb metodanalízuvídgukívklíêntívzprirodnomovnihtekstív AT šahovsʹkahr metodanalízuvídgukívklíêntívzprirodnomovnihtekstív AT šahovsʹkanb thecustomersentimentanalysismethodfromnaturallanguagetexts AT šahovsʹkahr thecustomersentimentanalysismethodfromnaturallanguagetexts |
| first_indexed |
2025-11-25T20:45:12Z |
| last_indexed |
2025-11-25T20:45:12Z |
| _version_ |
1849796608054525952 |
| fulltext |
ISSN 1561-5359. Штучний інтелект, 2018, № 3
18 © Н.Б. Шаховська, Х.Р. Шаховська
УДК 004.37
Н.Б. Шаховська, Х.Р. Шаховська
Національний університет «Львівська Політехніка», Україна
вул. Степана Бандери, 12, м. Львів, 79013
МЕТОД АНАЛІЗУ ВІДГУКІВ КЛІЄНІВ З ПРИРОДНОМОВНИХ
ТЕКСТІВ
N.B. Shakhovska, Kh.R. Shakhovska
Lviv Polytechnic National University, Ukraine
12, Stepan Bandery St., Lviv, 79013
THE CUSTOMER SENTIMENT ANALYSIS METHOD FROM
NATURAL LANGUAGE TEXTS
Стаття присвячена методу аналізу текстів природною мовою, що містять відгуки клієнтів. Метод від-
різняється від існуючих комбінацією різних типів векторизатора та уведенням ієрархії компонентів. Послі-
довність застосування різних векторизаторів дає змогу будувати ієрархію ознак та маркерів. Використання
методу опорних векторів та острівної кластеризації з подальшим навчання моделі для прогнозування почут-
тів є одним із кращих методів аналізу настроїв, як для небінарних, так і для бінарних аспектів. На основі від-
критого набору даних з допомогою Python та Tablau побудовано програмний продукт для аналізу вподобань
клієнтів і візуалізації результатів аналізів.
Ключові слова: сентимент-аналіз, векторизатор, природномовний текст, кластеризація
The article is devoted to the method of analysis of texts in the natural language, containing reviews of clients.
The method differs from the existing combination of different types of vectorizer and the introduction of the
component hierarchy. The sequencing of the use of different vectorizers allows us to build a hierarchy of features
and markers. Using the reference vectors and island clustering techniques, with the subsequent training of a model
for prediction of feelings, is one of the best methods for analyzing mood, both for non-binary and binary aspects.
Based on open data set with Python and Tablau, a software product was developed to analyze customer preferences
and visualize the results of analyzes.
Keywords: sentiment analisys, vectorizer, text in natural language, clustering
Вступ
Аналіз настроїв (сентимент-аналіз,
Sentiment Analysis) допомагає розпізнати
враження клієнта від компанії, товарів чи
послуг. Особливо аналіз настроїв поши-
рений у соціальних мережах, і саме з їх
появою відгуки клієнтів стали аналізува-
тися в автоматичному режимі. Емоції клі-
єнта, в основному, впливають на форму-
вання маркетингової стратегії [1].
Оскільки аналіз настроїв належить
до методів машинного навчання без вчи-
теля, то єдиного результату аналізу не-
можливо досягнути. Різноманітність ре-
зультатів аналізу є засобом прийняття рі-
шення про покращення характеристик
продукту, підвищення обсягів продажів
тощо.
Метою статті є використання алго-
ритмів NLP (обробки природної мови,
Nature Language Processing) для аналізу
настроїв клієнтів. Для цього використано
відкритий набір даних Women E-comerce
Closing Reviews
(https://www.kaggle.com/nicapotato/women
s-ecommerce-clothing-reviews) з більше
ніж 23000 дописами, мову програмування
Python та Tableau.
Постановка проблеми
Маємо множину документів з наст-
роями клієнтів D: кожен документ d
поданий п’ятіркою <ei. aij, oojikl, hk, tl>.
Ставимо перед собою завдання:
1) Знайти усі документи з D, у яких є
згадка про сутність ei. Сутність є про-
дуктом, послугою, особою, подією,
організацією тощо і може бути задана
як (T, W), де Т – ієрархія компонентів
(або частин), субкомпонентів, а W –
набір атрибутів eі. Кожен компонент
або підкомпонент також має свій
власний набір атрибутів;
2) Знайти аспекти aij в ei і сформувати
кластери.
ISSN 1561-5359. Штучний інтелект, 2018, № 3
© Н.Б. Шаховська, Х.Р. Шаховська 19
3) Видобути ці шматки інформації з тек-
сту (неструктурованих даних) та
сформувати базу даних із зазначенням
власника hk документа d; та часу його
формування tl;
4) Для кожного аспекти aij визначити то-
нальність, тобто, чи належить він до
позитивного, негативного чи нейт-
рального (oojikl);
5) Сформувати усі кортежі <ei. aij, oojikl,
hk, tl> та класифікувати документ d.
Отже, аналіз настроїв поєднує як
методи машинного навчання без вчителя
(кластеризація, класифікація), так і мето-
ди машинного навчання із вчителем
(класифікація).
Аналіз останніх досліджень і
публікацій
Формальна постановка задачі аналі-
зу настроїв подано у [2]. Автори пропону-
ють використовувати SVM (Support Vector
Machine) для кластеризації, але поперед-
ньо не здійснюють обробку тексту (токе-
нізація, забирання стоп-слів), що унемож-
ливлює використання пропонованого ме-
тоду для української мови зокрема.
У [3] існуючі підходи класифікації
настроїв поділено на такі класи:
підходи, що базуються на правилах;
підходи, що базуються на словниках
(тональні словники);
частотні методи;
навчання без вчителя.
Підходи, базовані на правилах, дають
змогу опрацьовувати тексти лише певної
вузької області, а також автоматичне по-
повнення правил здійснюється лише на ос-
нові функціональних залежностей.
Тональні словники визначають набір
правил, що визначають настрій (тональ-
ність) тексту. Потребують розміченості
текстів.
Частотні методи зазвичай працюють
разом з мірою TF-IDF і використовують
підхід «мішка слів», що не дає змоги вра-
ховувати зворотного значення слів (на-
приклад, «веселий» у розумінні сумний).
Пошук настрою тексту з викорис-
танням методів навчання без вчителя по-
требує їх комбінації та інколи пояснення
результату експертом. Проте вони є най-
поширенішими, оскільки дозволяють мі-
німізувати недоліки попередньо поданих
підходів.
У роботі [4] автором пропонується
метод отримання сигнатур документа, які
будуються на основі певного набору ста-
тистичних параметрів документа, обра-
них з міркувань стійкості до певних форм
змін документа. Наприклад, приблизну
кількість речень у документі можна виз-
начити за кількістю великих літер, ком і
крапок; загальна довжина тексту в симво-
лах за винятком пробілів і стоп-слів дає
загальну оцінку обсягу документа тощо.
Автором методу проводилися до-
слідження можливості використання різ-
номанітних параметрів текстів для опосе-
редкованого виявлення дублювань [5].
Так, було підраховано кількість входжень
у текст документа кожного символу з на-
ступного набору: . , - _ : ; ! ? ( ) і символ
пробілу. Образ документа подається у ви-
гляді вектора розмірністю 11 елементів, i-
тим компонентами якого була кількість
входжень відповідного символу. В іншо-
му тесті з документа видалялися буквено-
цифрові символи, залишаючи спецсимво-
ли, пробіли й переведення рядків.
Мета дослідження
Метою дослідження є розроблення
методу аналізу відгуку клієнта шляхом
комбінування різних типів векторизаторів,
а також реалізація запропонованого мето-
ду. Це дасть змогу будувати цілісну марке-
тингову систему, яка починається від ви-
ставлення рейтингу за коментарем, яка фі-
налізує результати і «будує» стратегії.
Виклад основного матеріалу
Опис методу
Аналіз відгуків клієнта можна роз-
бити на такі етапи: обробка тексту; побу-
дова моделі; аналіз результатів.
І. Обробка тексту
Текст повинен бути попередньо об-
роблений для побудови моделі. Це покра-
щить точність оцінки відгуку. Розглянемо
кілька методів обробки:
Токенізація означає розбиття тексту
на мінімально значущі одиниці. Це
ISSN 1561-5359. Штучний інтелект, 2018, № 3
20 © Н.Б. Шаховська, Х.Р. Шаховська
обов'язковий етап перед будь-яким видом
обробки. Базовий tokenizer (за аналогією
до NLTK) розділить текст на аспекти, які
використовуються в подальшому для
сентимент-аналізу.
Приклади токенізованого тексту
різними токенізаторами:
Токенізатор locution: The mouse gave
up. () => the/mouse/gave_up .
Токенізатор amalgam: If you
wannabe my lover =>
if/you/want/to/be/my/lover/...
Стемінг – це процес скорочення
слова до основи шляхом відкидання до-
поміжних частин, таких як закінчення чи
суфікс. Результати стемінгу іноді дуже
схожі на визначення кореня слова, але
його алгоритми базуються на інших
принципах. Тому слово після обробки ал-
горитмом стемінгу (стематизації) може
відрізнятися від морфологічного кореня
слова. Стемінг застосовується в лінгвіс-
тичній морфології та в інформаційному
пошуку
Стоп-слова (Stopwords). База даних
стоп-слів дає змогу видалити короткі сло-
ва, які істотно не впливають на семантику
тексту, наприклад, сполучники.
Проаналізуємо кілька етапів оброб-
ки даних: для цього візьмемо один відгук
і перевіримо його, як він зміниться після
чистки:
«Yes, this is a great dress! i
wasn't sure about it online
because of the color combination.
i think i would have preferred the
gray color but it was sold out. it
received very good reviews online
so i thought it was worth the risk
at the sale price. i am always on
the hunt for great dresses at
great prices (who isn't?!). once i
received it and tried it on, oh
wow! i love it. it is so
flattering. it is a very pretty
dress. i think i will wear this
all the time. i am actually
thinking of all the d»
Перший етап очищення тексту
включає перетворення до нижнього ре-
гістру, видалення стоп-слів і стемінг. Код
програми поданий нижче:
def cleaning_function(text):
text = text.translate(string.punctuation)
text = text.lower()
text = text.split()
stops = set(stopwords.words("english"))
text = [w for w in text if not w in stops and
len(w) >= 3]
text = " ".join(text)
text = text.split()
stemmer = SnowballStemmer('english')
stemmed_words = [stemmer.stem(word) for
word in text]
text = " ".join(stemmed_words)
return text
Отримаємо:
yes, great dress! sure onlin color
combination. think would prefer
gray color sold out. receiv good
review onlin thought worth risk
sale price. alway hunt great dress
great price (who isn't?!). receiv
tri on, wow! love it. flattering.
pretti dress. think wear time.
actual think
Наступним кроком є використання
регулярних виразів. З їх допомогою та
бібліотеки ми розділяємо та видаляємо
найпоширеніші фрази:
def cleaning_function(text):
text = text.translate(string.punctuation)
text = text.lower()
text = text.split()
stops = set(stopwords.words("english"))
text = [w for w in text if not w in stops and
len(w) >= 3]
text = " ".join(text)
text = re.sub(r"e - mail", "email", text)
text = re.sub(r"[^A-Za-z0-9^,!.\/'+-=]", " ", text)
text = re.sub(r"what's", "what is ", text)
text = re.sub(r"\'s", " ", text)
text = re.sub(r"\'ve", " have ", text)
text = re.sub(r"n't", " not ", text)
text = re.sub(r"\'ll", " will ", text)
text = re.sub(r" e g ", " eg ", text)
text = re.sub(r" b g ", " bg ", text)
text = re.sub(r"i'm", "i am ", text)
text = re.sub(r" u s ", " american ", text)
text = re.sub('[^a-zA-Z]', ' ', text)
text = re.sub(r"\'re", " are ", text)
text = re.sub(r"\'d", " would ", text)
return text
ISSN 1561-5359. Штучний інтелект, 2018, № 3
© Н.Б. Шаховська, Х.Р. Шаховська 21
Отримаємо:
yes great dress sure online color
combination think would preferred
gray color sold out received good
reviews online thought worth risk
sale price always hunt great
dresses great prices who is not
received tried on wow love it
flattering pretty dress think wear
time actually thinking
Векторизація. Слова повинні бути
закодовані як цілі числа або значення з
плаваючою точкою для використання як
вхідні дані для алгоритму машинного
навчання, що називається вилученням оз-
нак. Автори статті [6] описують побудову
моделі векторного простору для завдання
векторизації слів. Автори поєднали пере-
ваги двох підходів: локального контексту
вікна і метод глобальної факторизації
матриць. За результатами порівняння іс-
нуючих моделей, отримана авторами мо-
дель Glove показує непогані результати
як у задачі пошуку схожих слів, так і в
завданні Named Entity Recognition.
Bag-of-Words Model. Як вже було
згадано вище, неможливо працювати з
текстом безпосередньо при використанні
алгоритмів машинного навчання. Отже,
нам необхідно перетворити текст на чис-
ла. Одним із простих і ефективних спосо-
бів є модель «мішок слів» або BoW. Мо-
дель проста в тому, що вона відкидає всю
інформацію про порядок слів і зосеред-
жується на входженні слів у документі.
Це можна зробити, присвоївши кожному
слову унікальний номер. Тоді будь-який
документ, який ми бачимо, може бути за-
кодований як вектор фіксованої довжини
з довжиною словника відомих слів. Зна-
чення в кожній позиції у векторі може бу-
ти заповнене підрахунком або частотою
кожного слова в закодованому документі.
Існує багато способів розширити
цей простий метод, як краще уточнити,
що таке слово, так і визначити, що коду-
вати кожне слово у векторі.
Бібліотека scikit-learn забезпечує 3
різні схеми, які ми можемо використову-
вати: CountVectorizer, TfidfVectorizer,
HashingVectorizer.
CountVectorizer надає простий спо-
сіб як виділити текстові документи, так і
створити словник відомих слів, а також
кодувати нові документи, використовую-
чи цей словник.
Алгоритм CountVectorizer:
1) Створити екземпляр класу Count-
Vectorizer.
2) За допомогою функції fit () сформу-
вати словник з одного або більше
документів.
3) Викликати функцію transform () на од-
ному або декількох документах, необ-
хідних для кодування кожного
вектора.
4) Кодований вектор повертається з дов-
жиною всього словника і цілим чис-
лом для кількості разів кожного слова
в документі.
Важливо, що той самий векториза-
тор може бути використаний на докумен-
тах, які містять слова, не включені до
словника. Ці слова ігноруються, і в отри-
маному векторі не наводиться кількість.
X.apply(cleaning_function)
c_vec = CountVectorizer()
c_vec.fit(X)
X = c_vec.transform(X)
X transformed:
(0, 583) 1
(0, 951) 2
(0, 2846) 1
(0, 10884) 1
(0, 11133) 1
(0, 13913) 1
TF-IDF vectorizer. Підрахунок слів
може бути використаний для підготовки
текстів до аналізу, але має ряд недоліків.
Наприклад, «the» з'явиться багато разів, і
їх великі значення не будуть значущими
в кодованих векторах.
Альтернативою є розрахунок частот
слів, і найбільш популярним методом на-
зивається TF-IDF. Це абревіатура, що
означає «частота термінів зворотний
документ», яка є складовими результую-
чих балів, присвоєних кожному слову.
Частота термінів: підсумовує, як часто
дане слово з'являється в документі. Зво-
ротна частота документа зменшує масш-
таби слів, яких багато з'являється в
документах.
ISSN 1561-5359. Штучний інтелект, 2018, № 3
22 © Н.Б. Шаховська, Х.Р. Шаховська
Отже, TF-IDF – це показники часто-
ти слів, які намагаються виділити слова,
які є більш цікавими, наприклад, частими
документами, але не всіма документами.
TF-IDFvectorizer шукає обернені
коефіцієнти частоти документів і кодує
нові документи. Крім того, якщо попе-
редньо використати CountVectorizer, то
його можна використовувати з
TfidfTransformer для обчислення оберне-
них частот документа і початку кодуван-
ня документів. Процес створення, налаш-
тування та перетворення використовуєть-
ся як з CountVectorizer.
X = clothes_cleaned['Review Text']
X.apply(cleaning_function)
tf_vec = TfidfVectorizer()
tf_vec.fit(X)
X = tf_vec.transform(X)
X transformed:
(0, 13913) 0.4650015062801364
(0, 11133) 0.5376963415994225
(0, 10884) 0.4929199056155513
(0, 2846) 0.2636953393304713
(0, 951) 0.1991097263821536
(0, 583) 0.3775000594849874
Hashing vectorizer. Підрахунок
кількості слів і частота, які є основою по-
передньо поданих векторизаторів, мо-
жуть бути дуже корисними, але одним з
обмежень цих методів є те, що словник
може стати дуже великим. Це, у свою
чергу, вимагатиме великих векторів для
кодування документів і нав'язуватиме ве-
ликі вимоги до пам'яті і уповільнюватиме
алгоритми.
Покращення полягає в тому, щоб
скористатися способом хешування слів
для перетворення їх у цілі числа. Перева-
га полягає в тому, що не потрібно форму-
вати словник, а також можна вибрати
вектор довільної фіксованої довжини. Не-
доліком є те, що хеш є односторонньою
функцією, тому не існує способу перетво-
рити кодування назад до слова (яке може
не мати значення для багатьох контро-
льованих завдань навчання).
HashingVectorizer реалізує цей під-
хід і може бути використаний також для
послідовних хеш-слів з таким маркуван-
ням та кодуванням документа.
X = clothes_cleaned['Review Text']
X.apply(cleaning_function)
h_vec = HashingVectorizer(ngram_range=(1, 5))
h_vec.fit(X)
X = h_vec.transform(X)
X transformed:
(0, 88313) 0.19245008972987526
(0, 131881) 0.19245008972987526
(0, 154635) 0.19245008972987526
(0, 167035) 0.19245008972987526
(0, 180525) -0.3849001794597505
(0, 203648) 0.19245008972987526
(0, 216626) 0.19245008972987526
(0, 230285) 0.19245008972987526
(0, 291052) 0.19245008972987526
(0, 299433) 0.19245008972987526
(0, 321990) 0.19245008972987526
(0, 332294) -
0.19245008972987526
(0, 475715) 0.19245008972987526
(0, 616655) 0.19245008972987526
(0, 681602) -
0.19245008972987526
(0, 697710) 0.19245008972987526
(0, 722887) 0.19245008972987526
(0, 724616) -
0.19245008972987526
(0, 726496) -
0.19245008972987526
(0, 731228) 0.19245008972987526
(0, 750171) -
0.19245008972987526
(0, 822631) -
0.19245008972987526
(0, 909483) -
0.19245008972987526
(0, 1017511) -
0.19245008972987526
Коли ми обробили дані, ми можемо
приступати до самої моделі методом ос-
трівної кластеризації.
Основним методом острівної клас-
теризації є метод, який базується на вико-
ристанні графа сумісної зустрічальності
термів. Цей граф будується на основі виз-
начення кореляції кожної пари термів, з
яких складаються тексти, і кластеризуєть-
ся саме цей граф (або його частина) опи-
саним у методі підходом. Таким чином,
терми документів групуються в кластери
саме на основі спільної зустрічальності.
Також, завдяки цьому даний метод є стій-
ISSN 1561-5359. Штучний інтелект, 2018, № 3
© Н.Б. Шаховська, Х.Р. Шаховська 23
ким до проблем синонімії та омонімії –
терми з різним значенням з великою ймо-
вірністю потраплять у різні кластери тер-
мів, оскільки вони будуть зустрічатись у
текстах спільно з різними термами. У па-
рі до цього для вирішення омонімії мож-
на використовувати словники.
Вже для групування текстів у клас-
тери на основі кластерів термів викорис-
товуються спеціальні процедури, що та-
кож описані цим методом.
Таким чином, метод острівної клас-
теризації текстових датасетів складається
з наступних кроків:
1) Попереднє оброблення текстів з вхід-
ної колекції документів: видалення
стоп-слів, лематизація тощо.
2) Виділення з текстів множини термів, з
яких вони складаються.
3) За необхідності – фільтрація отрима-
ної множини термів (наприклад, у си-
туаціях, коли відомі початкові цент-
роїди кластерів або отримана множи-
на є занадто великою).
4) Побудова графу кореляції термів між
собою.
5) Попереднє оброблення графа і отри-
мання його наближення.
6) Кластеризація отриманого наближен-
ня графа.
7) Розбиття документів на кластери на
основі отриманих кластерів термів.
Як правило, цей метод дає кластери,
що легко інтерпретувати саме на основі
змісту документів, що складають ці
кластери.
Розбиття документів на кластери
здійснено методом опорних векторів з лі-
нійним розділенням по гіперплощинах на
основі поліноміального ядра
dconstxxxxk )),((),( . Вибір саме
цього методу кластеризації зумовлений
наявністю попередніх кроків з оброблен-
ня текстів та подання їх у векторній та
графовій формах.
Послідовність кроків:
1) Перетворимо рейтинг за п’яти-баль-
ною шкалою до бінарного вигляду, де
1-3 це 0, а 4-5 – 1.
2) Використаємо наведену вище обробку
даних, а саме: cleaning function і
Hashing vectorizer.
3) Розділимо дані на тренувальну і тес-
тувальну частини як 2 до 1.
4) Натренуємо лінійну SVM.
У результаті виконання цих кроків
ми отримали точність моделі (accuracy)
0.8829677609303695.
Далі візьмемо позитивний і негатив-
ний відгук і перевіримо, як оцінить його
модель:
Love this dress! it's sooo
pretty. i happened to find it in
a store, and i'm glad i did bc i
never would have ordered it online
bc it's petite. i bought a petite
and am 5'8". i love the length on
me- hits just a little below the
knee. would definitely be a true
midi on someone who is truly
petite.
print(svc.predict(positive_review_transformed)[0]
)
>> 1
print(svc.predict(negative_review_transformed)[
0])
>> 0
Аналіз результатів
У першу чергу, проаналізуємо вміст
датасету «М Women E-comerce Closing
Reviews».
Структура датасету:
Clothing ID: Integer категорична
змінна, що належить до конкретної час-
тини, що розглядається.
Age: Positive ціла змінна віку
рецензентів.
Title: змінна рядка для назви допису.
Review text: змінна рядка для тіла
допису.
Rating: позитивна цілочисельна змін-
на для продуктової оцінки, наданої клієн-
том від 1 Найгірше до 5 Найкраще.
Recommended IND: Двійкова змін-
на, де клієнт рекомендує продукт, де 1
рекомендується, 0 не рекомендується.
Positive Feedback Count: позитивне
ціле число, яке визначає кількість інших
клієнтів, які вважають цей огляд
позитивним.
ISSN 1561-5359. Штучний інтелект, 2018, № 3
24 © Н.Б. Шаховська, Х.Р. Шаховська
Division name: категорійна змінна,
найменування продукту високого рівня
поділу.
Department name: категоріальна наз-
ва, назва відділу продукту.
Class name: категорійна змінна, наз-
ви класу продукту.
Здійснимо бізнеc-аналіз для
Customer sentiment analysis. Розглянемо
зараз кілька варіантів аналізу у Tableau.
Можна аналізувати рівень якості прода-
жів залежно від відділення, відповідно
можна робити висновки щодо стратегії
покращення виробництва та продажу
товару.
Рис. 1. Залежність рейтингу від кількості позитивних відгуків
Більше того, Tableau дозволяє роби-
ти анімовані звіти, що дозволяє дивитися
інфографіку залежно від параметру. Для
прикладу, аналізуватимемо вік клієнта та
вплив цього фактору на кількість залише-
них позитивних та негативних відгуків.
Результати аналізу відгуків подано на
рис. 2.
Рис. 2. Приклади аналізу відгуків клієнтів залежно від віку
ISSN 1561-5359. Штучний інтелект, 2018, № 3
© Н.Б. Шаховська, Х.Р. Шаховська 25
У цьому випадку (рис. 2) можна
спостерігати цікаву тенденцію: най-
більша активність спостерігається у се-
редньому віці, хоча на перший погляд
здавалося, що молодь мала б бути більш
активна у формуванні як позитивних, так
і негативних відгуків.
Висновки
У статті розроблено метод аналізу
дописів про вподобання клієнтів та роз-
роблено алгоритм на його основі, що дає
змогу здійснювати маркетингове дослід-
ження ринку, а також стати основою для
здійснення прогнозів продажів на наступ-
ні періоди. Особливістю розробленого
методу є послідовна комбінація різних
методів векторизації текстів, що дає змо-
гу зберегти семантику тексту та відшука-
ти значущі ознаки у ньому. Окрім того,
послідовність застосування різних векто-
ризаторів дає змогу будувати ієрархію оз-
нак та маркерів.
Література
1. Pang, B., & Lee, L. (2008). Opinion mining and
sentiment analysis. Foundations and Trends® in
Information Retrieval, 2(1–2), 1-135.
2. Liu, B., & Zhang, L. (2012). A survey of opinion
mining and sentiment analysis. In Mining text
data (pp. 415-463). Springer, Boston, MA
3. Данилюк, І.Г. Технологія автоматичного
визначення тематики тексту (2008) [Текст].
Лінгвістичні студії: Зб. наук. праць. Випуск 17
/ Укл.: Анатолій Загнітко (наук. ред.) та ін. –
Донецьк : ДонНУ. – С. 290-293
4. Kolcz, A. Improved Robustness of Signature-
Based Near-Replica Detection via Lexicon
Randomization (2004) / A. Kolcz, A. Chowdhury,
J. Alspector. // KDD.
5. Broder, Andrei Z. Identifying and Filtering Near-
Duplicate Documents (2000). Proceedings of the
11th Annual Symposium on Combinatorial
Pattern Matching (COM’00). – Р. 1-10.
6. J. Pennington R. Socher Chr. D. Manning. GloVe:
Global Vectors for Word Representation.
Available from: https://nlp.stanford.edu/
pubs/glove.pdf
References
1. Pang, B., & Lee, L. (2008). Opinion mining and
sentiment analysis. Foundations and Trends® in
Information Retrieval, 2(1–2), 1-135.
2. Liu, B., & Zhang, L. (2012). A survey of opinion
mining and sentiment analysis. In Mining text
data (pp. 415-463). Springer, Boston, MA
3. Danyliuk, I.H. Tekhnolohiia avtomatychnoho
vyznachennia tematyky tekstu (2008) [Tekst].
Linhvistychni studii: Zb. nauk. prats. Vypusk 17 /
Ukl.: Anatolii Zahnitko (nauk. red.) ta in. –
Donetsk : DonNU. – S. 290-293
4. Kolcz, A. Improved Robustness of Signature-
Based Near-Replica Detection via Lexicon
Randomization (2004) / A. Kolcz, A. Chowdhury,
J. Alspector. // KDD.
5. Broder, Andrei Z. Identifying and Filtering Near-
Duplicate Documents (2000). Proceedings of the
11th Annual Symposium on Combinatorial
Pattern Matching (COM’00). – Р. 1-10.
6. J. Pennington R. Socher Chr. D. Manning. GloVe:
Global Vectors for Word Representation.
Available from: https://nlp.stanford.edu/
pubs/glove.pdf
RESUME
N. Shakhovska, Kh. Shakhovska
The customer sentiment analysis
method from natural language texts
The article presents the method for
customer preferences analyzing and deve-
lops an algorithm based on it, which enables
to conduct market research of the market, as
well as become the basis for carrying out
sales forecasts for subsequent periods. The
peculiarity of the developed method is the
consistent combination of different methods
of text vectorization, which allows you to
keep the semantics of the text and find
meaningful signs in it. In addition, the
sequencing of the use of different vectors
allows you to build a hierarchy of signs and
markers.
Based on open data set with Python
and Tablau, a software product was develop-
ped to analyze customer preferences and
visualize the results of analyzes. The use of
both tools and the developed method allows
for in-depth analysis of natural language
texts and reveals hidden data dependencies,
such as the age of the client and the nature
of his post.
Builded document vectors are very
useful, because the sentiment of a sentence
can be deduced very precisely from these se-
mantic features. As a matter of fact, users
writing reviews with positive or negative
sentiments will have completely different
ways of composing the words. Feeding a
Support vector machine and island cluste-
ring with these vectors and training the mo-
del to predict sentiment is known to be one
ISSN 1561-5359. Штучний інтелект, 2018, № 3
26 © Н.Б. Шаховська, Х.Р. Шаховська
of the best methods for sentiment analysis,
both for fine-grained (Very negative /
Negative / Neutral / Positive / Very positive)
and for more general Negative / Positive
classification.
The main method of island clustering
is a method that is based on the use of the
graph of the coherent occurrence of terms.
This graph is based on the definition of the
correlation of each pair of terms from which
texts are composed, and it is clustered
exactly this graph (or part of it) described in
the method approach. Thus, the terms of
documents are grouped into clusters on the
basis of a common occurrence. Also, due to
this, this method is resistant to the problems
of synonymy and homonymy terms with
different meanings are very likely to fall into
different clusters of terms, as they will be
encountered in texts in conjunction with
different terms. In a pair to this, for the
solution of homonymy it is possible to use
dictionaries.
Already for the grouping of texts into
clusters, based on cluster terms, special pro-
cedures are used, which are also described
by this method.
Надійшла до редакції 15.10.2018
|