Analiza textului

Comenzile de mai jos se rulează în consola browser-ului pe pagina unei cărți, și vor pune rezultatul în clipboard.

Extragerea de cuvinte distincte

Pentru a obține lista de cuvinte distincte, sortate alfabetic:

copy(
	Array.from(
		new Set(
			Array.from(
				new Intl.Segmenter('ro', { granularity: 'word' })
					.segment(document.body.textContent)
			)
			.filter(i => i.isWordLike)
			.map(i => i.segment)
		)
	)
	.sort()
	.join('\n')
);

Frecvența cuvintelor

Pentru a obține lista de cuvinte distincte împreună cu frecvența lor, nefăcînd distincția între minuscule și majuscule:

copy(
	Object.entries(
		Array.from(
			new Intl.Segmenter('ro', { granularity: 'word' })
				.segment(document.body.textContent)
		)
		.filter(i => i.isWordLike)
		.map(i => i.segment.toLowerCase())
		.reduce((s, i) => (s[i] = (s[i] ?? 0) + 1, s), {})
	)
	.sort((a,b) => b[1] - a[1])
	.map(i => `${i[0]} ${i[1]}`)
	.join('\n')
)