Task: Transform sentence to n-gram and remove all punctuation
Tests:
Input: ngram(‘Name, + other ~ name!’, 1)
Result: [‘Name’, ‘other’, ‘name’]
Input: ngram(‘Name, + other ~ name!’, 2)
Result: [‘Name other’, ‘other name’]
Input: ngram(‘Name, + other ~ name!’, 10)
Result: [‘Name other name’]
Code:
function ngram(data, order) { const regex = /[^A-Za-z0-9_]/g let ngramsArray = [] data = data .replace(regex, ' ') .split(' ') .filter(element => element.length > 0) if (order > data.length) { order = data.length } for (let i = 0; i < data.length - (order - 1); i++) { let subNgramsArray = [] for (let j = 0; j < order; j++) { subNgramsArray.push(data[i + j]) } ngramsArray = [...ngramsArray, subNgramsArray.join(' ')] } return ngramsArray }