UNPKG

wnsummarizer

Version:

A complex summarize to easy for you

237 lines (198 loc) 8.01 kB
# wnsummarizer This project is for those of you who need to quickly summarize long texts. Using wnresoomer, you can summarize long texts. However, this module has the following drawbacks: 1. It can't read documents. 2. It can't read links. 3. It can only read text directly. I will try to add this feature in the future. ## Installation ```bash npm i wnsummarizer ``` Or ```bash npm install wnsummarizer ``` The main feature of my module is to summarize long texts, besides that it can be used for concise text tests and multi-text tests. This module uses cores from the CPU for better performance, I use the module from the [os](https://github.com/DiegoRBaquero/node-os) to get cores from the CPU itself. ## tsconfig.json ```json { "compilerOptions": { "target": "ES2020", "module": "CommonJS", "declaration": true, "outDir": "./dist", "strict": true, "esModuleInterop": true, "skipLibCheck": true }, "include": ["*.ts"] } ``` ## Summarize Feature (TS) ```ts import {TextSummarizer} from 'wnsummarizer'; async function summarizer() { const summarizer = new TextSummarizer(); const text = `Your text`; // Level 1 summarizer const result1 = await summarizer.summarize(text, { level: 1 }); console.log('Original length:', result1.original.length, 'characters'); console.log('Summary length:', result1.summary.length, 'characters'); console.log('Compression ratio:', (result1.compressionRatio * 100).toFixed(1) + '%'); console.log('Summary:', result1.summary); console.log('Key points:', result1.keyPoints); console.log('Processing time:', result1.processingTime.toFixed(2), 'ms\n'); // Level 2 summarizer const result2 = await summarizer.summarize(text, { level: 2 }); console.log('Original length:', result2.original.length, 'characters'); console.log('Summary length:', result2.summary.length, 'characters'); console.log('Compression ratio:', (result2.compressionRatio * 100).toFixed(1) + '%'); console.log('Summary:', result2.summary); console.log('Key points:', result2.keyPoints); console.log('Processing time:', result2.processingTime.toFixed(2), 'ms\n'); // Level 3 summarizer const result3 = await summarizer.summarize(text, { level: 3 }); console.log('Original length:', result3.original.length, 'characters'); console.log('Summary length:', result3.summary.length, 'characters'); console.log('Compression ratio:', (result3.compressionRatio * 100).toFixed(1) + '%'); console.log('Summary:', result3.summary); console.log('Key points:', result3.keyPoints); console.log('Processing time:', result3.processingTime.toFixed(2), 'ms\n'); } summarizer(); ``` ## Custom Summarize Feature (TS) ```ts import {TextSummarizer} from 'wnsummarizer'; async function customsummarize() { const summarizer = new TextSummarizer(); const text = `Your text`; const customConfig = { level: 3 as const, // summarization level minSentences: 2, // minimum sentences in summary maxSentences: 4 // maximum sentences in summary }; const custom = await summarizer.summarize(text, customConfig); console.log('Custom summary:', custom.summary); console.log('Processing time:', custom.processingTime.toFixed(2), 'ms\n'); } customsummarize(); ``` ## Short Text Feature (TS) ```ts import {TextSummarizer} from 'wnsummarizer'; async function shorttext() { const summarizer = new TextSummarizer(); const shortText = "Your text"; const shorttext = await summarizer.summarize(shortText, { level: 2 }); console.log('Short text result:', shorttext.summary); console.log('Processing time:', shorttext.processingTime.toFixed(2), 'ms\n'); } shorttext(); ``` ## Multiple Short Text Feature (TS) ```ts import {TextSummarizer} from 'wnsummarizer'; async function multipleshorttext() { const summarizer = new TextSummarizer(); const texts = [ "Your text 1", "Your text 2", "Your text 3", "etc" ]; for (let i = 0; i < texts.length; i++) { console.log(`Text ${i + 1}:`); const multipleshorttext = await summarizer.summarize(texts[i], { level: 2 }); console.log('Summary:', multipleshorttext.summary); console.log('Key points:', multipleshorttext.keyPoints); console.log('Time:', multipleshorttext.processingTime.toFixed(2), 'ms\n'); } } multipleshorttext(); ``` Besides TypeScript, this module can be used in NodeJS language. ## Summarize Feature (NodeJS) ```js const {TextSummarizer} = require('wnsummarizer'); async function summarizer() { const summarizer = new TextSummarizer(); const text = `Your text`; // Level 1 summarizer const result1 = await summarizer.summarize(text, { level: 1 }); console.log('Original length:', result1.original.length, 'characters'); console.log('Summary length:', result1.summary.length, 'characters'); console.log('Compression ratio:', (result1.compressionRatio * 100).toFixed(1) + '%'); console.log('Summary:', result1.summary); console.log('Key points:', result1.keyPoints); console.log('Processing time:', result1.processingTime.toFixed(2), 'ms\n'); // Level 2 summarizer const result2 = await summarizer.summarize(text, { level: 2 }); console.log('Original length:', result2.original.length, 'characters'); console.log('Summary length:', result2.summary.length, 'characters'); console.log('Compression ratio:', (result2.compressionRatio * 100).toFixed(1) + '%'); console.log('Summary:', result2.summary); console.log('Key points:', result2.keyPoints); console.log('Processing time:', result2.processingTime.toFixed(2), 'ms\n'); // Level 3 summarizer const result3 = await summarizer.summarize(text, { level: 3 }); console.log('Original length:', result3.original.length, 'characters'); console.log('Summary length:', result3.summary.length, 'characters'); console.log('Compression ratio:', (result3.compressionRatio * 100).toFixed(1) + '%'); console.log('Summary:', result3.summary); console.log('Key points:', result3.keyPoints); console.log('Processing time:', result3.processingTime.toFixed(2), 'ms\n'); } summarizer(); ``` ## Custom Summarize Feature (NodeJS) ```js const {TextSummarizer} = require('wnsummarizer'); async function customsummarize() { const summarizer = new TextSummarizer(); const text = `Your text`; const customConfig = { level: 3, // summarization level minSentences: 2, // minimum sentences in summary maxSentences: 4 // maximum sentences in summary }; const custom = await summarizer.summarize(text, customConfig); console.log('Custom summary:', custom.summary); console.log('Processing time:', custom.processingTime.toFixed(2), 'ms\n'); } customsummarize(); ``` ## Short Text Feature (NodeJS) ```js const {TextSummarizer} = require('wnsummarizer'); async function shorttext() { const summarizer = new TextSummarizer(); const shortText = "Your text"; const shorttext = await summarizer.summarize(shortText, { level: 2 }); console.log('Short text result:', shorttext.summary); console.log('Processing time:', shorttext.processingTime.toFixed(2), 'ms\n'); } shorttext(); ``` ## Multiple Short Text Feature (NodeJS) ```js const {TextSummarizer} = require('wnsummarizer'); async function multipleshorttext() { const summarizer = new TextSummarizer(); const texts = [ "Your text 1", "Your text 2", "Your text 3", "etc" ]; for (let i = 0; i < texts.length; i++) { console.log(`Text ${i + 1}:`); const multipleshorttext = await summarizer.summarize(texts[i], { level: 2 }); console.log('Summary:', multipleshorttext.summary); console.log('Key points:', multipleshorttext.keyPoints); console.log('Time:', multipleshorttext.processingTime.toFixed(2), 'ms\n'); } } multipleshorttext(); ```