پرتوپرتو

مفاهیم تحلیل مخاطب

۵ گرایش مخاطب، ۹ احساس پیشرفته، شدت در برابر وضعیت، پلتفرم‌های صوتی‌تصویری (تلویزیون/رادیو/مطبوعات) و توکن‌های دامنه‌محور

پرتو در کنار سوشال لیستنینگ، برای تحلیل افکار مخاطبان سازمانی ساخته شده — همان سیستمی که پنل‌های پایش بازخورد عمومی برای واحدهای تصمیم‌گیر استفاده می‌کنند. این صفحه مفاهیم خاص این دامنه را که در DS کدگذاری شده توضیح می‌دهد. برای مفاهیم شبکه‌های اجتماعی + اینفلوئنسر، صفحه‌ی مفاهیم دامنه را ببینید.


۵ گرایش مخاطب (Audience Stance)

برای هر موضوع/برند پایش‌شده، نظرات منتشره در ۵ گرایش دسته‌بندی می‌شوند. این کلاس‌بندی ابتدا توسط تحلیل‌گر یا مدل ML تعیین می‌شود و سپس به‌عنوان رنگ‌بندی در کارت‌ها، نمودارهای Sankey، و توزیع‌های گرایش استفاده می‌شود.

کلید فنیکدبرچسب نمایشیتوکن CSSمعنی
pro-gov۱حامیان حکومت--flow-pro-govپشتیبان موضوع/برند، دیدگاه مثبت غالب
internal-critic۲منتقدان داخلی--flow-internal-criticبازخورد انتقادی همراه با پیشنهاد بهبود
internal-opponent۳مخالفان داخلی--flow-internal-opponentمخالف موضوع، با لحن جدی ولی نه افراطی
external-opponent۴مخالفان خارجی--flow-external-opponentمخالفت ساختاریافته یا کمپین‌محور
grey۵قشر خاکستری--flow-greyغیرقابل دسته‌بندی، بی‌طرف، نامرتبط
import { FlowBadge, FlowDistribution } from '@parto-system-design/ui'

<FlowBadge flow="pro-gov" />
<FlowBadge flow="internal-critic" />
<FlowDistribution data={{ 'pro-gov': 280, 'internal-critic': 80, 'internal-opponent': 40, 'external-opponent': 20, grey: 30 }} />

FLOW_KEYS ثابت در lib برای iteration: import { FLOW_KEYS, flowLabels } from '@parto-system-design/ui'.


۹ احساس پیشرفته (Emotion Scale)

برای تحلیل عمیق، DS در کنار ۳ سطح ساده‌ی sentiment، یک scale پیشرفته‌ی ۹ احساسی هم پشتیبانی می‌کند — برگرفته از مدل چرخ Plutchik. برای داشبوردهای تحلیلی + تفکیک عمیق احساس مناسب است؛ برای summary cards و list views، scale ساده‌تر کافی است.

کلیدفارسیتوکن CSSرنگ مرجع
angerخشم--emotion-angerقرمز اشباع‌شده
fearترس--emotion-fearبنفش-تیره
sadnessغم--emotion-sadnessنیلی
joyشادی--emotion-joyزرد-طلایی
disgustانزجار--emotion-disgustبنفش
surpriseشگفتی--emotion-surpriseآبی-آسمانی
trustاعتماد--emotion-trustسبز
anticipationانتظار--emotion-anticipationنارنجی-گرم
neutralخنثی--emotion-neutralخاکستری-آبی
import { EmotionBadge, EmotionDistribution } from '@parto-system-design/ui'

<EmotionBadge emotion="anger" />
<EmotionDistribution
  data={{ joy: 120, trust: 100, anger: 60, fear: 40, neutral: 80, anticipation: 50 }}
  variant="stacked"
/>

چه زمانی scale ساده، چه زمانی scale پیشرفته؟

  • Simple (3-class) via SentimentBadge — برای summary badges، compact cards، list views، dashboard headers. سرعت خوانش > دقت.
  • Advanced (9-emotion) via EmotionBadge + EmotionDistribution — برای detail views، تحلیل deep، Sankey breakdown. دقت > سرعت خوانش.

EmotionDistribution در حالت variant="compact" با topN می‌تواند emotionهای کم‌اهمیت را در یک chip «بقیه» ادغام کند.


شدت (Severity) در برابر وضعیت (Status)

دو مفهوم متمایز که اغلب با هم اشتباه گرفته می‌شوند:

Status — وضعیت زنده، انیمیشن‌دار

سه حالت نشان‌دهنده‌ی وضعیت لحظه‌ای که با pulse animation نمایش داده می‌شود:

کلیدکدفارسیتوکن CSSکاربرد
critical۱بحرانی--status-criticalحادثه/incident فعال — pulse قرمز
warning۲هشدار--status-warningشرایط در حال بدتر شدن
middle۳متوسط--status-middleوضعیت میانی، نیازمند پایش
low۴پایین--status-lowکم‌اهمیت/پایدار، اولویت پایین
import { StatusBadge } from '@parto-system-design/ui'

<StatusBadge status="critical" />  {/* pulse animation */}
<StatusBadge status="critical" animated={false} />  {/* static, for print */}

Severity — اولویت استاتیک، بدون انیمیشن

چهار سطح اولویت برای مرتب‌سازی و فیلتر؛ ربطی به «حالت زنده» ندارد:

کلیدفارسیتوکن CSS
urgentفوری--severity-urgent
highبالا--severity-high
mediumمتوسط--severity-medium
lowپایین--severity-low
import { SeverityBadge } from '@parto-system-design/ui'

<SeverityBadge severity="urgent" />
<SeverityBadge severity="high" variant="solid" />  {/* full fill */}
<SeverityBadge severity="medium" variant="soft" />  {/* tinted, default */}

قاعده‌ی سرانگشتی: اگر چیزی زنده عوض می‌شود (incident فعال‌شد/فروکش‌کرد) → Status. اگر چیزی یک‌بار طبقه‌بندی شد و در طول زمان ثابت می‌ماند (alert rule severity، report priority) → Severity.


پلتفرم‌های صوتی‌تصویری — TV / Radio / Press

علاوه بر ۷ پلتفرم اجتماعی استاندارد (Instagram، X، TikTok، YouTube، LinkedIn، Telegram، Threads)، DS برای پایش رسانه‌ای، این منابع کلاسیک را هم اضافه می‌کند:

کلیدفارسیتوکن CSSتم
tvتلویزیون--social-platform-tvtheme-independent
radioرادیو--social-platform-radiotheme-independent
pressمطبوعات--social-platform-presstheme-aware

tv و radio در هر دو تم رنگ یکسان دارند (شخصیت برندی غالب). press بسته به theme تنظیم می‌شود (در light theme dark navy، در dark theme روشن‌تر).

import { SocialPlatformBadge } from '@parto-system-design/ui'

<SocialPlatformBadge platform="tv" />
<SocialPlatformBadge platform="press" />

چه زمانی از این‌ها استفاده کنیم؟

  • بولتن‌های پایش رسانه — هرجا که داده‌ی شبکه‌های اجتماعی با پوشش رسانه‌ی کلاسیک ترکیب می‌شود، این پلتفرم‌ها سهم رسانه‌ی سنتی را نمایان می‌کنند
  • PostCard — پشتیبانی یکپارچه از ۱۱ منبع (شبکه‌های اجتماعی + TV/Radio/Press/Web) در یک API واحد با header variants per source category

تشخیص بات (Bot Detection)

برای ارزیابی اعتبار حساب‌ها، DS یک scale سه‌سطحه دارد:

کلیدفارسیتوکن semantic
realواقعی--sentiment-positive (سبز)
suspiciousمشکوک--warning-default (نارنجی)
botبات--destructive-default (قرمز)

این به‌صورت BotDetectionMeter در کارت‌های پروفایل + audit صفحات استفاده می‌شود.

import { BotDetectionMeter } from '@parto-system-design/ui'
;<BotDetectionMeter data={{ real: 824, suspicious: 156, bot: 74 }} />

نمره‌ی ارزیابی (Score Tiers)

برای ارزیابی کیفیت یک پیج/حساب/گزارش، DS یک scale ۵ سطحه دارد:

کلیدفارسیتوکن CSS
excellentعالی--score-excellent
goodخوب--score-good
moderateمتوسط--score-moderate
poorضعیف--score-poor
criticalبحرانی--score-critical

پیش‌فرض thresholdها (نرمال‌سازی روی scale 0..100): excellent ≥ 80، good ≥ 60، moderate ≥ 40، poor ≥ 20، critical < 20. در CriterionScoreCard و EngagementRateBenchmark استفاده می‌شود.

import { CriterionScoreCard } from '@parto-system-design/ui'
;<CriterionScoreCard name="کیفیت محتوا" score={72} weight={0.4} trend={{ delta: +8 }} />
{
  /* tier از score خودکار محاسبه می‌شود → "good" → سبز */
}

کارت‌های دامنه‌محور

شش کارت برای پنل‌های پایش به‌صورت primitive موجود است:

کارتکاربرد
ConceptCardکلاستر + نمره + توزیع گرایش + توزیع sentiment + sparkline + AI summary + checkbox
PageCardاکانت ردیابی‌شده با follower trend + content mix + bot detection
AlertRuleCardتعریف alert (شرط + threshold + کانال + شدت)
SavedQueryCardجستجوی ذخیره‌شده با runCount + lastRun
EntityHealthCardhealth بلندمدت worker/page/data-source — 6 سطح severity (banned → healthy)
JobCardکار async در حال اجرا (با progress، meta، actions)

برای جزئیات هر کدام، صفحه‌ی کامپوننت مربوطه را ببینید.


توزیع جغرافیایی — استان‌های ایران

برای داده‌ی per-province، IranProvinceHeat یک لیست افقی با heat-bar ارائه می‌دهد. ۳۱ استان ایران با کد ISO 3166-2:IR و برچسب trilingual (fa/ar/en) در lib به‌عنوان IRAN_PROVINCES export شده. findProvince() و getProvinceLabel() برای lookup در دسترس‌اند.

import { IranProvinceHeat } from '@parto-system-design/ui'
;<IranProvinceHeat
  data={{ tehran: 4820, isfahan: 2140, fars: 1480 }}
  scale="severity-urgent"
  topN={10}
  hideMissing
  showRank
/>

بولتن‌سازی

برای ساخت bulletin پایش، ReportComposer + ۶ section template آماده وجود دارد:

import {
  ReportComposer,
  ExecutiveSummarySection,
  SentimentBreakdownSection,
  FlowDistributionSection,
  TopPostsSection,
  TimelineSection,
  SourceBreakdownSection,
  BulletinViewer,
} from '@parto-system-design/ui'

برای بازخوانی نهایی + پرینت، BulletinViewer با print:hidden action buttons و [&_section]:break-inside-avoid آماده است.