blob: fe12b40b5ac1b83068507e0e62b78851afca4438 [file] [log] [blame]
var b=[/\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],w=["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"],C=["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"],A=["co","corp","yahoo","joomla","jeopardy","dept","univ","assn","bros","inc","ltd"],y=["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"],z=["a.m","p.m"],B=["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],x=["ex","e.g","i.e","circa","ca","cca","v.s","esp","ft","st","mt",...w],R=[...C,...B,...A,...y,...z,...w];function m(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 b)n=n.replace(i," $1 $2 ");return n=n.replace(/ {2,}/g," ").replace(/^ | $/g,""),n.split(" ")}function d(e){if(e.length===0)return[];let n=new RegExp(`\\b(${R.join("|")})[.!?] ?$`,"i"),i=new RegExp(/[ |.][A-Z].?$/,"i"),r=new RegExp(/[\r\n]+/,"g"),a=/\.{2,10}$/,o=new RegExp(`\\b(${x.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]&&u(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()&&u(l)&&!o.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]&&(u(l.at(-2))&&u(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]&&a.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 u(e){let n=e.trim().slice(0,1);return G(n)}function G(e){if(e.length!==1)throw new RangeError("Input should be a single character");return e.toUpperCase()===e&&e.toLowerCase()!==e}function M(e,n=Map){return(()=>{let i=new n;return r=>{if(i.has(r)){let o=i.get(r);if(o!==void 0)return o}let a=e(r);return i.set(r,a),a}})()}function T(e,n=1){if(e<0)throw new RangeError("Input must be a positive number");return e<2?n:T(e-1,e*n)}var q=M(T);function k(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 a=Math.min(r+1+n,e.length);for(let o=r+1;o<a;o++)i.push(`${e[r]} ${e[o]}`)}return i}var j={start:!1,end:!1,val:"<S>"};function S(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 o={...j,...i},t=e.slice(0);if(o.start)for(let c=0;c<n-1;c++)t.unshift(o.val);if(o.end)for(let c=0;c<n-1;c++)t.push(o.val);r=t}let a=[];for(let o=0;o<r.length-n+1;o++)a.push(r.slice(o,o+n).join(" "));return a}function D(e){if(e<2)throw new RangeError("Input must be greater than 2");return .5*e*(e-1)}function _(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 K(e,n,i,r=_){if(e.length<2)throw new RangeError("Candidate array must contain more than one element");let a=e.map(t=>i(t,n)),o=[];for(let t=0;t<a.length;t++){let c=a.slice(0);c.splice(t,1),o.push(Math.max(...c))}return r(o)}function f(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,a=r*e+n;return a===0?0:(1+r)*e*n/a}function h(e,n){let i=new Set(e),r=new Set(n);return Array.from(i).filter(a=>r.has(a))}function E(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=[],a=e.length,o=n.length;for(;a>0&&o>0;)e[a-1]===n[o-1]?(r.unshift(e[a-1]),a--,o--):i[a-1][o]>i[a][o-1]?a--:o--;return r}function V(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:S,tokenizer:m,...i},a=r.caseSensitive?e:e.toLowerCase(),o=r.caseSensitive?n:n.toLowerCase(),t=r.nGram(r.tokenizer(a),r.n),c=r.nGram(r.tokenizer(o),r.n),s=h(t,c);if(s.length===0)return 0;let l=s.length/t.length,g=s.length/c.length;return f(l,g,r.beta)}function W(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:k,tokenizer:m,...i},a=r.caseSensitive?e:e.toLowerCase(),o=r.caseSensitive?n:n.toLowerCase(),t=r.skipBigram(r.tokenizer(a),r.maxSkip),c=r.skipBigram(r.tokenizer(o),r.maxSkip),s=h(t,c).length;if(s===0)return 0;let l=s/c.length,g=s/t.length;return f(g,l,r.beta)}function X(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:E,segmenter:d,tokenizer:m,...i},a=r.caseSensitive?e:e.toLowerCase(),o=r.caseSensitive?n:n.toLowerCase(),t=r.segmenter(a),c=r.segmenter(o),s=r.tokenizer(a),l=r.tokenizer(o),g=c.map($=>{let N=r.tokenizer($);return new Set(t.flatMap(O=>r.lcs(r.tokenizer(O),N))).size}),p=0;for(;g.length>0;)p+=g.pop()||0;if(p===0)return 0;let v=p/l.length,I=p/s.length;return f(I,v,r.beta)}export{j as NGRAM_DEFAULT_OPTS,_ as arithmeticMean,G as charIsUpperCase,D as comb2,f as fMeasure,q as fact,h as intersection,K as jackKnife,X as l,E as lcs,V as n,S as nGram,W as s,d as sentenceSegment,k as skipBigram,u as strIsTitleCase,m as treeBankTokenize};
//# sourceMappingURL=rouge.mjs.map