Sosyal medyada duygu analizi, markanızı, rakiplerinizi veya ilgilendiğiniz herhangi bir konuyu izlemek için çok yararlı olabilir. Bu makalede, Reddit, Hacker News, Linkedin, Twitter gibi sosyal medyayı dinleyen ve üretken yapay zeka sayesinde içerik üzerinde otomatik olarak duygu analizi yapan bir sistemin nasıl oluşturulacağını gösteriyoruz.
Sosyal dinleme, sosyal medya platformlarında, inceleme sitelerinde ve diğer çevrimiçi kanallarda herhangi bir konu etrafındaki konuşmalara dikkat etme ve bunları yorumlama eylemidir.
Duygu analizi ise bir metin parçasında ifade edilen görüşlerin olumlu, olumsuz veya tarafsız olarak tanımlanması ve kategorize edilmesi sürecidir. Duygusal durumları ve öznel bilgileri sistematik olarak tanımlamak, ayıklamak, ölçmek ve incelemek için doğal dil işleme, metin analizi ve hesaplamalı dilbilimi kullanmayı içerir.
Sosyal dinleme ve duyarlılık analizini birleştirdiğinizde, markanız veya rakiplerinizle ilgili konuşmalarda ifade edilen duyarlılığı izleyebilir ve analiz edebilirsiniz. Bu aynı zamanda "marka duyarlılık analizi" olarak da bilinir. Marka duyarlılık analizi, tüketicilerin markanız veya rakipleriniz hakkında ne düşündüğünü otomatik olarak anlamanıza, iyileştirme alanlarını belirlemenize, potansiyel müşterilerle etkileşim kurmak için sosyal medyada doğru sohbete atlamanıza ve markanızın itibarını ve müşteri sadakatini artırmak için veriye dayalı kararlar almanıza olanak tanır.
Bir sosyal dinleme platformu oluşturmak için bir sosyal medya platformuna bağlanmanız ve izlemek istediğiniz anahtar kelimeleri içeren her yeni gönderiyi ve yorumu almanız gerekir.
İzlemeyi planladığınız platform bir API sunuyorsa, bu daha kolay elde edilir. Örneğin, Reddit kolayca kullanabileceğiniz bir API sunar. İşte son 100 Reddit gönderisini alan basit bir cURL isteği:
curl https://www.reddit.com/r/all/new/.json?limit=100
Ve işte API'leri tarafından döndürülen tipik bir yanıt:
{
"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
}
},
[...]
]
}
}
Basit bir Go programı ile Reddit'in nasıl izleneceğini gösteren özel bir eğitim hazırladık. Go ile Reddit'i nasıl izleyeceğiniz hakkında daha fazla bilgi edinin.
Her sosyal medya platformunun maalesef bu makalede ele alamayacağımız kendi incelikleri vardır. Sosyal medya platformlarını (Reddit, Linkedin, X, Hacker News ve daha fazlası gibi) kolayca izlemek için KWatch.io hizmetimiz gibi özel bir sosyal dinleme platformuna abone olmak isteyebilirsiniz. KWatch.io'yu buradan ücretsiz deneyin.
KWatch.io Kontrol Panelinize Anahtar Kelimeler Ekleyin
Sosyal medya dinlemesi yaparken karşılaşılan başlıca zorluklardan bazıları, ele almanız gereken veri hacminin yüksek olması, çok fazla talepte bulunursanız sosyal medya platformu tarafından engellenebileceğiniz gerçeği ve verileri ele alma şekliniz konusunda akıllı olmanız gerektiğidir.
Bir sonraki bölümde, toplanan verilerin sisteminize nasıl entegre edileceğini açıklayacağız.
Sosyal medya platformlarından verileri topladıktan sonra, bunları bir veritabanında veya veri ambarında saklamanız gerekir. Bu, verileri analiz etmenize, duygu analizi yapmanıza ve içgörüler oluşturmanıza olanak tanıyacaktır.
Gereksinimlerinize ve uğraştığınız veri hacmine bağlı olarak sosyal medya verilerini (temelde saf metin verileridir) depolamanın çeşitli yolları vardır. Bazı yaygın seçenekler şunlardır:
Bir sosyal dinleme platformuna abone olduysanız, verileri sisteminize aktarmak için bir yol sunup sunmadıklarını kontrol etmelisiniz.
Genellikle 'web geri aramaları' veya 'HTTP push API' olarak adlandırılan web kancaları, uygulamaların gerçek zamanlı verileri diğer uygulamalarla paylaşması için bir araç görevi görür. Bu, belirli olaylar gerçekleştiğinde HTTP POST istekleri oluşturarak ve böylece diğer uygulamalara anında bilgi sağlayarak gerçekleştirilir.
Örneğin platformumuz KWatch.io'da "bildirimler" bölümüne gitmeli ve sisteminize işaret eden bir web kancası URL'si ayarlamalısınız.
KWatch.io'da API Webhook
İşte KWatch.io web kancasının nasıl göründüğü (bu bir JSON yüküdür):
{
"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.",
}
Bu konuda yeniyseniz, FastAPI kullanarak Python'da bu web kancalarını zahmetsizce alabilirsiniz.
FastAPI'yi Uvicorn sunucusuyla birlikte yükleyin:
pip install fastapi uvicorn
Şimdi yeni bir Python dosyası oluşturun ve aşağıdaki kodu yapıştırın (bu kodu uyarlamanız gerekebilir):
# 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)
Dosyayı kaydedin ve sunucuyu aşağıdaki komutla çalıştırın:
uvicorn webhook_server:app — reload — host 0.0.0.0 — port 8000
Sunucunuz artık çalışıyor ve KWatch.io'dan web kancaları almaya hazır.
Sosyal medya verilerini toplayıp depoladıktan sonra, bu veriler üzerinde duygu analizi yapabilirsiniz.
Günümüzde belirli bir anahtar kelimeyle ilgili bir metin parçası üzerinde duygu analizi yapmanın en doğru yolu GPT-4, LLaMA 3, ChatDolphin vb. gibi üretken yapay zeka modelleri kullanmaktır. Bu LLM'lerin hızlı olması gerekmez ve ölçekte maliyetli olabilir, ancak son teknoloji sonuçları garanti ederler. Çok yüksek hacimli anahtar kelimeleri analiz etmeniz gerekiyorsa, daha küçük modeller kullanarak maliyetleri düşürmek veya kendi modelinize ince ayar yapmak isteyebilirsiniz.
Kendi AI modelinizi dağıtabilir veya OpenAI veya NLP Cloud gibi bir AI API'sine bağlayabilirsiniz. Bu makalede NLP Cloud AI API'sine bağlanacağız.
NLP Cloud'a kaydolabilir ve API anahtarınızı buradan alabilirsiniz.Talebinizin çok karmaşık olması gerekmez. Örneğin burada Reddit'te OpenAI hakkında bir yorum var:
Reddit'te OpenAI Hakkında Bir Yorum
Bu Reddit yorumunda OpenAI hakkındaki duyarlılığı analiz etmek için NLP Cloud'daki ChatDolphin modelini kullanalım. İlk olarak, NLP Cloud Python istemcisini yükleyin:
pip install nlpcloud
Şimdi aşağıdaki Python kodu ile Reddit yorumunun duyarlılığını analiz edebilirsiniz:
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}"))
Yanıt şöyle olacak:
Negative
Şimdi toparlanalım ve API web kancasını dinleyen ve veriler üzerinde duygu analizi gerçekleştiren son kodu yazalım:
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)
Gördüğünüz gibi, modern üretken yapay zeka modelleri ve verimli sosyal dinleme araçları yardımıyla sosyal medya verileri üzerinde duygu analizini otomatikleştirmek mümkündür. Bu yaklaşım çeşitli sosyal medya izleme senaryolarında uygulanabilir. İşte bazı fikirler:
Ancak böyle bir programın üretilmesi zor olabilir. Birincisi, sosyal medyanın izlenmesi o kadar kolay olmadığı için, aynı zamanda üretken yapay zeka modellerinin büyük hacimli veriler üzerinde kullanılması maliyetli olabileceği için.
Böyle bir sistemi kendi başınıza kurmak ve sürdürmek istemiyorsanız, sosyal medyayı otomatik olarak izlediğimiz ve tespit edilen gönderiler ve yorumlar üzerinde duygu analizi yaptığımız için bunun yerine KWatch.io platformumuzu kullanmanızı öneririz: KWatch.io'ya buradan kaydolun.
Arthur
KWatch.io'da CTO