blob: 2e24480ccf71994446be0979352dc157606933ff [file] [log] [blame]
"use strict";var b=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var j=(e,n)=>{for(var i in n)b(e,i,{get:n[i],enumerable:!0})},_=(e,n,i,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of G(n))!M.call(e,o)&&o!==i&&b(e,o,{get:()=>n[o],enumerable:!(r=B(n,o))||r.enumerable});return e};var L=e=>_(b({},"__esModule",{value:!0}),e);var Q={};j(Q,{NGRAM_DEFAULT_OPTS:()=>$,arithmeticMean:()=>N,charIsUpperCase:()=>v,comb2:()=>W,fMeasure:()=>m,fact:()=>V,intersection:()=>h,jackKnife:()=>X,l:()=>J,lcs:()=>d,n:()=>Z,nGram:()=>R,s:()=>H,sentenceSegment:()=>w,skipBigram:()=>x,strIsTitleCase:()=>p,treeBankTokenize:()=>u});module.exports=L(Q);var T=[/\b(can)(not)\b/i,/\b(d)('ye)\b/i,/\b(gim)(me)\b/i,/\b(gon)(na)\b/i,/\b(got)(ta)\b/i,/\b(lem)(me)\b/i,/\b(more)('n)\b/i,/\b(wan)(na) /i,/ ('t)(is)\b/i,/ ('t)(was)\b/i],k=["jr","mr","mrs","ms","dr","prof","sr","sen","corp","rep","gov","atty","supt","det","rev","col","gen","lt","cmdr","adm","capt","sgt","cpl","maj","miss","misses","mister","sir","esq","mstr","phd","adj","adv","asst","bldg","brig","comdr","hon","messrs","mlle","mme","op","ord","pvt","reps","res","sens","sfc","surg"],U=["arc","al","exp","rd","st","dist","mt","fy","pd","pl","plz","tce","llb","md","bl","ma","ba","lit","ex","e.g","i.e","circa","ca","cca","v.s","etc","esp","ft","b.c","a.d"],P=["co","corp","yahoo","joomla","jeopardy","dept","univ","assn","bros","inc","ltd"],F=["ala","ariz","ark","cal","calif","col","colo","conn","del","fed","fla","fl","ga","ida","ind","ia","la","kan","kans","ken","ky","la","md","mich","minn","mont","neb","nebr","nev","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wash","wis","wisc","wy","wyo","usafa","alta","ont","que","sask","yuk","ave","blvd","cl","ct","cres","hwy","U.S","U.S.A","E.U","N\xB0"],q=["a.m","p.m"],D=["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],S=["ex","e.g","i.e","circa","ca","cca","v.s","esp","ft","st","mt",...k],E=[...U,...D,...P,...F,...q,...k];function u(e){if(e.length===0)return[];let n=e.replace(/^"/," `` ").replace(/([ ([{<])"/g,"$1 `` ").replace(/\.\.\.*/g," ... ").replace(/[;@#$%&]/g," $& ").replace(/([^.])(\.)([\])}>"']*)\s*$/g,"$1 $2$3 ").replace(/[,?!]/g," $& ").replace(/[\][(){}<>]/g," $& ").replace(/---*/g," -- ");n=` ${n} `,n=n.replace(/"/g," '' ").replace(/([^'])' /g,"$1 ' ").replace(/'([sSmMdD]) /g," '$1 ").replace(/('ll|'LL|'re|'RE|'ve|'VE|n't|N'T) /g," $1 ");for(let i of T)n=n.replace(i," $1 $2 ");return n=n.replace(/ {2,}/g," ").replace(/^ | $/g,""),n.split(" ")}function w(e){if(e.length===0)return[];let n=new RegExp(`\\b(${E.join("|")})[.!?] ?$`,"i"),i=new RegExp(/[ |.][A-Z].?$/,"i"),r=new RegExp(/[\r\n]+/,"g"),o=/\.{2,10}$/,a=new RegExp(`\\b(${S.join("|")})[.!?] ?$`,"i"),t=e.split(/(\S(?:[^.?!\r\n]|[.?!](?!\s|$|"))*[.?!]{1,3})(?=\s|$|")/g),c=[];for(let s=0;s<t.length;s++)if(t[s])if(t[s]=t[s].replace(/^ +/,"").replace(/ +$/,""),r.test(t[s]))t[s+1]&&p(t[s])?t[s+1]=`${t[s].trim()} ${t[s+1].replace(/ +/g," ")}`:c.push(...t[s].trim().split(`
`));else if(t[s+1]&&n.test(t[s])){let l=t[s+1];l.trim()&&p(l)&&!a.test(t[s])?(c.push(t[s]),t[s]=""):t[s+1]=`${t[s]} ${l.replace(/ +/g," ")}`}else if(t[s].length>1&&t[s+1]&&i.test(t[s])){let l=t[s].split(" "),g=l.at(-1);g===g.toLowerCase()?t[s+1]=`${t[s]} ${t[s+1].replace(/ +/g," ")}`:t[s+2]&&(p(l.at(-2))&&p(t[s+2])?t[s+2]=t[s]+t[s+1].replace(/ +/g," ")+t[s+2]:(c.push(t[s]),t[s]=""))}else t[s+1]&&o.test(t[s])?t[s+1]=t[s]+t[s+1].replace(/ +/g," "):t[s]&&t[s].length>0&&(c.push(t[s]),t[s]="");return c.length===0?[e]:c}function p(e){let n=e.trim().slice(0,1);return v(n)}function v(e){if(e.length!==1)throw new RangeError("Input should be a single character");return e.toUpperCase()===e&&e.toLowerCase()!==e}function K(e,n=Map){return(()=>{let i=new n;return r=>{if(i.has(r)){let a=i.get(r);if(a!==void 0)return a}let o=e(r);return i.set(r,o),o}})()}function I(e,n=1){if(e<0)throw new RangeError("Input must be a positive number");return e<2?n:I(e-1,e*n)}var V=K(I);function x(e,n=Number.POSITIVE_INFINITY){if(e.length<2)throw new RangeError("Input must have at least two words");let i=[];for(let r=0;r<e.length-1;r++){let o=Math.min(r+1+n,e.length);for(let a=r+1;a<o;a++)i.push(`${e[r]} ${e[a]}`)}return i}var $={start:!1,end:!1,val:"<S>"};function R(e,n=2,i={}){if(n<1)throw new RangeError("ngram size cannot be smaller than 1");if(e.length<n)throw new RangeError("ngram size cannot be larger than the number of tokens available");let r=e;if(Object.keys(i).length>0){let a={...$,...i},t=e.slice(0);if(a.start)for(let c=0;c<n-1;c++)t.unshift(a.val);if(a.end)for(let c=0;c<n-1;c++)t.push(a.val);r=t}let o=[];for(let a=0;a<r.length-n+1;a++)o.push(r.slice(a,a+n).join(" "));return o}function W(e){if(e<2)throw new RangeError("Input must be greater than 2");return .5*e*(e-1)}function N(e){if(e.length===0)throw new RangeError("Input array must have at least 1 element");return e.reduce((n,i)=>n+i)/e.length}function X(e,n,i,r=N){if(e.length<2)throw new RangeError("Candidate array must contain more than one element");let o=e.map(t=>i(t,n)),a=[];for(let t=0;t<o.length;t++){let c=o.slice(0);c.splice(t,1),a.push(Math.max(...c))}return r(a)}function m(e,n,i=1){if(e<0||e>1)throw new RangeError("Precision value p must have bounds 0 \u2264 p \u2264 1");if(n<0||n>1)throw new RangeError("Recall value r must have bounds 0 \u2264 r \u2264 1");if(i<0)throw new RangeError("beta value must be >= 0");if(e===0&&n===0)return 0;if(!Number.isFinite(i))return n;let r=i*i,o=r*e+n;return o===0?0:(1+r)*e*n/o}function h(e,n){let i=new Set(e),r=new Set(n);return Array.from(i).filter(o=>r.has(o))}function d(e,n){if(e.length===0||n.length===0)return[];let i=new Array(e.length+1).fill(0).map(()=>new Array(n.length+1).fill(0));for(let t=1;t<=e.length;t++)for(let c=1;c<=n.length;c++)e[t-1]===n[c-1]?i[t][c]=i[t-1][c-1]+1:i[t][c]=Math.max(i[t-1][c],i[t][c-1]);let r=[],o=e.length,a=n.length;for(;o>0&&a>0;)e[o-1]===n[a-1]?(r.unshift(e[o-1]),o--,a--):i[o-1][a]>i[o][a-1]?o--:a--;return r}function Z(e,n,i){if(e.length===0)throw new RangeError("Candidate cannot be an empty string");if(n.length===0)throw new RangeError("Reference cannot be an empty string");let r={n:1,beta:1,caseSensitive:!0,nGram:R,tokenizer:u,...i},o=r.caseSensitive?e:e.toLowerCase(),a=r.caseSensitive?n:n.toLowerCase(),t=r.nGram(r.tokenizer(o),r.n),c=r.nGram(r.tokenizer(a),r.n),s=h(t,c);if(s.length===0)return 0;let l=s.length/t.length,g=s.length/c.length;return m(l,g,r.beta)}function H(e,n,i){if(e.length===0)throw new RangeError("Candidate cannot be an empty string");if(n.length===0)throw new RangeError("Reference cannot be an empty string");let r={beta:1,caseSensitive:!0,maxSkip:Number.POSITIVE_INFINITY,skipBigram:x,tokenizer:u,...i},o=r.caseSensitive?e:e.toLowerCase(),a=r.caseSensitive?n:n.toLowerCase(),t=r.skipBigram(r.tokenizer(o),r.maxSkip),c=r.skipBigram(r.tokenizer(a),r.maxSkip),s=h(t,c).length;if(s===0)return 0;let l=s/c.length,g=s/t.length;return m(g,l,r.beta)}function J(e,n,i){if(e.length===0)throw new RangeError("Candidate cannot be an empty string");if(n.length===0)throw new RangeError("Reference cannot be an empty string");let r={beta:1,caseSensitive:!0,lcs:d,segmenter:w,tokenizer:u,...i},o=r.caseSensitive?e:e.toLowerCase(),a=r.caseSensitive?n:n.toLowerCase(),t=r.segmenter(o),c=r.segmenter(a),s=r.tokenizer(o),l=r.tokenizer(a),g=c.map(A=>{let y=r.tokenizer(A);return new Set(t.flatMap(z=>r.lcs(r.tokenizer(z),y))).size}),f=0;for(;g.length>0;)f+=g.pop()||0;if(f===0)return 0;let O=f/l.length,C=f/s.length;return m(C,O,r.beta)}0&&(module.exports={NGRAM_DEFAULT_OPTS,arithmeticMean,charIsUpperCase,comb2,fMeasure,fact,intersection,jackKnife,l,lcs,n,nGram,s,sentenceSegment,skipBigram,strIsTitleCase,treeBankTokenize});
//# sourceMappingURL=rouge.js.map