CoderCastrov logo
CoderCastrov
Парсер

Обработка тематического моделирования / Облако слов

Обработка тематического моделирования / Облако слов
просмотров
4 мин чтение
#Парсер
Table Of Content

Определение

Что такое облако слов? Облако слов - это один из методов визуализации текстовых данных. Этот график популярен в области обработки текстов, так как он легко понятен. С помощью облака слов можно отобразить частоту использования слов в привлекательной и информативной форме. Чем чаще слово используется, тем больше его размер в облаке слов.

Подготовка

Для создания облака слов необходимы данные. В этом примере мы возьмем данные из Twitter.

Google Colab

Google Colab используется для написания и выполнения кода, и доступен по ссылке https://colab.research.google.com/. Затем нажмите "New notebook".

API Twitter

Чтобы получить API Twitter, вам необходимо зарегистрироваться в качестве разработчика на Twitter по ссылке https://developer.twitter.com/en/apply-for-access. Затем вы можете создать новый проект, чтобы получить API Twitter и токен доступа по ссылке https://developer.twitter.com/en/portal/projects-and-apps.

Tweepy

Tweepy - это библиотека, используемая для сбора данных из Twitter с использованием API Twitter и ключевых слов. Вот документация по tweepy https://docs.tweepy.org/en/latest/.

Natural Language Toolkit (NLTK)

NLTK - это платформа для разработки программ анализа текста. Вот ссылка на модуль NLTK https://www.nltk.org/py-modindex.html.


Как создать облако слов

Парсинг данных из Twitter

Первым шагом является установка Tweepy в Google Colab

# Установка библиотеки!pip install tweepy

Затем импортируем библиотеки

# Импорт библиотекimport tweepyimport pandas as pdimport numpy as np

Затем заполните ключ API и токен доступа Twitter

# Заполните ключ APIAPI_key = 'Вставьте ваш ключ API'API_secret = 'Вставьте ваш секретный ключ API'access_token = 'Вставьте ваш токен доступа'access_token_secret = 'Вставьте ваш секретный токен доступа'

Затем выполните аутентификацию

# Аутентификацияauth = tweepy.OAuthHandler(API_key, API_secret)auth.set_access_token(access_token, access_token_secret)api = tweepy.API(auth)

Далее найдите твиты с помощью ключевого слова и желаемого количества

# Поиск твитов по ключевому словуtweets = api.search('chanyeol', count=5000, lang='id')

Затем отобразите твиты

# Показать твитыtweets
Вывод твитов

Отобразите первые 25 твитов в виде таблицы

# Вывести собранные твитыdata = pd.DataFrame()data['Created At'] = [tweet.created_at for tweet in tweets]data['Screen Name'] = [tweet.user.screen_name for tweet in tweets]data['Tweet'] = [tweet.text for tweet in tweets]data['Location'] = [tweet.user.location for tweet in tweets]data['Number of Retweet'] = [tweet.retweet_count for tweet in tweets]data['Number of Like'] = [tweet.favorite_count for tweet in tweets]display(data.head(25))
Вывод данных твитов в виде таблицы

Сохраните данные в формате csv

# Сохранить в формате .CSVdata.to_csv('scarping-chanyeol.csv')

Затем загрузите csv-файл, полученный в результате выполнения кода, и загрузите его в папку на вашем диске.


Маппинг

Шаг 1: Импорт библиотек

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

Затем импортируем диск, чтобы получить доступ к CSV-файлу с диска. В этом процессе вам будет предложено ввести токен. Вы можете нажать на ссылку в выводе и перейти к своей учетной записи Google. Выберите учетную запись, в которой хранится CSV-файл, и скопируйте токен после этого. Введите скопированный токен в поле ввода в выводе, а затем нажмите Enter.

from google.colab import drive
drive.mount('/content/drive')

Затем укажите путь к CSV-файлу на диске для загрузки данных CSV.

dataset = pd.read_csv("/content/drive/My Drive/TTKI/scarping-chanyeol.csv")

Затем отобразите первые несколько строк данных в виде таблицы.

dataset.head()
Output Head

Объявите содержимое твита в переменной и отобразите его.

label = dataset['Tweet']
label[:10]
Output Label

Затем выполните очистку текста.

processed_features = []
for sentence in range(0, len(label)):
    # Удаление всех специальных символов
    processed_feature = re.sub(r'\W', ' ', str(label[sentence]))
    # Удаление всех отдельных символов
    processed_feature = re.sub(r'\s+[a-zA-Z]\s+', ' ', processed_feature)
    # Удаление отдельных символов в начале
    processed_feature = re.sub(r'^[a-zA-Z]\s+', '', processed_feature)
    # Замена нескольких пробелов одним пробелом
    processed_feature = re.sub(r'\s+', ' ', processed_feature, flags=re.I)
    # Удаление префикса 'b'
    processed_feature = re.sub(r'^b\s+', '', processed_feature)
    # Преобразование в нижний регистр
    processed_feature = processed_feature.lower()
    processed_features.append(processed_feature)

Импорт NLTK.

import nltk
nltk.download('punkt') # Токенизатор предложений
nltk.download('stopwords') # Стоп-слова
Output NLTK

Импорт стоп-слов на индонезийском языке.

from nltk.corpus import stopwords
stop = nltk.corpus.stopwords.words('indonesian')
label = label.apply(lambda x: " ".join(x for x in x.split() if x not in stop))
label.head()
Output Stopword

Затем удалите пунктуацию.

label = label.str.replace('[^\w\s]','')
label = label.str.replace('RT','')
label = label.str.replace('[\d]', '')
label.head()
Output setelah tanda baca dihilangkan

Последний шаг - облако слов.

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=(15,10))
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
Output Word Cloud

Ссылки :

https://untag-sby.ac.id

https://informatika.untag-sby.ac.id