مفاهیم تحلیل مخاطب
۵ گرایش مخاطب، ۹ احساس پیشرفته، شدت در برابر وضعیت، پلتفرمهای صوتیتصویری (تلویزیون/رادیو/مطبوعات) و توکنهای دامنهمحور
پرتو در کنار سوشال لیستنینگ، برای تحلیل افکار مخاطبان سازمانی ساخته شده — همان سیستمی که پنلهای پایش بازخورد عمومی برای واحدهای تصمیمگیر استفاده میکنند. این صفحه مفاهیم خاص این دامنه را که در 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-tv | theme-independent |
radio | رادیو | --social-platform-radio | theme-independent |
press | مطبوعات | --social-platform-press | theme-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 |
EntityHealthCard | health بلندمدت 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 آماده است.