Аналіз настроїв у соціальних мережах може бути дуже корисним для моніторингу вашого бренду, конкурентів або будь-якої іншої теми, що вас цікавить. У цій статті ми покажемо вам, як створити систему, яка прослуховує соціальні мережі, такі як Reddit, Hacker News, Linkedin, Twitter тощо, і автоматично виконує аналіз настроїв у них завдяки генеративному ШІ.
Соціальне аудіювання - це акт уваги та інтерпретації розмов на будь-які теми на платформах соціальних мереж, сайтах оглядів та інших онлайн-каналах.
З іншого боку, аналіз настроїв - це процес визначення та класифікації думок, висловлених у тексті, як позитивних, негативних або нейтральних. Він передбачає використання обробки природної мови, аналізу тексту та комп'ютерної лінгвістики для систематичного виявлення, вилучення, кількісної оцінки та вивчення афективних станів і суб'єктивної інформації.
Поєднуючи соціальне прослуховування та аналіз настроїв, ви можете відстежувати та аналізувати настрої, висловлені в розмовах, пов'язаних з вашим брендом або вашими конкурентами. Це також відомо як "аналіз настроїв щодо бренду". Аналіз настроїв споживачів дозволяє автоматично зрозуміти, як споживачі ставляться до вашого бренду або ваших конкурентів, визначити сфери для вдосконалення, розпочати потрібну розмову в соціальних мережах для взаємодії з потенційними клієнтами та приймати рішення на основі даних, щоб покращити репутацію вашого бренду та лояльність клієнтів.
Створення платформи соціального прослуховування вимагає підключення до платформи соціальних мереж і отримання всіх нових постів і коментарів, що містять ключові слова, які ви хочете відстежувати.
Цього легше досягти, якщо платформа, яку ви плануєте відстежувати, надає API. Наприклад, Reddit надає API, який ви можете легко використовувати. Ось простий cURL-запит, який витягує останні 100 дописів Reddit:
curl https://www.reddit.com/r/all/new/.json?limit=100
А ось типова відповідь, яку повертає їхній API:
{
"kind": "Listing",
"data": {
"after": "t3_1asad4n",
"dist": 100,
"modhash": "ne8fi0fr55b56b8a75f8075df95fa2f03951cb5812b0f9660d",
"geo_filter": "",
"children": [
{
"kind": "t3",
"data": {
"approved_at_utc": null,
"subreddit": "GunAccessoriesForSale",
"selftext": "Morning gents. I\u2019m looking to snag up your forgotten factory yellow spring for the 509T. I need to source one for a buddy who lost his and I cannot find any available anywhere! \n\nIf one of you have the yellow spring laying around, looking to pay $50 shipped\u2026 \n\nTo my 509t owners, it\u2019s the \u201clight\u201d spring that comes in a plastic bag in the carrying case. \n\nThanks in advance ",
"author_fullname": "t2_2ezh71n6",
"saved": false,
"mod_reason_title": null,
"gilded": 0,
"clicked": false,
"title": "[WTB] 509T yellow spring",
"link_flair_richtext": [],
"subreddit_name_prefixed": "r/GunAccessoriesForSale",
[...]
"contest_mode": false,
"mod_reports": [],
"author_patreon_flair": false,
"author_flair_text_color": "dark",
"permalink": "/r/GunAccessoriesForSale/comments/1asadbj/wtb_509t_yellow_spring/",
"parent_whitelist_status": null,
"stickied": false,
"url": "https://www.reddit.com/r/GunAccessoriesForSale/comments/1asadbj/wtb_509t_yellow_spring/",
"subreddit_subscribers": 182613,
"created_utc": 1708094934.0,
"num_crossposts": 0,
"media": null,
"is_video": false
}
},
[...]
]
}
}
Ми створили спеціальний підручник, який показує, як моніторити Reddit за допомогою простої програми Go. Детальніше про те, як моніторити Reddit за допомогою Go, читайте тут.
Кожна платформа соціальних мереж має свої тонкощі, які ми, на жаль, не можемо висвітлити в цій статті. Для того, щоб легко відстежувати соціальні мережі (такі як Reddit, Linkedin, X, Hacker News та інші), ви можете підписатися на спеціальну платформу соціального прослуховування, наприклад, на наш сервіс KWatch.io. Спробуйте KWatch.io безкоштовно тут.
Додайте ключові слова до інформаційної панелі KWatch.io
Одними з основних викликів під час прослуховування соціальних мереж є великий обсяг даних, з якими вам доводиться працювати, той факт, що платформа соціальних мереж може заблокувати вас, якщо ви зробите занадто багато запитів, і той факт, що ви повинні бути обережними в тому, як ви обробляєте дані.
У наступному розділі ми пояснимо, як інтегрувати зібрані дані у вашу систему.
Після того, як ви зібрали дані з платформ соціальних мереж, вам потрібно зберегти їх у базі даних або сховищі даних. Це дозволить вам аналізувати дані, проводити аналіз настроїв та генерувати інсайти.
Існує кілька способів зберігання даних із соціальних мереж (які в основному є чистими текстовими даними), залежно від ваших вимог і обсягу даних, з якими ви маєте справу. Ось деякі з найпоширеніших варіантів:
Якщо ви підписалися на соціальну платформу для прослуховування, перевірте, чи пропонує вона спосіб перенесення даних у вашу систему.
Веб-хуки, які часто називають "веб-запитами зворотного виклику" або "HTTP push API", слугують для додатків засобом обміну даними в режимі реального часу з іншими додатками. Це досягається шляхом генерації HTTP POST-запитів при виникненні певних подій, таким чином оперативно передаючи інформацію іншим додаткам.
Наприклад, на нашій платформі, KWatch.io, вам потрібно перейти до розділу "Сповіщення" і встановити URL-адресу веб-хука, що вказує на вашу систему.
API Webhook на KWatch.io
Ось як виглядає веб-хук KWatch.io (це корисне навантаження у форматі JSON):
{
"platform": "reddit",
"query": "Keywords: vllm",
"datetime": "19 Jan 24 05:52 UTC",
"link": "https://www.reddit.com/r/LocalLLaMA/comments/19934kd/sglang_new/kijvtk5/",
"content": "sglang runtime has a different architecture on the higher-level part with vllm.",
}
Якщо ви новачок, ви можете легко отримати ці веб-хуки в Python за допомогою FastAPI.
Встановіть FastAPI з сервером Uvicorn:
pip install fastapi uvicorn
Тепер створіть новий файл Python і вставте наступний код (можливо, вам доведеться адаптувати цей скрипт):
# Import necessary modules
from fastapi import FastAPI
from pydantic import BaseModel
# Initialize your FastAPI app
app = FastAPI()
# Update the Pydantic model to properly type-check and validate the incoming data
class WebhookData(BaseModel):
platform: str
query: str
datetime: str
link: str
content: str
# Define an endpoint to receive webhook data
@app.post("/kwatch-webhooks")
async def receive_webhook(webhook_data: WebhookData):
# Process the incoming data
# For demonstration, we're just printing it
print("Received webhook data:", webhook_data.dict())
# Return a response
return {"message": "Webhook data received successfully"}
if __name__ == "__main__":
# Run the server with Uvicorn
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
Збережіть файл і запустіть сервер наступною командою:
uvicorn webhook_server:app — reload — host 0.0.0.0 — port 8000
Ваш сервер запущено і він готовий приймати веб-хуки від KWatch.io.
Після того, як ви зібрали та зберегли дані з соціальних мереж, ви можете провести аналіз настроїв.
Сьогодні найточніший спосіб виконати аналіз настроїв на фрагменті тексту за певним ключовим словом - це використати генеративні моделі ШІ, такі як GPT-4, LLaMA 3, ChatDolphin тощо. Ці ШНМ не обов'язково швидкі і можуть бути дорогими в масштабі, але вони гарантують найсучасніші результати. Якщо вам потрібно проаналізувати дуже великі обсяги ключових слів, ви можете зменшити витрати, використовуючи менші моделі, або доопрацювати власну модель.
Ви можете розгорнути власну модель штучного інтелекту або підключитися до AI API, наприклад, OpenAI або NLP Cloud. У цій статті ми розглянемо підключення до AI API NLP Cloud.
Ви можете зареєструватися в NLP Cloud і отримати ключ API тут.Ваш запит не повинен бути надто складним. Наприклад, ось коментар на Reddit про OpenAI:
Коментар на Reddit про OpenAI
Давайте використаємо модель ChatDolphin на NLP Cloud, щоб проаналізувати настрої щодо OpenAI в цьому коментарі на Reddit. Спочатку встановіть Python-клієнт NLP Cloud:
pip install nlpcloud
Тепер ви можете проаналізувати настрій коментаря на Reddit за допомогою наступного коду на Python:
import nlpcloud
brand = "OpenAI"
reddit_comment = "Wasn't it the same with all OpenAI products? Amazing and groundbreaking at first, soon ruined by excessive censorship and outpaced by the competitors"
client = nlpcloud.Client("chatdolphin", "your api token", gpu=True)
print(client.generation(f"What is the sentiment about {brand} in the following comment? Positive, negative, or neutral? Answer with 1 word only.\n\n{reddit_comment}"))
Відповідь буде:
Negative
Тепер давайте завершимо і напишемо фінальний код, який прослуховує веб-хук API і виконує аналіз настроїв на даних:
from fastapi import FastAPI
from pydantic import BaseModel
import nlpcloud
client = nlpcloud.Client("dolphin", "your api token", gpu=True)
app = FastAPI()
class WebhookData(BaseModel):
platform: str
query: str
datetime: str
link: str
content: str
@app.post("/kwatch-webhooks")
async def receive_webhook(webhook_data: WebhookData):
brand = "OpenAI"
print(client.generation(f"""What is the sentiment about {brand} in the following comment? Positive, negative, or neutral? Answer with 1 word only.\n\n
{webhook_data.content}"""))
return {"message": "Webhook data received successfully"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
Як бачите, за допомогою сучасних генеративних моделей ШІ та ефективних інструментів соціального прослуховування можна автоматизувати аналіз настроїв у соціальних мережах. Такий підхід можна застосовувати в різних сценаріях моніторингу соціальних мереж. Ось кілька ідей:
Однак створення такої програми може бути складним завданням. По-перше, тому що соціальні мережі не так легко контролювати, а по-друге, тому що генеративні моделі ШІ можуть бути дорогими для використання на великих обсягах даних.
Якщо ви не хочете створювати та підтримувати таку систему самостійно, ми рекомендуємо вам скористатися нашою платформою KWatch.io, оскільки ми автоматично моніторимо соціальні мережі та проводимо аналіз настроїв на основі виявлених постів та коментарів: зареєструватися на KWatch.io тут.
Arthur
Технічний директор у KWatch.io