kakaotalk-chat-analyzer 0.24.0 → 0.24.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/src/accumulator/aggregator-helpers.js +36 -35
- package/dist/src/accumulator/aggregator-helpers.js.map +1 -1
- package/dist/src/aggregator.d.ts +2 -0
- package/dist/src/aggregator.js +163 -14
- package/dist/src/aggregator.js.map +1 -1
- package/dist/src/dyad-matrix.js +10 -1
- package/dist/src/dyad-matrix.js.map +1 -1
- package/dist/src/event-spine.js +44 -26
- package/dist/src/event-spine.js.map +1 -1
- package/dist/src/llm-deck-validate.d.ts +1 -0
- package/dist/src/llm-deck-validate.js +122 -5
- package/dist/src/llm-deck-validate.js.map +1 -1
- package/dist/src/llm-gpu-policy.js +4 -0
- package/dist/src/llm-gpu-policy.js.map +1 -1
- package/dist/src/llm-llama-core.js +0 -2
- package/dist/src/llm-llama-core.js.map +1 -1
- package/dist/src/llm-summarize.js +2 -4
- package/dist/src/llm-summarize.js.map +1 -1
- package/dist/src/memorable-moments.d.ts +2 -1
- package/dist/src/memorable-moments.js +67 -28
- package/dist/src/memorable-moments.js.map +1 -1
- package/dist/src/report-chart-util.js +15 -3
- package/dist/src/report-chart-util.js.map +1 -1
- package/dist/src/report-llm-deck.js +41 -19
- package/dist/src/report-llm-deck.js.map +1 -1
- package/dist/src/report-styles.d.ts +1 -1
- package/dist/src/report-styles.js +90 -16
- package/dist/src/report-styles.js.map +1 -1
- package/dist/src/report.js +39 -44
- package/dist/src/report.js.map +1 -1
- package/dist/src/room-narrative.js +5 -5
- package/dist/src/room-narrative.js.map +1 -1
- package/dist/src/story.js +7 -10
- package/dist/src/story.js.map +1 -1
- package/dist/src/toxicity-analyze.js +4 -1
- package/dist/src/toxicity-analyze.js.map +1 -1
- package/dist/src/types.d.ts +7 -0
- package/dist/src/version.d.ts +2 -2
- package/dist/src/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -262,6 +262,8 @@ cd kakaotalk-chat-analyzer && npm install && npm run build && npm test
|
|
|
262
262
|
|
|
263
263
|
| 버전 | 요약 |
|
|
264
264
|
|------|------|
|
|
265
|
+
| **0.24.2** | **macOS LLM 크래시 수정** — Metal 우선 사용으로 리포트 LLM 서사 네이티브 크래시(Metal/GGUF) 해결 · `kcachat` 0.1.78 |
|
|
266
|
+
| **0.24.1** | **리포트 인사이트 품질 강화** — 대화 근거 기반 핫토픽·기억나는 순간·LLM 서사 품질 게이트 · `kcachat` 0.1.78 |
|
|
265
267
|
| **0.23.0** | **v3 통합 카드 시스템** — 리포트 레이아웃 전면 재설계 · 12개 CSS 토큰 · 5계층 카드 시스템 · OLED 글라스 6종 확장 · 히어로 재설계 · #s-charts 구조화 · 헤딩 계층 정비 · 컬러 토큰화 |
|
|
266
268
|
| **0.22.6** | **프리미엄 리디자인** — 랜딩 페이지·리포트 CSS 전면 개편 · **글라스 2.0** 테마 · **벤토 그리드** 기능 카드 · **인터랙티브 마우스 트래킹** · 접근성 개선 (**focus-visible**, 대비 강화, reduced motion) · light theme 보완 |
|
|
267
269
|
| **0.22.3** | **5개 신규 지표**(질문·독백·세션·피크일·도메인) · **3개 LLM 섹션 활성화**(관계·시대·그날) · **소셜 네트워크 그래프** · **감정 롤러코스터** · **토픽 트랜드** · 참여자 **10명+더보기** · 모바일 **ECharts 최적화** · 네비 번호 연속성 · `insightBullets` 버그 수정 |
|
|
@@ -258,55 +258,56 @@ export function buildParticipantRoles(participants, laughBySender, shortBySender
|
|
|
258
258
|
if (participants.length === 0)
|
|
259
259
|
return [];
|
|
260
260
|
const sortedByMessages = [...participants].sort((a, b) => b.messages - a.messages);
|
|
261
|
-
const avgLengthOverall = participants.reduce((
|
|
262
|
-
const
|
|
263
|
-
const top50 = Math.ceil(participants.length * 0.5);
|
|
261
|
+
const avgLengthOverall = participants.reduce((sum, p) => sum + p.averageLength, 0) / participants.length;
|
|
262
|
+
const pickedRoles = new Set();
|
|
264
263
|
const results = [];
|
|
265
264
|
for (const p of participants) {
|
|
266
265
|
const rawAlias = [...aliases.entries()].find(([, a]) => a === p.alias)?.[0];
|
|
267
266
|
const laughCount = rawAlias ? (laughBySender.get(rawAlias) ?? 0) : 0;
|
|
268
267
|
const shortCount = rawAlias ? (shortBySender.get(rawAlias) ?? 0) : 0;
|
|
269
|
-
const
|
|
270
|
-
const
|
|
268
|
+
const msg = Math.max(p.messages, 1);
|
|
269
|
+
const laughRate = laughCount / msg;
|
|
270
|
+
const shortRate = shortCount / msg;
|
|
271
|
+
const nightRate = p.nightMessages / msg;
|
|
272
|
+
const attachRate = p.attachmentMessages / msg;
|
|
273
|
+
const linkRate = p.linkMessages / msg;
|
|
271
274
|
const rank = sortedByMessages.findIndex((x) => x.alias === p.alias);
|
|
272
|
-
const
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
const isShort = p.averageLength <= avgLengthOverall * 0.7;
|
|
276
|
-
const isVeryLong = p.averageLength >= avgLengthOverall * 1.5;
|
|
277
|
-
let role;
|
|
278
|
-
let confidence;
|
|
279
|
-
let reason;
|
|
280
|
-
if (isTop25 && isLong) {
|
|
281
|
-
role = "리더";
|
|
282
|
-
confidence = 0.9;
|
|
283
|
-
reason = `메시지 수 상위(${p.messages}건)에 평균 길이(${p.averageLength}자)가 전체 평균(${avgLengthOverall.toFixed(1)}자)보다 긴 주도형 참여자`;
|
|
275
|
+
const candidates = [];
|
|
276
|
+
if (rank === 0 && p.sharePercent >= 18) {
|
|
277
|
+
candidates.push({ role: "주도형", confidence: 0.92, reason: `메시지 비중 ${p.sharePercent}%로 대화 흐름을 가장 많이 만든 참여자`, score: p.sharePercent + 30 });
|
|
284
278
|
}
|
|
285
|
-
|
|
286
|
-
role
|
|
287
|
-
confidence = 0.8;
|
|
288
|
-
reason = `웃음 표현 비율(${Math.round(laughRate * 100)}%)이 높거나 짧은 반응 메시지가 많은 분위기 메이커`;
|
|
279
|
+
if (p.averageLength >= Math.max(28, avgLengthOverall * 1.45)) {
|
|
280
|
+
candidates.push({ role: "긴글러", confidence: 0.88, reason: `평균 ${p.averageLength}자로 긴 설명을 남기는 편`, score: p.averageLength });
|
|
289
281
|
}
|
|
290
|
-
|
|
291
|
-
role
|
|
292
|
-
confidence = 0.85;
|
|
293
|
-
reason = `메시지 수는 적지만 평균 길이(${p.averageLength}자)가 전체 평균(${avgLengthOverall.toFixed(1)}자)의 1.5배 이상인 깊이 있는 기여자`;
|
|
282
|
+
if (laughRate >= 0.12 && laughCount >= 8) {
|
|
283
|
+
candidates.push({ role: "분위기 메이커", confidence: 0.86, reason: `웃음 반응이 ${Math.round(laughRate * 100)}%로 뚜렷함`, score: laughRate * 100 });
|
|
294
284
|
}
|
|
295
|
-
|
|
296
|
-
role
|
|
297
|
-
confidence = 0.8;
|
|
298
|
-
reason = `메시지 수가 적고 짧은 메시지(${p.averageLength}자) 위주로 주로 관찰하는 참여자`;
|
|
285
|
+
if (shortRate >= 0.22 && shortCount >= 12) {
|
|
286
|
+
candidates.push({ role: "리액션러", confidence: 0.84, reason: `짧은 응답 비중 ${Math.round(shortRate * 100)}%로 빠른 반응이 많음`, score: shortRate * 100 });
|
|
299
287
|
}
|
|
300
|
-
|
|
301
|
-
role
|
|
302
|
-
|
|
303
|
-
|
|
288
|
+
if (linkRate >= 0.08 && p.linkMessages >= 8) {
|
|
289
|
+
candidates.push({ role: "자료 공유자", confidence: 0.84, reason: `링크 포함 메시지 ${p.linkMessages}건으로 자료 공유 신호가 강함`, score: linkRate * 100 });
|
|
290
|
+
}
|
|
291
|
+
if (attachRate >= 0.1 && p.attachmentMessages >= 8) {
|
|
292
|
+
candidates.push({ role: "첨부 장인", confidence: 0.82, reason: `사진·파일 첨부 ${p.attachmentMessages}건으로 시각 자료 기여가 큼`, score: attachRate * 100 });
|
|
293
|
+
}
|
|
294
|
+
if (nightRate >= 0.25 && p.nightMessages >= 10) {
|
|
295
|
+
candidates.push({ role: "심야 상주자", confidence: 0.82, reason: `심야 메시지 ${p.nightMessages}건으로 늦은 시간 활동이 두드러짐`, score: nightRate * 100 });
|
|
304
296
|
}
|
|
305
|
-
|
|
297
|
+
if (p.maxConsecutive >= 10) {
|
|
298
|
+
candidates.push({ role: "연속 발화자", confidence: 0.82, reason: `최대 ${p.maxConsecutive}연속 발화로 한 번에 흐름을 길게 이어감`, score: p.maxConsecutive * 3 });
|
|
299
|
+
}
|
|
300
|
+
candidates.sort((a, b) => b.score - a.score);
|
|
301
|
+
const picked = candidates.find((c) => !pickedRoles.has(c.role));
|
|
302
|
+
if (!picked)
|
|
303
|
+
continue;
|
|
304
|
+
pickedRoles.add(picked.role);
|
|
305
|
+
results.push({ alias: p.alias, role: picked.role, confidence: picked.confidence, reason: picked.reason });
|
|
306
|
+
if (results.length >= 6)
|
|
307
|
+
break;
|
|
306
308
|
}
|
|
307
309
|
return results;
|
|
308
310
|
}
|
|
309
|
-
/* ── 하이라이트 ── */
|
|
310
311
|
export function formatDayMdHighlight(ymd) {
|
|
311
312
|
const p = ymd.split("-");
|
|
312
313
|
if (p.length === 3)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregator-helpers.js","sourceRoot":"","sources":["../../../src/accumulator/aggregator-helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aggregator-helpers.js","sourceRoot":"","sources":["../../../src/accumulator/aggregator-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/src/aggregator.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ export declare class ReportAggregator {
|
|
|
57
57
|
private readonly dailyPlanSignals;
|
|
58
58
|
private readonly monthlyKeywordBuckets;
|
|
59
59
|
private readonly dailyKeywordBuckets;
|
|
60
|
+
private readonly dailyContextSamples;
|
|
60
61
|
private readonly dyads;
|
|
61
62
|
private readonly dailySentimentCounters;
|
|
62
63
|
private readonly senderHonorificCounts;
|
|
@@ -132,6 +133,7 @@ export declare class ReportAggregator {
|
|
|
132
133
|
label: string;
|
|
133
134
|
messageHits: number;
|
|
134
135
|
}[]): void;
|
|
136
|
+
private collectDailyContextSample;
|
|
135
137
|
consume(record: ChatRecord, opts?: {
|
|
136
138
|
keywordsOnly?: boolean;
|
|
137
139
|
skipKeywords?: boolean;
|
package/dist/src/aggregator.js
CHANGED
|
@@ -55,6 +55,110 @@ const EMOJI_RE = /\p{Extended_Pictographic}/u;
|
|
|
55
55
|
const LAUGH_RE = /(?:ㅋ{2,}|ㅎ{2,}|ㅠ+|ㅜ+|ㅇㅇ|ㅋㅋ|ㅎㅎ|ㅋㅎ|ㅎㅋ)/;
|
|
56
56
|
const LINK_HINT_RE = /https?:\/\/|www\./i;
|
|
57
57
|
const HAS_TOKEN_CHAR_RE = /[가-힣A-Za-z]/;
|
|
58
|
+
const DAILY_CONTEXT_SAMPLE_LIMIT = 18;
|
|
59
|
+
const DAILY_EVIDENCE_LIMIT = 5;
|
|
60
|
+
const CONTEXT_TOPIC_STOPWORDS = new Set([
|
|
61
|
+
"오늘", "내일", "지금", "방금", "저거", "이거", "그거", "저도", "제가", "혹시", "그냥", "진짜", "약간", "관련",
|
|
62
|
+
"http", "https", "링크", "사진", "영상", "이모티콘",
|
|
63
|
+
]);
|
|
64
|
+
function cleanContextText(text) {
|
|
65
|
+
return text
|
|
66
|
+
.replace(/https?:\/\/\S+|www\.\S+/gi, "링크")
|
|
67
|
+
.replace(/[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}/g, "이메일")
|
|
68
|
+
.replace(/\d{5,}/g, "숫자")
|
|
69
|
+
.replace(/\s+/g, " ")
|
|
70
|
+
.trim();
|
|
71
|
+
}
|
|
72
|
+
function trimEvidenceText(text, limit = 56) {
|
|
73
|
+
const cleaned = cleanContextText(text);
|
|
74
|
+
return cleaned.length > limit ? `${cleaned.slice(0, limit - 1)}…` : cleaned;
|
|
75
|
+
}
|
|
76
|
+
function scoreContextSample(text, flags) {
|
|
77
|
+
const lengthScore = Math.min(40, Math.max(0, text.length));
|
|
78
|
+
return lengthScore
|
|
79
|
+
+ (flags.hasPlan ? 18 : 0)
|
|
80
|
+
+ (flags.hasQuestion ? 10 : 0)
|
|
81
|
+
+ (flags.hasAttachment ? 10 : 0)
|
|
82
|
+
+ (flags.hasLink ? 8 : 0)
|
|
83
|
+
+ (flags.hasLaugh ? 5 : 0);
|
|
84
|
+
}
|
|
85
|
+
function topicTitleFromKeywords(keywords) {
|
|
86
|
+
if (keywords.length >= 2)
|
|
87
|
+
return `${keywords.slice(0, 2).join("·")} 이야기`;
|
|
88
|
+
if (keywords.length === 1)
|
|
89
|
+
return `${keywords[0]} 이야기`;
|
|
90
|
+
return "대화 흐름";
|
|
91
|
+
}
|
|
92
|
+
function deriveKeywordsFromSamples(samples) {
|
|
93
|
+
const counts = new Map();
|
|
94
|
+
for (const sample of samples.slice(0, 10)) {
|
|
95
|
+
for (const token of tokenizeForKeywords(sample.text).slice(0, 12)) {
|
|
96
|
+
const normalized = normalizeToken(token);
|
|
97
|
+
if (normalized.length < 2 || CONTEXT_TOPIC_STOPWORDS.has(normalized) || isNoiseKeyword(normalized))
|
|
98
|
+
continue;
|
|
99
|
+
counts.set(normalized, (counts.get(normalized) ?? 0) + 1);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return [...counts.entries()]
|
|
103
|
+
.sort((a, b) => b[1] - a[1] || b[0].length - a[0].length || a[0].localeCompare(b[0]))
|
|
104
|
+
.slice(0, 4)
|
|
105
|
+
.map(([label]) => label);
|
|
106
|
+
}
|
|
107
|
+
function countContextSignals(samples) {
|
|
108
|
+
const counts = [
|
|
109
|
+
{ label: "일정 조율", count: samples.filter((s) => s.hasPlan).length },
|
|
110
|
+
{ label: "질문·답변", count: samples.filter((s) => s.hasQuestion).length },
|
|
111
|
+
{ label: "자료 공유", count: samples.filter((s) => s.hasAttachment || s.hasLink).length },
|
|
112
|
+
{ label: "웃음·반응", count: samples.filter((s) => s.hasLaugh).length },
|
|
113
|
+
];
|
|
114
|
+
return counts.filter((item) => item.count > 0).sort((a, b) => b.count - a.count);
|
|
115
|
+
}
|
|
116
|
+
function representativeEvidence(samples, keywords) {
|
|
117
|
+
const lowered = keywords.map((k) => k.toLowerCase());
|
|
118
|
+
const ranked = [...samples]
|
|
119
|
+
.sort((a, b) => {
|
|
120
|
+
const aHit = lowered.some((k) => a.text.toLowerCase().includes(k)) ? 1 : 0;
|
|
121
|
+
const bHit = lowered.some((k) => b.text.toLowerCase().includes(k)) ? 1 : 0;
|
|
122
|
+
return bHit - aHit || b.score - a.score;
|
|
123
|
+
})
|
|
124
|
+
.slice(0, 2)
|
|
125
|
+
.map((s) => trimEvidenceText(s.text))
|
|
126
|
+
.filter(Boolean);
|
|
127
|
+
return [...new Set(ranked)].map((s) => `대표 흐름: ${s}`);
|
|
128
|
+
}
|
|
129
|
+
function buildDailyHotTopic(args) {
|
|
130
|
+
const lift = round(args.messageCount / Math.max(args.avgDailyMessages, 1), 1);
|
|
131
|
+
const keywords = args.keywords.length > 0 ? args.keywords : deriveKeywordsFromSamples(args.samples);
|
|
132
|
+
const signals = countContextSignals(args.samples);
|
|
133
|
+
const signalText = signals.slice(0, 3).map((s) => `${s.label} ${s.count}건`).join(" · ");
|
|
134
|
+
const keywordText = keywords.slice(0, 4).join(" · ");
|
|
135
|
+
const title = keywords.length > 0
|
|
136
|
+
? topicTitleFromKeywords(keywords)
|
|
137
|
+
: signals[0]
|
|
138
|
+
? `${signals[0].label} 중심 대화`
|
|
139
|
+
: "대화 급증일";
|
|
140
|
+
const summary = keywords.length > 0
|
|
141
|
+
? `${keywordText} 관련 언급이 모였고${signalText ? `, ${signalText} 흐름이 함께 보입니다` : " 그 주제가 반복됐습니다"}.`
|
|
142
|
+
: args.isBurst
|
|
143
|
+
? `평소보다 ${lift}배 많은 메시지가 오갔지만, 뚜렷한 키워드보다 ${signalText || "짧은 반응"}이 중심이었습니다.`
|
|
144
|
+
: `${signalText || "짧은 대화"} 중심으로 이어진 날입니다.`;
|
|
145
|
+
const evidence = [
|
|
146
|
+
keywordText ? `주요 언급: ${keywordText}` : "",
|
|
147
|
+
args.participantAliases.length > 0 ? `주도 참여자: ${args.participantAliases.slice(0, 3).join(" · ")}` : "",
|
|
148
|
+
signalText ? `대화 단서: ${signalText}` : "",
|
|
149
|
+
...representativeEvidence(args.samples, keywords),
|
|
150
|
+
].filter(Boolean).slice(0, DAILY_EVIDENCE_LIMIT);
|
|
151
|
+
return {
|
|
152
|
+
date: args.date,
|
|
153
|
+
title,
|
|
154
|
+
keywords,
|
|
155
|
+
summary,
|
|
156
|
+
evidence,
|
|
157
|
+
messageCount: args.messageCount,
|
|
158
|
+
lift,
|
|
159
|
+
participants: args.participantAliases,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
58
162
|
/** 규칙 기반 감정 키워드 — 긍정/부정/중립 분류 */
|
|
59
163
|
const POSITIVE_PATTERNS = [
|
|
60
164
|
/(?:\b|[^가-힣A-Za-z])(ㅋㅋ|ㅎㅎ|ㅋㅎ|ㅎㅋ)(?:\b|[^가-힣A-Za-z])/gu,
|
|
@@ -125,6 +229,7 @@ export class ReportAggregator {
|
|
|
125
229
|
dailyPlanSignals = new Map();
|
|
126
230
|
monthlyKeywordBuckets = new Map();
|
|
127
231
|
dailyKeywordBuckets = new Map();
|
|
232
|
+
dailyContextSamples = new Map();
|
|
128
233
|
dyads = new DyadAccumulator();
|
|
129
234
|
dailySentimentCounters = new Map();
|
|
130
235
|
senderHonorificCounts = new Map();
|
|
@@ -290,6 +395,23 @@ export class ReportAggregator {
|
|
|
290
395
|
this.keywordSupplement.addHits(item.label, corpusHits);
|
|
291
396
|
}
|
|
292
397
|
}
|
|
398
|
+
collectDailyContextSample(dayKey, msg, sender, flags) {
|
|
399
|
+
const text = cleanContextText(msg);
|
|
400
|
+
if (text.length < 4 || PURE_LAUGH_RE.test(text))
|
|
401
|
+
return;
|
|
402
|
+
const sample = {
|
|
403
|
+
text,
|
|
404
|
+
sender,
|
|
405
|
+
score: scoreContextSample(text, flags),
|
|
406
|
+
...flags,
|
|
407
|
+
};
|
|
408
|
+
const samples = this.dailyContextSamples.get(dayKey) ?? [];
|
|
409
|
+
samples.push(sample);
|
|
410
|
+
samples.sort((a, b) => b.score - a.score || b.text.length - a.text.length);
|
|
411
|
+
if (samples.length > DAILY_CONTEXT_SAMPLE_LIMIT)
|
|
412
|
+
samples.length = DAILY_CONTEXT_SAMPLE_LIMIT;
|
|
413
|
+
this.dailyContextSamples.set(dayKey, samples);
|
|
414
|
+
}
|
|
293
415
|
consume(record, opts) {
|
|
294
416
|
if (opts?.keywordsOnly) {
|
|
295
417
|
this.consumeKeywords(record);
|
|
@@ -327,6 +449,13 @@ export class ReportAggregator {
|
|
|
327
449
|
this.total += 1;
|
|
328
450
|
const wi = weekdayIndex(record.date);
|
|
329
451
|
if (!isPureSystem) {
|
|
452
|
+
this.collectDailyContextSample(dayKey, msg, record.sender, {
|
|
453
|
+
hasAttachment: foundAttachments.length > 0,
|
|
454
|
+
hasLink: foundDomains.length > 0,
|
|
455
|
+
hasPlan: PLAN_SIGNAL_RE.test(msg),
|
|
456
|
+
hasQuestion: msg.includes("?") || msg.includes("?"),
|
|
457
|
+
hasLaugh: LAUGH_RE.test(msg),
|
|
458
|
+
});
|
|
330
459
|
if (messageLength > 0 && EMOJI_RE.test(msg)) {
|
|
331
460
|
this.emojiMessages += 1;
|
|
332
461
|
const emojis = extractEmojis(msg);
|
|
@@ -829,27 +958,35 @@ export class ReportAggregator {
|
|
|
829
958
|
const energy = computeEnergy(counters.positive, counters.negative, counters.neutral);
|
|
830
959
|
return { date: d.date, positive, negative, neutral, energy };
|
|
831
960
|
});
|
|
961
|
+
const burstDateSet = new Set(burstDays.map((d) => d.date));
|
|
962
|
+
const avgDailyMessages = dailySorted.length > 0 ? total / dailySorted.length : 0;
|
|
832
963
|
const dailyHotTopics = dailySorted
|
|
833
964
|
.map((d) => {
|
|
834
965
|
const bucket = this.dailyKeywordBuckets.get(d.date);
|
|
835
|
-
const topKeywords = bucket ? bucket.topCounts(
|
|
836
|
-
const
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
return {
|
|
966
|
+
const topKeywords = bucket ? bucket.topCounts(4).map((item) => item.label) : [];
|
|
967
|
+
const participantAliases = topCounts(this.dailySenderCounts.get(d.date) ?? new Map(), 3)
|
|
968
|
+
.map((item) => aliases.get(item.label) ?? item.label);
|
|
969
|
+
return buildDailyHotTopic({
|
|
840
970
|
date: d.date,
|
|
841
971
|
keywords: topKeywords,
|
|
842
|
-
summary,
|
|
843
972
|
messageCount: d.count,
|
|
844
|
-
|
|
973
|
+
avgDailyMessages,
|
|
974
|
+
samples: this.dailyContextSamples.get(d.date) ?? [],
|
|
975
|
+
participantAliases,
|
|
976
|
+
isBurst: burstDateSet.has(d.date),
|
|
977
|
+
});
|
|
845
978
|
})
|
|
846
|
-
.filter((d) => d.keywords.length > 0 || d.
|
|
979
|
+
.filter((d) => d.keywords.length > 0 || d.evidence.length > 0 || burstDateSet.has(d.date))
|
|
980
|
+
.sort((a, b) => b.messageCount - a.messageCount)
|
|
981
|
+
.slice(0, 10)
|
|
982
|
+
.sort((a, b) => a.date.localeCompare(b.date));
|
|
847
983
|
const memorableMoments = extractMemorableMoments({
|
|
848
984
|
daily: dailySorted,
|
|
849
985
|
dailySentiment,
|
|
850
986
|
totalMessages: total,
|
|
851
987
|
firstMessageDate: this.firstDate ? formatDateTime(this.firstDate) : null,
|
|
852
988
|
lastMessageDate: this.lastDate ? formatDateTime(this.lastDate) : null,
|
|
989
|
+
dailyHotTopics,
|
|
853
990
|
});
|
|
854
991
|
const emojiInsight = {
|
|
855
992
|
totalEmojis: this.emojiMessages,
|
|
@@ -888,19 +1025,31 @@ export class ReportAggregator {
|
|
|
888
1025
|
const alias = aliases.get(rawSender);
|
|
889
1026
|
if (!alias)
|
|
890
1027
|
continue;
|
|
891
|
-
const
|
|
892
|
-
const
|
|
893
|
-
const
|
|
1028
|
+
const styledTotal = counts.honorific + counts.casual;
|
|
1029
|
+
const observedTotal = styledTotal + counts.neutral;
|
|
1030
|
+
const honorificRatio = styledTotal > 0 ? counts.honorific / styledTotal : 0;
|
|
1031
|
+
const casualRatio = styledTotal > 0 ? counts.casual / styledTotal : 0;
|
|
1032
|
+
const neutralRatio = observedTotal > 0 ? counts.neutral / observedTotal : 1;
|
|
1033
|
+
const styledCoverage = observedTotal > 0 ? styledTotal / observedTotal : 0;
|
|
894
1034
|
let dominantStyle = "mixed";
|
|
895
|
-
if (
|
|
1035
|
+
if (styledTotal < 3 || styledCoverage < 0.25)
|
|
1036
|
+
dominantStyle = "insufficient";
|
|
1037
|
+
else if (honorificRatio >= 0.7)
|
|
896
1038
|
dominantStyle = "honorific";
|
|
897
1039
|
else if (casualRatio >= 0.7)
|
|
898
1040
|
dominantStyle = "casual";
|
|
899
|
-
participantHonorifics.push({
|
|
1041
|
+
participantHonorifics.push({
|
|
1042
|
+
alias,
|
|
1043
|
+
honorificRatio,
|
|
1044
|
+
casualRatio,
|
|
1045
|
+
neutralRatio,
|
|
1046
|
+
sampleCount: observedTotal,
|
|
1047
|
+
dominantStyle,
|
|
1048
|
+
});
|
|
900
1049
|
roomHonorificCount += counts.honorific;
|
|
901
1050
|
roomCasualCount += counts.casual;
|
|
902
1051
|
}
|
|
903
|
-
participantHonorifics.sort((a, b) => b.honorificRatio - a.honorificRatio);
|
|
1052
|
+
participantHonorifics.sort((a, b) => (b.sampleCount ?? 0) - (a.sampleCount ?? 0) || b.honorificRatio - a.honorificRatio);
|
|
904
1053
|
let roomStyle = "mixed";
|
|
905
1054
|
const roomTotal = roomHonorificCount + roomCasualCount;
|
|
906
1055
|
if (roomTotal > 0) {
|