Анализът на настроенията в социалните медии може да бъде много полезен за наблюдение на вашата марка, на вашите конкуренти или на всяка друга тема, която ви интересува. В тази статия ще ви покажем как да създадете система, която слуша социалните медии като 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 webhook (това е 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 и др. Тези LLM не са непременно бързи и могат да бъдат скъпи в мащаба, но гарантират най-съвременни резултати. Ако трябва да анализирате много големи обеми от ключови думи, може да искате да намалите разходите, като използвате по-малки модели, или да донастроите свой собствен модел.
Можете да внедрите свой собствен модел за изкуствен интелект или да се включите към API за изкуствен интелект, като OpenAI или NLP Cloud. В тази статия ще се включим към AI API на NLP Cloud.
Можете да се регистрирате в NLP Cloud и да изтеглите API ключа си тук.Не е необходимо заявката ви да е твърде сложна. Ето например един коментар в Reddit за OpenAI:
Коментар в Reddit за OpenAI
Нека да използваме модела ChatDolphin в NLP Cloud, за да анализираме настроенията относно OpenAI в този коментар в Reddit. Първо, инсталирайте клиента на NLP Cloud на Python:
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