kakaotalk-chat-analyzer 0.3.4 → 0.4.0

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 CHANGED
@@ -54,7 +54,7 @@
54
54
  |------|------|
55
55
  | **인코딩** | UTF-8 BOM, UTF-8, CP949/EUC-KR 등 보내기 인코딩 자동 감지 |
56
56
  | **파싱** | `Date,User,Message` 헤더 기반 CSV + 멀티라인 메시지 처리 |
57
- | **리포트** | Wrapped·**ECharts** 차트(워드클라우드·히트맵)·**TF-IDF** 키워드 120개·잔디 그리드·인사이트 등 **집계 전용** 시각화 |
57
+ | **리포트** | Wrapped·**ECharts** 차트(워드클라우드·히트맵)·**Kiwi+TF-IDF** 키워드 120개·잔디 그리드·인사이트 등 **집계 전용** 시각화 |
58
58
  | **성능** | 줄 단위 스트림 파싱 · 단일 패스 집계 · 3MB+ Worker · 진행 표시(`--progress`) |
59
59
  | **배포** | BrewPage(기본) / TempFile / Cloudflare 등 **TTL 기반** 임시 호스팅 · iframe 공유 링크 안전 처리 |
60
60
  | **npx** | 짧은 별칭 **[`kcachat`](https://www.npmjs.com/package/kcachat)** 또는 본체 **`kakaotalk-chat-analyzer`** |
@@ -71,7 +71,7 @@
71
71
  | **스트리밍 파싱** | 파일 전체를 문자열/배열로 펼치지 않음 |
72
72
  | **단일 패스 집계** | `Map`·히스토그램·온라인 통계(간격 P90 등)만 유지 |
73
73
  | **Worker (≥3MB)** | 대용량일 때 메인 스레드 멈춤 완화 |
74
- | **키워드** | TF-IDF 스트리밍 + 메시지 등장 횟수 + 잡음·불용어 필터(최대 120개) |
74
+ | **키워드** | **Kiwi** 형태소 + TF-IDF·PMI + 해시태그 보조(최대 120개, 모델 최초 1회 무료 다운로드) |
75
75
  | **kcachat@latest** | 실행 시 `kakaotalk-chat-analyzer@latest` 본체를 받아 최신 CLI 사용 |
76
76
 
77
77
  로컬 벤치(합성 20만 메시지, 집계만): **약 0.4초대** — 환경·디스크·실제 대화 밀도에 따라 달라집니다.
@@ -100,7 +100,7 @@ npm run bench:stream -- 100000
100
100
  - **인터랙티브 차트**: 워드클라우드, 시간대·요일·월별, 일별 캘린더 히트맵, 키워드 막대(80) + **전체 120개 표**
101
101
  - **연간 잔디**: 활동 **기간만** 주 단위(53주 고정 아님), 호버 시 건수 툴팁
102
102
  - **숫자·인사이트**: 지니(참여 쏠림)·리듬 점수·응답 간격(초/분 한국어) 등
103
- - **키워드**: **TF-IDF** + 메시지 **등장 횟수**(상대 점수 아님), 오픈채팅·잡음어 필터
103
+ - **키워드**: **Kiwi** 명사·고유명사 + **TF-IDF/PMI** + 메시지 **등장 횟수**, 오픈채팅·잡음어 필터
104
104
  - **참여자**: 말풍선 맵 + 마스킹 닉네임 + 랭킹 테이블
105
105
  - **BrewPage**: iframe 섹션 점프·외부 링크 안전 처리
106
106
  - **테마**: 라이트 / 다크 / 시스템
@@ -1,4 +1,5 @@
1
1
  import { ReportAggregator } from "./aggregator.js";
2
+ import { initKiwiRuntime } from "./kiwi-runtime.js";
2
3
  export { maskPartialDisplayName, parseChatRoomNameFromExportPath, safeInputName } from "./analysis-labels.js";
3
4
  import { runAnalyzeWorker, shouldUseAnalyzeWorker } from "./analyze-pool.js";
4
5
  import { streamKakaoExport } from "./stream-parser.js";
@@ -18,6 +19,7 @@ export function buildReportData(result, options) {
18
19
  });
19
20
  }
20
21
  export async function buildReportFromExportSync(filePath, options) {
22
+ await initKiwiRuntime();
21
23
  const privacy = options?.privacy ?? "public-masked";
22
24
  const top = options?.top ?? DEFAULT_TOP;
23
25
  const agg = new ReportAggregator(filePath, privacy, top);
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/analysis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /** 본문 키워드용 토큰( Kiwi 우선, 없으면 공백+접미사 휴리스틱 ) */
2
+ export declare function tokenizeForKeywords(raw: string): string[];
@@ -0,0 +1,58 @@
1
+ import { getKiwiRuntime, kiwiKeywordTokens } from "./kiwi-runtime.js";
2
+ import { normalizeKoreanText } from "./korean-normalize.js";
3
+ const MAX_TOKEN_LEN = 32;
4
+ const HANGUL_GLUE_RE = /[가-힣]{6,}/;
5
+ const TRAILING_ENDING_RE = /(?:했(?:어|음|네|지)?|했|하는|하다|해서|이고|이었|었는|는데|지만|으로|에서|에게|부터|까지|처럼|보다|마다|라서|라고|습니다|세요|해요|함|임|음|네|지|아|어|야|요)$/u;
6
+ function normalizeToken(token) {
7
+ return /^[A-Za-z0-9_+-]+$/.test(token) ? token.toLowerCase() : token.trim();
8
+ }
9
+ function spaceTokens(doc) {
10
+ const out = [];
11
+ for (const raw of doc.split(/\s+/)) {
12
+ if (!raw)
13
+ continue;
14
+ const t = normalizeToken(raw);
15
+ if (t.length < 2 || t.length > MAX_TOKEN_LEN)
16
+ continue;
17
+ if (!/[가-힣A-Za-z]/.test(t))
18
+ continue;
19
+ out.push(t);
20
+ }
21
+ return out;
22
+ }
23
+ function heuristicExtra(token) {
24
+ const extras = [];
25
+ if (HANGUL_GLUE_RE.test(token)) {
26
+ const stem = token.replace(TRAILING_ENDING_RE, "");
27
+ if (stem.length >= 2 && stem.length < token.length)
28
+ extras.push(stem);
29
+ }
30
+ return extras;
31
+ }
32
+ /** 본문 키워드용 토큰( Kiwi 우선, 없으면 공백+접미사 휴리스틱 ) */
33
+ export function tokenizeForKeywords(raw) {
34
+ const doc = normalizeKoreanText(raw, { keepEnglish: true, keepNumbers: true });
35
+ if (!doc)
36
+ return [];
37
+ const kiwi = getKiwiRuntime();
38
+ if (kiwi) {
39
+ const fromKiwi = kiwiKeywordTokens(doc);
40
+ if (fromKiwi.length > 0)
41
+ return fromKiwi;
42
+ }
43
+ const out = [];
44
+ const seen = new Set();
45
+ const push = (t) => {
46
+ if (seen.has(t))
47
+ return;
48
+ seen.add(t);
49
+ out.push(t);
50
+ };
51
+ for (const t of spaceTokens(doc)) {
52
+ push(t);
53
+ for (const extra of heuristicExtra(t))
54
+ push(extra);
55
+ }
56
+ return out;
57
+ }
58
+ //# sourceMappingURL=keyword-tokenize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyword-tokenize.js","sourceRoot":"","sources":["../../src/keyword-tokenize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,kBAAkB,GACtB,yGAAyG,CAAC;AAE5G,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,aAAa;YAAE,SAAS;QACvD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS;QACrC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC;IAC3C,CAAC;IAED,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO;QACxB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,CAAC,CAAC;QACR,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Kiwi } from "kiwi-nlp";
2
+ /** 형태소 분석기 준비(실패 시 null → 휴리스틱 폴백) */
3
+ export declare function initKiwiRuntime(): Promise<Kiwi | null>;
4
+ export declare function getKiwiRuntime(): Kiwi | null;
5
+ export declare function isKiwiReady(): boolean;
6
+ /** Kiwi가 켜져 있을 때만 호출 */
7
+ export declare function kiwiKeywordTokens(text: string): string[];
8
+ /** 캐시 디렉터리(테스트·진단용) */
9
+ export declare function kiwiCacheDir(): string;
10
+ export declare function resetKiwiRuntimeForTests(): void;
@@ -0,0 +1,172 @@
1
+ import { existsSync, mkdirSync, readFileSync, createWriteStream } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { dirname, join } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { spawnSync } from "node:child_process";
6
+ import { pipeline } from "node:stream/promises";
7
+ import { KiwiBuilder, Match } from "kiwi-nlp";
8
+ const KIWI_MODEL_TAG = "0.23.1";
9
+ const MODEL_URL = `https://github.com/bab2min/Kiwi/releases/download/v${KIWI_MODEL_TAG}/kiwi_model_v${KIWI_MODEL_TAG}_base.tgz`;
10
+ const MODEL_FILES = [
11
+ "combiningRule.txt",
12
+ "cong.mdl",
13
+ "default.dict",
14
+ "dialect.dict",
15
+ "extract.mdl",
16
+ "multi.dict",
17
+ "nounchr.mdl",
18
+ "sj.morph",
19
+ "typo.dict",
20
+ ];
21
+ const CACHE_ROOT = join(homedir(), ".cache", "kakaotalk-chat-analyzer", "kiwi-base");
22
+ const MODEL_DIR = join(CACHE_ROOT, "models", "cong", "base");
23
+ let initPromise = null;
24
+ let readyKiwi = null;
25
+ let initFailed = false;
26
+ function kiwiPackageRoot() {
27
+ return dirname(fileURLToPath(import.meta.resolve("kiwi-nlp/package.json")));
28
+ }
29
+ function wasmPath() {
30
+ return join(kiwiPackageRoot(), "dist", "kiwi-wasm.wasm");
31
+ }
32
+ function loadModelBuffers() {
33
+ const files = {};
34
+ for (const name of MODEL_FILES) {
35
+ const p = join(MODEL_DIR, name);
36
+ files[name] = readFileSync(p);
37
+ }
38
+ return files;
39
+ }
40
+ function modelInstalled() {
41
+ if (!existsSync(MODEL_DIR))
42
+ return false;
43
+ return MODEL_FILES.every((f) => existsSync(join(MODEL_DIR, f)));
44
+ }
45
+ async function downloadModelArchive(destTgz) {
46
+ mkdirSync(dirname(destTgz), { recursive: true });
47
+ const res = await fetch(MODEL_URL);
48
+ if (!res.ok || !res.body) {
49
+ throw new Error(`Kiwi model download failed (${res.status}): ${MODEL_URL}`);
50
+ }
51
+ await pipeline(res.body, createWriteStream(destTgz));
52
+ }
53
+ function extractModelArchive(tgzPath) {
54
+ mkdirSync(CACHE_ROOT, { recursive: true });
55
+ const tar = spawnSync("tar", ["-xzf", tgzPath, "-C", CACHE_ROOT], { encoding: "utf8" });
56
+ if (tar.status !== 0) {
57
+ throw new Error(tar.stderr || `tar exited ${tar.status}`);
58
+ }
59
+ if (!modelInstalled()) {
60
+ throw new Error("Kiwi model extract finished but base files are missing");
61
+ }
62
+ }
63
+ async function ensureModelOnDisk() {
64
+ if (modelInstalled())
65
+ return;
66
+ const tgzPath = join(CACHE_ROOT, `kiwi_model_${KIWI_MODEL_TAG}_base.tgz`);
67
+ if (!existsSync(tgzPath)) {
68
+ process.stderr.write("[kca] Kiwi 한국어 모델 다운로드 중… (최초 1회, 무료)\n");
69
+ await downloadModelArchive(tgzPath);
70
+ }
71
+ if (!modelInstalled()) {
72
+ process.stderr.write("[kca] Kiwi 모델 압축 해제 중…\n");
73
+ extractModelArchive(tgzPath);
74
+ }
75
+ }
76
+ async function buildKiwi() {
77
+ const builder = await KiwiBuilder.create(wasmPath());
78
+ return builder.build({
79
+ modelFiles: loadModelBuffers(),
80
+ modelType: "cong",
81
+ integrateAllomorph: true,
82
+ loadDefaultDict: true,
83
+ loadTypoDict: true,
84
+ loadMultiDict: true,
85
+ });
86
+ }
87
+ /** 형태소 분석기 준비(실패 시 null → 휴리스틱 폴백) */
88
+ export async function initKiwiRuntime() {
89
+ if (readyKiwi)
90
+ return readyKiwi;
91
+ if (initFailed)
92
+ return null;
93
+ if (!initPromise) {
94
+ initPromise = (async () => {
95
+ try {
96
+ await ensureModelOnDisk();
97
+ readyKiwi = await buildKiwi();
98
+ return readyKiwi;
99
+ }
100
+ catch (err) {
101
+ initFailed = true;
102
+ const msg = err instanceof Error ? err.message : String(err);
103
+ process.stderr.write(`[kca] Kiwi 초기화 실패, 휴리스틱 토큰화로 계속합니다: ${msg}\n`);
104
+ return null;
105
+ }
106
+ })();
107
+ }
108
+ return initPromise;
109
+ }
110
+ export function getKiwiRuntime() {
111
+ return readyKiwi;
112
+ }
113
+ export function isKiwiReady() {
114
+ return readyKiwi !== null;
115
+ }
116
+ /** Kiwi가 켜져 있을 때만 호출 */
117
+ export function kiwiKeywordTokens(text) {
118
+ const kiwi = readyKiwi;
119
+ if (!kiwi)
120
+ return [];
121
+ const tokens = kiwi.tokenize(text, Match.joinNounSuffix |
122
+ Match.url |
123
+ Match.hashtag |
124
+ Match.mention |
125
+ Match.serial |
126
+ Match.normalizeCoda, undefined, undefined, "basic");
127
+ const out = [];
128
+ const seen = new Set();
129
+ for (const t of tokens) {
130
+ if (!isKeywordPos(t.tag))
131
+ continue;
132
+ const form = normalizeKiwiForm(t.str);
133
+ if (!form || seen.has(form))
134
+ continue;
135
+ seen.add(form);
136
+ out.push(form);
137
+ }
138
+ return out;
139
+ }
140
+ function isKeywordPos(tag) {
141
+ if (tag === "SL" || tag === "SN")
142
+ return true;
143
+ if (tag.startsWith("NN"))
144
+ return true;
145
+ if (tag === "NR")
146
+ return true;
147
+ if (tag === "W_URL" || tag === "W_EMAIL")
148
+ return true;
149
+ if (tag === "W_HASHTAG")
150
+ return true;
151
+ return false;
152
+ }
153
+ function normalizeKiwiForm(raw) {
154
+ let w = raw.trim();
155
+ if (w.startsWith("#"))
156
+ w = w.slice(1);
157
+ if (w.length < 2)
158
+ return "";
159
+ if (/^[A-Za-z0-9_+-]+$/.test(w))
160
+ return w.toLowerCase();
161
+ return w;
162
+ }
163
+ /** 캐시 디렉터리(테스트·진단용) */
164
+ export function kiwiCacheDir() {
165
+ return CACHE_ROOT;
166
+ }
167
+ export function resetKiwiRuntimeForTests() {
168
+ readyKiwi = null;
169
+ initPromise = null;
170
+ initFailed = false;
171
+ }
172
+ //# sourceMappingURL=kiwi-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiwi-runtime.js","sourceRoot":"","sources":["../../src/kiwi-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAmB,MAAM,UAAU,CAAC;AAE/D,MAAM,cAAc,GAAG,QAAQ,CAAC;AAChC,MAAM,SAAS,GAAG,sDAAsD,cAAc,gBAAgB,cAAc,WAAW,CAAC;AAChI,MAAM,WAAW,GAAG;IAClB,mBAAmB;IACnB,UAAU;IACV,cAAc;IACd,cAAc;IACd,aAAa;IACb,YAAY;IACZ,aAAa;IACb,UAAU;IACV,WAAW;CACH,CAAC;AAEX,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,yBAAyB,EAAE,WAAW,CAAC,CAAC;AACrF,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7D,IAAI,WAAW,GAAgC,IAAI,CAAC;AACpD,IAAI,SAAS,GAAgB,IAAI,CAAC;AAClC,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,SAAS,eAAe;IACtB,OAAO,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,OAAe;IACjD,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACxF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,cAAc,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC9B,IAAI,cAAc,EAAE;QAAE,OAAO;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,cAAc,WAAW,CAAC,CAAC;IAC1E,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAChE,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACjD,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,KAAK,CAAC;QACnB,UAAU,EAAE,gBAAgB,EAAE;QAC9B,SAAS,EAAE,MAAM;QACjB,kBAAkB,EAAE,IAAI;QACxB,eAAe,EAAE,IAAI;QACrB,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;AACL,CAAC;AAED,sCAAsC;AACtC,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,UAAU;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC;gBACH,MAAM,iBAAiB,EAAE,CAAC;gBAC1B,SAAS,GAAG,MAAM,SAAS,EAAE,CAAC;gBAC9B,OAAO,SAAS,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,GAAG,IAAI,CAAC,CAAC;gBACrE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,KAAK,IAAI,CAAC;AAC5B,CAAC;AAED,wBAAwB;AACxB,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,IAAI,GAAG,SAAS,CAAC;IACvB,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAC1B,IAAI,EACJ,KAAK,CAAC,cAAc;QAClB,KAAK,CAAC,GAAG;QACT,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,aAAa,EACrB,SAAS,EACT,SAAS,EACT,OAAO,CACR,CAAC;IAEF,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;YAAE,SAAS;QACnC,MAAM,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,GAAG,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACnB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5B,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,SAAS,GAAG,IAAI,CAAC;IACjB,WAAW,GAAG,IAAI,CAAC;IACnB,UAAU,GAAG,KAAK,CAAC;AACrB,CAAC"}
@@ -136,7 +136,7 @@ export function renderChartDeck(data) {
136
136
  <div class="viz-grid anim-enter" style="--enter-delay:0.06s">
137
137
  <article class="viz-card span-8">
138
138
  <h3>키워드 워드클라우드</h3>
139
- <p class="viz-hint">글자 크기 = 메시지 등장 빈도. TF-IDF로 뽑은 본문 어절·구입니다.</p>
139
+ <p class="viz-hint">글자 크기 = 메시지 등장 빈도. Kiwi·TF-IDF로 뽑은 본문 키워드입니다.</p>
140
140
  <div id="chart-kw-cloud" class="chart-box tall" role="img" aria-label="키워드 워드클라우드"></div>
141
141
  </article>
142
142
  <article class="viz-card span-4">
@@ -1300,7 +1300,7 @@ function renderReactionsPanel(data) {
1300
1300
  return parts.join("");
1301
1301
  }
1302
1302
  function renderKeywordSnapshot(items) {
1303
- const note = '<p class="kw-note"><strong>TF-IDF</strong>로 본문 어절·짧은 구를 뽑고, 해시태그·슬랭을 보조로 더합니다. 막대·표의 숫자는 <strong>해당 표현이 들어간 메시지 수</strong>예요. 위 <a href="#s-viz" data-kca-jump="s-viz">인터랙티브 차트</a>에서 워드클라우드·전체 표를 볼 수 있어요.</p>';
1303
+ const note = '<p class="kw-note"><strong>Kiwi</strong> 형태소·<strong>TF-IDF</strong>로 본문 명사·구를 뽑고, 해시태그·슬랭을 보조로 더합니다. 막대·표의 숫자는 <strong>해당 표현이 들어간 메시지 수</strong>예요. 위 <a href="#s-viz" data-kca-jump="s-viz">인터랙티브 차트</a>에서 워드클라우드·전체 표를 볼 수 있어요.</p>';
1304
1304
  if (items.length === 0) {
1305
1305
  return note + '<p style="margin:0;color:var(--muted);font-size:13px">추출된 키워드가 없습니다.</p>';
1306
1306
  }
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/report.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,15 @@
1
1
  /**
2
- * 스트리밍 TF-IDF + 인접 2-gram 카톡 짧은 메시지에 맞춘 키워드 추출
2
+ * 스트리밍 TF-IDF + 인접 2-gram (Kiwi/휴리스틱 토큰)
3
3
  */
4
+ import { tokenizeForKeywords } from "./keyword-tokenize.js";
4
5
  import { isNoiseKeyword } from "./keyword-quality.js";
5
6
  import { adaptiveMinCount, } from "./keyword-rank.js";
6
- import { normalizeKoreanText } from "./korean-normalize.js";
7
7
  const MAX_UNIGRAM_KEYS = 36_000;
8
8
  const MAX_BIGRAM_KEYS = 22_000;
9
9
  const PRUNE_UNIGRAM_TO = 28_000;
10
10
  const PRUNE_BIGRAM_TO = 16_000;
11
- const MAX_TOKEN_LEN = 32;
12
11
  const BIGRAM_SCORE_BOOST = 1.12;
13
12
  export { adaptiveMinCount };
14
- function normalizeToken(token) {
15
- return /^[A-Za-z0-9_+-]+$/.test(token) ? token.toLowerCase() : token.trim();
16
- }
17
- function tokenize(doc) {
18
- const out = [];
19
- for (const raw of doc.split(/\s+/)) {
20
- if (!raw)
21
- continue;
22
- const t = normalizeToken(raw);
23
- if (t.length < 2 || t.length > MAX_TOKEN_LEN)
24
- continue;
25
- if (!/[가-힣A-Za-z]/.test(t))
26
- continue;
27
- out.push(t);
28
- }
29
- return out;
30
- }
31
13
  function canBigramPair(a, b) {
32
14
  if (a.length < 2 || b.length < 2)
33
15
  return false;
@@ -40,6 +22,25 @@ function canBigramPair(a, b) {
40
22
  function tfidfScore(tf, df, corpusMessages) {
41
23
  return Math.log1p(tf) * Math.log((corpusMessages + 1) / (df + 0.5));
42
24
  }
25
+ function pmiMultiplier(label, df, N, docFreq) {
26
+ if (!label.includes(" "))
27
+ return 1;
28
+ const parts = label.split(" ");
29
+ if (parts.length !== 2)
30
+ return 1;
31
+ const [a, b] = parts;
32
+ const dfA = docFreq.get(a) ?? 0;
33
+ const dfB = docFreq.get(b) ?? 0;
34
+ if (dfA < 2 || dfB < 2 || df < 2)
35
+ return 1;
36
+ const pAb = df / N;
37
+ const pA = dfA / N;
38
+ const pB = dfB / N;
39
+ const pmi = Math.log2(pAb / (pA * pB) + 1e-12);
40
+ if (pmi < 4)
41
+ return 1;
42
+ return 1 + Math.min(0.4, (pmi - 4) * 0.05);
43
+ }
43
44
  function passesFilters(label, df, minDf, stop) {
44
45
  if (df < minDf)
45
46
  return false;
@@ -55,6 +56,29 @@ function passesFilters(label, df, minDf, stop) {
55
56
  }
56
57
  return true;
57
58
  }
59
+ function demoteSubsumedByPhrases(items) {
60
+ const phrases = items.filter((i) => i.label.includes(" "));
61
+ if (phrases.length === 0)
62
+ return items;
63
+ const parts = new Set();
64
+ for (const p of phrases) {
65
+ for (const w of p.label.split(" "))
66
+ parts.add(w);
67
+ }
68
+ const phraseScore = new Map(phrases.map((p) => [p.label, p.score]));
69
+ return items.filter((item) => {
70
+ if (item.label.includes(" ") || !parts.has(item.label))
71
+ return true;
72
+ for (const ph of phrases) {
73
+ if (!ph.label.split(" ").includes(item.label))
74
+ continue;
75
+ const ps = phraseScore.get(ph.label) ?? 0;
76
+ if (ps >= item.score * 0.82)
77
+ return false;
78
+ }
79
+ return true;
80
+ });
81
+ }
58
82
  /** 메시지 스트림 → TF-IDF 어절·2-gram 키워드 */
59
83
  export class StreamingTfidfKeywords {
60
84
  documents = 0;
@@ -63,13 +87,10 @@ export class StreamingTfidfKeywords {
63
87
  bigramTf = new Map();
64
88
  bigramDf = new Map();
65
89
  addDocument(raw) {
66
- const doc = normalizeKoreanText(raw, { keepEnglish: true, keepNumbers: true });
67
- if (!doc)
68
- return;
69
- this.documents += 1;
70
- const tokens = tokenize(doc);
90
+ const tokens = tokenizeForKeywords(raw);
71
91
  if (tokens.length === 0)
72
92
  return;
93
+ this.documents += 1;
73
94
  const seen = new Set();
74
95
  for (const t of tokens) {
75
96
  this.termFreq.set(t, (this.termFreq.get(t) ?? 0) + 1);
@@ -113,18 +134,14 @@ export class StreamingTfidfKeywords {
113
134
  if (!passesFilters(label, df, bigramMinDf, stop))
114
135
  continue;
115
136
  const tf = this.bigramTf.get(label) ?? 0;
116
- items.push({
117
- label,
118
- score: tfidfScore(tf, df, N) * BIGRAM_SCORE_BOOST,
119
- messageHits: df,
120
- });
137
+ const base = tfidfScore(tf, df, N) * BIGRAM_SCORE_BOOST * pmiMultiplier(label, df, N, this.docFreq);
138
+ items.push({ label, score: base, messageHits: df });
121
139
  }
122
- return items
123
- .sort((a, b) => b.score - a.score ||
140
+ const ranked = items.sort((a, b) => b.score - a.score ||
124
141
  b.messageHits - a.messageHits ||
125
142
  b.label.length - a.label.length ||
126
- a.label.localeCompare(b.label))
127
- .slice(0, limit);
143
+ a.label.localeCompare(b.label));
144
+ return demoteSubsumedByPhrases(ranked).slice(0, limit);
128
145
  }
129
146
  prunePair(dfMap, tfMap, keep) {
130
147
  const kept = [...dfMap.entries()]
@@ -1 +1 @@
1
- {"version":3,"file":"streaming-tfidf-keywords.js","sourceRoot":"","sources":["../../src/streaming-tfidf-keywords.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streaming-tfidf-keywords.js","sourceRoot":"","sources":["../../src/streaming-tfidf-keywords.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.3.4";
2
- export declare const USER_AGENT = "kakaotalk-chat-analyzer/0.3.4";
1
+ export declare const VERSION = "0.4.0";
2
+ export declare const USER_AGENT = "kakaotalk-chat-analyzer/0.4.0";
@@ -1,3 +1,3 @@
1
- export const VERSION = "0.3.4";
1
+ export const VERSION = "0.4.0";
2
2
  export const USER_AGENT = `kakaotalk-chat-analyzer/${VERSION}`;
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kakaotalk-chat-analyzer",
3
- "version": "0.3.4",
3
+ "version": "0.4.0",
4
4
  "description": "카카오톡 CSV 보내기 → 한글 리포트 → 선택적 임시 공유. npx 한 줄로 실행 가능한 CLI.",
5
5
  "type": "module",
6
6
  "homepage": "https://claudianus.github.io/kakaotalk-chat-analyzer/",
@@ -34,7 +34,8 @@
34
34
  "dependencies": {
35
35
  "commander": "^14.0.3",
36
36
  "csv-parse": "^6.2.1",
37
- "iconv-lite": "^0.7.2"
37
+ "iconv-lite": "^0.7.2",
38
+ "kiwi-nlp": "^0.23.0"
38
39
  },
39
40
  "devDependencies": {
40
41
  "@types/node": "^22.19.19",