تجسم تحلیل‌های بازاریابی- WordCloud

شکل ۱. ایجاد تصویر وردکلوود از طریق پایتون منتشر‌شده در towardsdatascience به تاریخ ۱۶ آوریل ۲۰۲۱ لینک منبع Marketing Analytics Visualization — WordCloudوردکلوود پربسامدترین کلمات مورد استفاده در یک متن را نمایش می‌دهد که در آن اندازه متن متناسب با فرکانسی است که در متن استفاده شده است؛ هرچه فونت بزرگ‌تر باشد، کلمه در سند بیشتر ظاهر می‌شود. بنابراین برای تجزیه‌و‌تحلیل داده اکتشافی، ورد‌کلوود ممکن است بینش‌های جالبی را برای پیگیری یا بررسی فراهم کند.برای این تمرین، اجازه دهید مجموعه داده تریپالی-هتل-ریویو را امتحان کنیم. این فایل را می‌توان از کاگل دانلود کرد یا در دسترس قرار داد.مقدمات اولیهاگر بسته وردکلوود را نصب نکرده‌اید، می‌توانید این کار را با باز کردن پایانه و تایپ دستور زیر انجام دهید:pip install wordcloudموارد زیر مقدمات کار ما هستند:#Preliminaries from wordcloud import WordCloud, STOPWORDS#For Data Manipulation import pandas as pd#For cleaning the texts import re#For the Mask from PIL import Image import numpy as np import urllib import requests#For Visualization import matplotlib.pyplot as plt %matplotlib inlineمطالعه مقاله ۱۰ منبع آزاد برای یادگیری پردازش زبان طبیعی توصیه می‌شود.وارد کردن دادهdf = pd.read_csv('data/tripadvisor_hotel_reviews.csv') print(f'The row and column sizes, respectively of the table are {df.shape}') df.head()توجه داشته باشید که ما تنها از ستون بازبینی برای این تمرین استفاده خواهیم کرد.آماده‌سازی داده‌هابرای پردازش بهترین ابر معنایی که می‌توانیم تولید کنیم، در اینجا مراحل لازم برای انجام در مرحله پیش‌پردازش ارائه شده‌اند:همه متون را به صورت یک رشته درآوریدهمه متون را به حروف کوچک تبدیل کنید (تعداد حروف مورد نظر متفاوت شمرده می‌شود) موارد STOPWORDS را حذف کنید.پیش‌پردازش-ترکیب متن‌ها و تبدیل به حروف کوچکاین کار را می‌توان به سادگی در یک کد تمیز انجام داد:text = df['Review'].str.cat(sep=', ').lower()پیش‌پردازش-کلمات ایستا (STOPWORDS)ورد‌کلوود با یک لیست مناسب از توقف‌هایی که ما می‌توانیم از آن‌ها استفاده کنیم، می‌آید. این شامل کلماتی است که اغلب مورد استفاده قرار می‌گیرند مانند «،» a «،» یا و خیلی بیشتر که ممکن است ورد‌کلوود ما را به هم بریزد.راه‌هایی برای مشاهده کلمات بالقوه وجود دارد که ممکن است بیشتر از حد مطلوب ظاهر شوند و ما همیشه می‌توانیم آن‌ها را به لیست کلمات توقف که ورد‌کلوود ما آن‌ها را حذف خواهد کرد، اضافه کنیم. در‌حالی‌که می‌توان متن را تقسیم کرده و یک شمارش ارزش انجام داد، من انتخاب می‌کنم که ابتدا به سادگی کلمه ابری را ایجاد کرده و تنها آن‌هایی را که نمی‌خواهیم بخشی از تصویر باشند، حذف کنیم.از آنجا که من خروجی را قبلا دیده‌ام، می‌خواهم تنها یک کلمه را حذف کنم: «n، t».# Adding to the list of stopwords stopwords = list(set(STOPWORDS)) + [&quotn't&quot]مصور‌سازیاستفاده از بسته وردکلوود بسیار ساده بوده و پارامترها ساده می‌باشند.wordcloud = WordCloud(width = 800, height = 800, background_color ='white', stopwords = stopwords, min_font_size = 10).generate(text)#After generating the WordCloud object, enter this to a plotting function# plot the WordCloud image plt.figure(figsize = (8, 8), facecolor = None) plt.imshow(wordcloud) plt.axis(&quotoff&quot) plt.tight_layout(pad = 0) plt.show()و تمام، وردکلوود پایه ما آماده است.مصور سازی-ماسک یا Maskingبرای کسانی که می‌خواهند این کار را با اضافه کردن کمی ماسک بهبود بخشند، می‌توانیم این کار را با انتخاب یک تصویرPNG انجام دهیم. آیکن‌های هتل برای من رضایت‌بخش نبودند بنابراین اجازه دهید در عوض یک هواپیما را انتخاب کنیم چون این یک نماد مرتبط با هتل‌ها و صنعت گردشگری نیز است.در انتخاب یک ماسک، یک تصویرpng یا jpeg با پس‌زمینه سفید انتخاب کنید. پس‌زمینه رنگی توسط کامپیوتر به عنوان یک شی مجزا در نظر گرفته می‌شود، بنابراین ممکن است شکلی که ما می‌خواهیم را ثبت نکند. ما می‌توانیم یک ماسک یا آیکون به دست آوریم که استفاده از آن رایگان است. اکنون، در توابع ماسک، بخش سفید تصویر باید «۲۵۵» باشد، نه ۰. مقدار ۲۵۵ مرتبط با سفید معمول‌تر است (و سیاه ۱ است)، اما فقط در صورتی که فرد باید شی «ماسک» را فقط در صورت وجود ببیند. اعداد موجود در آرایه، شدت پیکسل را نشان می‌دهند.mask = np.array(Image.open(requests.get('https://www.freeiconspng.com/uploads/airplane-icon-image-gallery-1.png', stream=True).raw))اجازه دهید یک هواپیما را به عنوان نماد خود انتخاب کنیم چون اقامت در هتل معمولا با سفر همراه است. آبجکت‌های ماسک را بررسی کنید. از آنجا که به نظر می‌رسد ماسک ما از ۲۵۵برای مقادیر سفید استفاده می‌کند، من حدس می‌زنم که می‌توانیم از این استفاده کنیم.نکته در مورد ماسک‌ها: همه چیز خوب عمل نمی‌کند و شما باید بررسی کنید که آیا یک ماسک شکل مورد انتظار برای ظرفی (کانتینری) که می‌خواهیم استفاده کنیم را تولید می‌کند یا نه. این مشکل برای ماسک‌هایی که سه‌بعدی هستند، شایع‌تر از ماسک‌هایی است که دو بعدی هستند.تابع تجسم برای تبدیل ۰ تا ۲۵۵ برای ماسک‌های دو بعدی و سه‌بعدیاگر نقابی که انتخاب کرده‌اید ۲Dباشد و بخواهید ۰ vales را به ۲۵۵ تبدیل کنید، می‌توانید از تابع زیر استفاده کنید:def transform_format(val): if val == 0:#000080 return 255 else: return val# Transform your mask into a new one that will work with the function: transformed_mask = np.ndarray((mask.shape[0],mask.shape[1]), np.int32)for i in range(len(mask)): transformed_mask[i] = list(map(transform_format, mask[i])برای ماسک‌های سه‌بعدی:# Transform your mask into a new one that will work with the function: transformed_mask = np.ndarray((mask.shape[0],mask.shape[1]), np.int32)for i in range(len(mask)): for y in range(len(mask[i])): transformed_mask[i][y] = list(map(transform_format, mask[i][y]))وردکلاود با ماسکپس از پردازش ماسک، اکنون می‌توانیم از این به عنوان ورودی پارامتر برای تابع ورد‌کلوود استفاده کنیم:wordcloud = WordCloud(background_color ='white', mask=mask, stopwords = stopwords, min_font_size = 10, width=mask.shape[1], height=mask.shape[0], contour_width=1, contour_color='#000080').generate(text)plt.figure(figsize = (8, 8), facecolor = None) plt.imshow(wordcloud) plt.axis(&quotoff&quot) plt.tight_layout(pad = 0) plt.show()در حالت ایده‌آل، ماسکی که ما انتخاب می‌کنیم به سوژه تجسم ما مرتبط است. دیگری که می‌توانیم امتحان کنیم یک ماسک ستاره است چون هتل‌ها به شکل ستاره رتبه‌بندی می‌شوند.ممکن است علاقمند به مطالعه مقاله آیا شرکت شما برای هوش مصنوعی بدون کد آماده است؟ باشید.توایع رنگی برای وردکلاودیک ورودی جالب برای وردکلوود، تابع رنگ است. پارامتر تابع رنگ یک تابع را می‌پذیرد و سپس یک یا چند متغیر خاص از یک رنگ (طرح) را برای هر کلمه بسته به ویژگی آن خروجی می‌دهد. به این سایت بروید و ترکیب رنگ مورد نظر خود را انتخاب کنید: https://hslferer.com/.تعداد انگشت‌شماری از متخصصان استفاده از یک رنگ یکنواخت را به جای طرح‌های رنگی پیش‌فرض برای طراحی نرم‌افزار ترجیح می‌دهند. بنابراین می‌توانیم تابعی را بنویسیم که این کار را برای ما انجام می‌دهد:def one_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None): h = 204 #0-360 s = 100 #0-100 l = random_state.randint(30, 70) #0-100 As we want to randomize it per color, let's randomize this return f&quothsl({h},{s}%, {l}%)&quotاستفاده از این تابع به عنوان ورودی:wordcloud = WordCloud(background_color ='white', mask=mask, stopwords = stopwords, min_font_size = 10, width=mask.shape[1], height=mask.shape[0], color_func=color_func, contour_width=1, contour_color='#000080').generate(text)plt.figure(figsize = (8, 8), facecolor = None) plt.imshow(wordcloud) plt.axis(&quotoff&quot) plt.tight_layout(pad = 0)plt.show()بیایید کمی بیشتر با آنچه می‌دانیم بازی کنیم، یک عملکرد قرمز و یک ماسک خانگی با یک قلب را امتحان کنیم:def red_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None): h = 0 #0-360 s = 100 #0-100 l = random_state.randint(30, 70) #0-100 As we want to randomize it per color, let's randomize this return f&quothsl({h},{s}%, {l}%)&quotنتیجه گیریورد‌کلوود یک ابزار اکتشافی داده عالی برای بررسی پراستفاده‌ترین کلمات در یک شی متنی است. به این ترتیب، آن‌ها یک ابزار عالی برای تجزیه‌و‌تحلیل بازاریابی و تجزیه‌و‌تحلیل احساسی هستند. به عنوان یک ابزار EDA، فرد باید تلاش کند تا پرسش‌ها و بینش‌هایی را که ممکن است از تجسم ایجاد شده ناشی شوند، کشف کند.در نهایت، راه‌های زیادی برای شخصی‌سازی و قدرتمندتر کردن تجسم برای مخاطبان وجود دارد. دانشمندان داده همیشه باید تلاش کنند و از ابزارهای تجسم با ترکیبی از مراقبت و خلاقیت استفاده کنند.این متن با استفاده از ربات مترجم مقاله دیتاساینس ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.