Фахрул Энди Сетьяван и Дви Октавиана Путери

Versi Indonesia =› начать

Облако слов (также известное как текстовое облако или облако тегов) — это метод визуального отображения текстовых данных. Этот график популярен при анализе текста, потому что его легко понять. Используя облако слов, можно отобразить обзор частотности слов в привлекательной, но информативной форме. Чем чаще используется слово, тем больше размер слова будет отображаться в облаке слов.

На этот раз мы создадим облако слов из комментариев к видео на YouTube, используя язык программирования python. Необходимо подготовить Jupyter Notebook и ссылку на видео на YouTube, которое активно комментируется.

Шаги

  1. Во-первых, мы должны установить необходимые библиотеки.
! pip install datakund-scraper
! pip install youtube-comment-scraper-python
! pip install wordcloud

2. Импортируйте библиотеки, чтобы иметь возможность запускать программу.

from youtube_comment_scraper_python import *
import pandas as pd
import numpy as np
import re
import nltk
import matplotlib.pyplot as plt
%matplotlib inline

3. Введите ссылку YouTube, которую вы хотите использовать.

youtube.open(“https://www.youtube.com/watch?v=Ki55VfgocGs&t=38s") #youtube link used
youtube.keypress(“pagedown”) #to scroll the page directly load the comments

4. После этого необходим поиск данных комментария, чем больше, тем больше времени.

data = []
halsausskrng=youtube.get_page_source()
halakhissaus=’’
while(True):
 if(halakhissaus==halsausskrng):
 break
 
 halakhissaus=halsausskrng
 respon=youtube.video_comments()
for c in respon[‘body’]:
 data.append(c)
 
 youtube.scroll()
 halsausskrng=youtube.get_page_source()

5. Распечатайте, чтобы отобразить результаты данных.

print(“Data : “, len(data))
data[:10]

6. Группировка результатов комментариев данных, лайков, времени, пользовательских ссылок, пользователей и экспорт результатов в форму csv (данные csv автоматически сохраняются в том же каталоге, что и файл).

df = pd.DataFrame(data) # conver list to dataframe
df = df.replace(‘\n’,’ ‘, regex=True) # clean data
df = df[[‘Comment’, ‘Likes’, ‘Time’,’UserLink’,’user’]].drop_duplicates(keep=”first”) # drop duplicate rows
df.to_csv(‘data.csv’,index=False) # export data to csv
df.head()

Результаты данных

7. Получите данные комментария.

label = df[‘Comment’]
label.head()

8. Фильтрация ненужных слов, таких как специальные слова, только 1 буква, двойной пробел и т. д.

processed_features = []
for sentence in range(0, len(label)):
 # Remove all the special characters
 processed_feature = re.sub(r’\W’, ‘ ‘, str(label.iloc[sentence]))
# remove all single characters
 processed_feature= re.sub(r’\s+[a-zA-Z]\s+’, ‘ ‘, processed_feature)
# Remove single characters from the start
 processed_feature = re.sub(r’^[a-zA-Z]\s+’, ‘’, processed_feature) 
 
 # Substituting multiple spaces with single space
 processed_feature = re.sub(r’\s+’, ‘ ‘, processed_feature, flags=re.I)
# Removing prefixed ‘b’
 processed_feature = re.sub(r’^b\s+’, ‘’, processed_feature)
 
 # Converting to Lowercase
 processed_feature = processed_feature.lower()
processed_features.append(processed_feature)

9. Загрузите ntlk для функций токенизатора и стоп-слов.

import nltk
nltk.download(‘punkt’) # Sentence Tokenizer
nltk.download(‘stopwords’) # Stopword

10. После этого сделайте стоп-слово для индонезийского языка. Язык можно изменить по желанию.

from nltk.corpus import stopwords
stop=nltk.corpus.stopwords.words(‘indonesia’)
label = label.apply(lambda x: “ “.join(x for x in x.split() if x not in stop))
label.head()

11. Уберите знаки препинания.

label = label.str.replace(‘[^\w\s]’,’’, regex=True)
label.head()

12. Создание wordcloud из данных, которые были обработаны ранее, есть несколько шаблонов для настройки макета, но больше похоже на результаты, потому что это просто и легко.

from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
word_string=” “.join(label.str.lower())
wordcloud = WordCloud(stopwords=STOPWORDS,
 background_color=’white’, 
 ).generate(word_string)
plt.figure(figsize=(50,25))
plt.imshow(wordcloud)
plt.axis(‘off’)
plt.show()

Спасибо

Instagram: @andyksetyawan
Facebook: Andyk Setyawan





Авторы: Фахрул Энди Сетьяван и Дви Октавиана Путери