node-nlp
Version:
Library for NLU (Natural Language Understanding) done in Node.js
1,296 lines (1,266 loc) • 31.7 kB
JavaScript
/*
* Copyright (c) AXA Shared Services Spain S.A.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
const BaseStemmer = require('./base-stemmer');
const Among = require('./among');
/**
* This class was automatically generated by a Snowball to JSX compiler
* It implements the stemming algorithm defined by a snowball script.
*/
class ItalianStemmer extends BaseStemmer {
constructor(tokenizer) {
super(tokenizer);
this.I_p2 = 0;
this.I_p1 = 0;
this.I_pV = 0;
}
copy_from(other) {
this.I_p2 = other.I_p2;
this.I_p1 = other.I_p1;
this.I_pV = other.I_pV;
super.copy_from(other);
}
r_prelude() {
let among_var;
let v_1;
let v_2;
let v_3;
let v_4;
let v_5;
// (, line 34
// test, line 35
v_1 = this.cursor;
// repeat, line 35
replab0: while (true) {
v_2 = this.cursor;
let lab1 = true;
lab1: while (lab1 == true) {
lab1 = false;
// (, line 35
// [, line 36
this.bra = this.cursor;
// substring, line 36
among_var = this.find_among(ItalianStemmer.a_0, 7);
if (among_var == 0) {
break;
}
// ], line 36
this.ket = this.cursor;
switch (among_var) {
case 0:
break lab1;
case 1:
// (, line 37
// <-, line 37
if (!this.slice_from('\u00E0')) {
return false;
}
break;
case 2:
// (, line 38
// <-, line 38
if (!this.slice_from('\u00E8')) {
return false;
}
break;
case 3:
// (, line 39
// <-, line 39
if (!this.slice_from('\u00EC')) {
return false;
}
break;
case 4:
// (, line 40
// <-, line 40
if (!this.slice_from('\u00F2')) {
return false;
}
break;
case 5:
// (, line 41
// <-, line 41
if (!this.slice_from('\u00F9')) {
return false;
}
break;
case 6:
// (, line 42
// <-, line 42
if (!this.slice_from('qU')) {
return false;
}
break;
case 7:
// (, line 43
// next, line 43
if (this.cursor >= this.limit) {
break lab1;
}
this.cursor++;
break;
}
continue replab0;
}
this.cursor = v_2;
break;
}
this.cursor = v_1;
// repeat, line 46
replab2: while (true) {
v_3 = this.cursor;
let lab3 = true;
lab3: while (lab3 == true) {
lab3 = false;
// goto, line 46
golab4: while (true) {
v_4 = this.cursor;
let lab5 = true;
lab5: while (lab5 == true) {
lab5 = false;
// (, line 46
if (!this.in_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
// [, line 47
this.bra = this.cursor;
// or, line 47
let lab6 = true;
lab6: while (lab6 == true) {
lab6 = false;
v_5 = this.cursor;
let lab7 = true;
while (lab7 == true) {
lab7 = false;
// (, line 47
// literal, line 47
if (!this.eq_s(1, 'u')) {
break;
}
// ], line 47
this.ket = this.cursor;
if (!this.in_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
// <-, line 47
if (!this.slice_from('U')) {
return false;
}
break lab6;
}
this.cursor = v_5;
// (, line 48
// literal, line 48
if (!this.eq_s(1, 'i')) {
break lab5;
}
// ], line 48
this.ket = this.cursor;
if (!this.in_grouping(ItalianStemmer.g_v, 97, 249)) {
break lab5;
}
// <-, line 48
if (!this.slice_from('I')) {
return false;
}
}
this.cursor = v_4;
break golab4;
}
this.cursor = v_4;
if (this.cursor >= this.limit) {
break lab3;
}
this.cursor++;
}
continue replab2;
}
this.cursor = v_3;
break;
}
return true;
}
r_mark_regions() {
let v_1;
let v_2;
let v_3;
let v_6;
let v_8;
// (, line 52
this.I_pV = this.limit;
this.I_p1 = this.limit;
this.I_p2 = this.limit;
// do, line 58
v_1 = this.cursor;
let lab0 = true;
lab0: while (lab0 == true) {
lab0 = false;
// (, line 58
// or, line 60
let lab1 = true;
lab1: while (lab1 == true) {
lab1 = false;
v_2 = this.cursor;
let lab2 = true;
lab2: while (lab2 == true) {
lab2 = false;
// (, line 59
if (!this.in_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
// or, line 59
let lab3 = true;
lab3: while (lab3 == true) {
lab3 = false;
v_3 = this.cursor;
let lab4 = true;
lab4: while (lab4 == true) {
lab4 = false;
// (, line 59
if (!this.out_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
// gopast, line 59
golab5: while (true) {
let lab6 = true;
while (lab6 == true) {
lab6 = false;
if (!this.in_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
break golab5;
}
if (this.cursor >= this.limit) {
break lab4;
}
this.cursor++;
}
break lab3;
}
this.cursor = v_3;
// (, line 59
if (!this.in_grouping(ItalianStemmer.g_v, 97, 249)) {
break lab2;
}
// gopast, line 59
golab7: while (true) {
let lab8 = true;
while (lab8 == true) {
lab8 = false;
if (!this.out_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
break golab7;
}
if (this.cursor >= this.limit) {
break lab2;
}
this.cursor++;
}
}
break lab1;
}
this.cursor = v_2;
// (, line 61
if (!this.out_grouping(ItalianStemmer.g_v, 97, 249)) {
break lab0;
}
// or, line 61
let lab9 = true;
lab9: while (lab9 == true) {
lab9 = false;
v_6 = this.cursor;
let lab10 = true;
lab10: while (lab10 == true) {
lab10 = false;
// (, line 61
if (!this.out_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
// gopast, line 61
golab11: while (true) {
let lab12 = true;
while (lab12 == true) {
lab12 = false;
if (!this.in_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
break golab11;
}
if (this.cursor >= this.limit) {
break lab10;
}
this.cursor++;
}
break lab9;
}
this.cursor = v_6;
// (, line 61
if (!this.in_grouping(ItalianStemmer.g_v, 97, 249)) {
break lab0;
}
// next, line 61
if (this.cursor >= this.limit) {
break lab0;
}
this.cursor++;
}
}
// setmark pV, line 62
this.I_pV = this.cursor;
}
this.cursor = v_1;
// do, line 64
v_8 = this.cursor;
let lab13 = true;
lab13: while (lab13 == true) {
lab13 = false;
// (, line 64
// gopast, line 65
golab14: while (true) {
let lab15 = true;
while (lab15 == true) {
lab15 = false;
if (!this.in_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
break golab14;
}
if (this.cursor >= this.limit) {
break lab13;
}
this.cursor++;
}
// gopast, line 65
golab16: while (true) {
let lab17 = true;
while (lab17 == true) {
lab17 = false;
if (!this.out_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
break golab16;
}
if (this.cursor >= this.limit) {
break lab13;
}
this.cursor++;
}
// setmark p1, line 65
this.I_p1 = this.cursor;
// gopast, line 66
golab18: while (true) {
let lab19 = true;
while (lab19 == true) {
lab19 = false;
if (!this.in_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
break golab18;
}
if (this.cursor >= this.limit) {
break lab13;
}
this.cursor++;
}
// gopast, line 66
golab20: while (true) {
let lab21 = true;
while (lab21 == true) {
lab21 = false;
if (!this.out_grouping(ItalianStemmer.g_v, 97, 249)) {
break;
}
break golab20;
}
if (this.cursor >= this.limit) {
break lab13;
}
this.cursor++;
}
// setmark p2, line 66
this.I_p2 = this.cursor;
}
this.cursor = v_8;
return true;
}
r_postlude() {
let among_var;
let v_1;
// repeat, line 70
replab0: while (true) {
v_1 = this.cursor;
let lab1 = true;
lab1: while (lab1 == true) {
lab1 = false;
// (, line 70
// [, line 72
this.bra = this.cursor;
// substring, line 72
among_var = this.find_among(ItalianStemmer.a_1, 3);
if (among_var == 0) {
break;
}
// ], line 72
this.ket = this.cursor;
switch (among_var) {
case 0:
break lab1;
case 1:
// (, line 73
// <-, line 73
if (!this.slice_from('i')) {
return false;
}
break;
case 2:
// (, line 74
// <-, line 74
if (!this.slice_from('u')) {
return false;
}
break;
case 3:
// (, line 75
// next, line 75
if (this.cursor >= this.limit) {
break lab1;
}
this.cursor++;
break;
}
continue replab0;
}
this.cursor = v_1;
break;
}
return true;
}
r_RV() {
if (!(this.I_pV <= this.cursor)) {
return false;
}
return true;
}
r_R1() {
if (!(this.I_p1 <= this.cursor)) {
return false;
}
return true;
}
r_R2() {
if (!(this.I_p2 <= this.cursor)) {
return false;
}
return true;
}
r_attached_pronoun() {
let among_var;
// (, line 86
// [, line 87
this.ket = this.cursor;
// substring, line 87
if (this.find_among_b(ItalianStemmer.a_2, 37) == 0) {
return false;
}
// ], line 87
this.bra = this.cursor;
// among, line 97
among_var = this.find_among_b(ItalianStemmer.a_3, 5);
if (among_var == 0) {
return false;
}
// (, line 97
// call RV, line 97
if (!this.r_RV()) {
return false;
}
switch (among_var) {
case 0:
return false;
case 1:
// (, line 98
// delete, line 98
if (!this.slice_del()) {
return false;
}
break;
case 2:
// (, line 99
// <-, line 99
if (!this.slice_from('e')) {
return false;
}
break;
}
return true;
}
r_standard_suffix() {
let among_var;
let v_1;
let v_2;
let v_3;
let v_4;
// (, line 103
// [, line 104
this.ket = this.cursor;
// substring, line 104
among_var = this.find_among_b(ItalianStemmer.a_6, 51);
if (among_var == 0) {
return false;
}
// ], line 104
this.bra = this.cursor;
switch (among_var) {
case 0:
return false;
case 1:
// (, line 111
// call R2, line 111
if (!this.r_R2()) {
return false;
}
// delete, line 111
if (!this.slice_del()) {
return false;
}
break;
case 2:
// (, line 113
// call R2, line 113
if (!this.r_R2()) {
return false;
}
// delete, line 113
if (!this.slice_del()) {
return false;
}
// try, line 114
v_1 = this.limit - this.cursor;
var lab0 = true;
while (lab0 == true) {
lab0 = false;
// (, line 114
// [, line 114
this.ket = this.cursor;
// literal, line 114
if (!this.eq_s_b(2, 'ic')) {
this.cursor = this.limit - v_1;
break;
}
// ], line 114
this.bra = this.cursor;
// call R2, line 114
if (!this.r_R2()) {
this.cursor = this.limit - v_1;
break;
}
// delete, line 114
if (!this.slice_del()) {
return false;
}
}
break;
case 3:
// (, line 117
// call R2, line 117
if (!this.r_R2()) {
return false;
}
// <-, line 117
if (!this.slice_from('log')) {
return false;
}
break;
case 4:
// (, line 119
// call R2, line 119
if (!this.r_R2()) {
return false;
}
// <-, line 119
if (!this.slice_from('u')) {
return false;
}
break;
case 5:
// (, line 121
// call R2, line 121
if (!this.r_R2()) {
return false;
}
// <-, line 121
if (!this.slice_from('ente')) {
return false;
}
break;
case 6:
// (, line 123
// call RV, line 123
if (!this.r_RV()) {
return false;
}
// delete, line 123
if (!this.slice_del()) {
return false;
}
break;
case 7:
// (, line 124
// call R1, line 125
if (!this.r_R1()) {
return false;
}
// delete, line 125
if (!this.slice_del()) {
return false;
}
// try, line 126
v_2 = this.limit - this.cursor;
var lab1 = true;
lab1: while (lab1 == true) {
lab1 = false;
// (, line 126
// [, line 127
this.ket = this.cursor;
// substring, line 127
among_var = this.find_among_b(ItalianStemmer.a_4, 4);
if (among_var == 0) {
this.cursor = this.limit - v_2;
break;
}
// ], line 127
this.bra = this.cursor;
// call R2, line 127
if (!this.r_R2()) {
this.cursor = this.limit - v_2;
break;
}
// delete, line 127
if (!this.slice_del()) {
return false;
}
switch (among_var) {
case 0:
this.cursor = this.limit - v_2;
break lab1;
case 1:
// (, line 128
// [, line 128
this.ket = this.cursor;
// literal, line 128
if (!this.eq_s_b(2, 'at')) {
this.cursor = this.limit - v_2;
break lab1;
}
// ], line 128
this.bra = this.cursor;
// call R2, line 128
if (!this.r_R2()) {
this.cursor = this.limit - v_2;
break lab1;
}
// delete, line 128
if (!this.slice_del()) {
return false;
}
break;
}
}
break;
case 8:
// (, line 133
// call R2, line 134
if (!this.r_R2()) {
return false;
}
// delete, line 134
if (!this.slice_del()) {
return false;
}
// try, line 135
v_3 = this.limit - this.cursor;
var lab2 = true;
lab2: while (lab2 == true) {
lab2 = false;
// (, line 135
// [, line 136
this.ket = this.cursor;
// substring, line 136
among_var = this.find_among_b(ItalianStemmer.a_5, 3);
if (among_var == 0) {
this.cursor = this.limit - v_3;
break;
}
// ], line 136
this.bra = this.cursor;
switch (among_var) {
case 0:
this.cursor = this.limit - v_3;
break lab2;
case 1:
// (, line 137
// call R2, line 137
if (!this.r_R2()) {
this.cursor = this.limit - v_3;
break lab2;
}
// delete, line 137
if (!this.slice_del()) {
return false;
}
break;
}
}
break;
case 9:
// (, line 141
// call R2, line 142
if (!this.r_R2()) {
return false;
}
// delete, line 142
if (!this.slice_del()) {
return false;
}
// try, line 143
v_4 = this.limit - this.cursor;
var lab3 = true;
while (lab3 == true) {
lab3 = false;
// (, line 143
// [, line 143
this.ket = this.cursor;
// literal, line 143
if (!this.eq_s_b(2, 'at')) {
this.cursor = this.limit - v_4;
break;
}
// ], line 143
this.bra = this.cursor;
// call R2, line 143
if (!this.r_R2()) {
this.cursor = this.limit - v_4;
break;
}
// delete, line 143
if (!this.slice_del()) {
return false;
}
// [, line 143
this.ket = this.cursor;
// literal, line 143
if (!this.eq_s_b(2, 'ic')) {
this.cursor = this.limit - v_4;
break;
}
// ], line 143
this.bra = this.cursor;
// call R2, line 143
if (!this.r_R2()) {
this.cursor = this.limit - v_4;
break;
}
// delete, line 143
if (!this.slice_del()) {
return false;
}
}
break;
}
return true;
}
r_verb_suffix() {
let among_var;
let v_1;
let v_2;
// setlimit, line 148
v_1 = this.limit - this.cursor;
// tomark, line 148
if (this.cursor < this.I_pV) {
return false;
}
this.cursor = this.I_pV;
v_2 = this.limit_backward;
this.limit_backward = this.cursor;
this.cursor = this.limit - v_1;
// (, line 148
// [, line 149
this.ket = this.cursor;
// substring, line 149
among_var = this.find_among_b(ItalianStemmer.a_7, 87);
if (among_var == 0) {
this.limit_backward = v_2;
return false;
}
// ], line 149
this.bra = this.cursor;
switch (among_var) {
case 0:
this.limit_backward = v_2;
return false;
case 1:
// (, line 163
// delete, line 163
if (!this.slice_del()) {
return false;
}
break;
}
this.limit_backward = v_2;
return true;
}
r_vowel_suffix() {
let v_1;
let v_2;
// (, line 170
// try, line 171
v_1 = this.limit - this.cursor;
let lab0 = true;
while (lab0 == true) {
lab0 = false;
// (, line 171
// [, line 172
this.ket = this.cursor;
if (!this.in_grouping_b(ItalianStemmer.g_AEIO, 97, 242)) {
this.cursor = this.limit - v_1;
break;
}
// ], line 172
this.bra = this.cursor;
// call RV, line 172
if (!this.r_RV()) {
this.cursor = this.limit - v_1;
break;
}
// delete, line 172
if (!this.slice_del()) {
return false;
}
// [, line 173
this.ket = this.cursor;
// literal, line 173
if (!this.eq_s_b(1, 'i')) {
this.cursor = this.limit - v_1;
break;
}
// ], line 173
this.bra = this.cursor;
// call RV, line 173
if (!this.r_RV()) {
this.cursor = this.limit - v_1;
break;
}
// delete, line 173
if (!this.slice_del()) {
return false;
}
}
// try, line 175
v_2 = this.limit - this.cursor;
let lab1 = true;
while (lab1 == true) {
lab1 = false;
// (, line 175
// [, line 176
this.ket = this.cursor;
// literal, line 176
if (!this.eq_s_b(1, 'h')) {
this.cursor = this.limit - v_2;
break;
}
// ], line 176
this.bra = this.cursor;
if (!this.in_grouping_b(ItalianStemmer.g_CG, 99, 103)) {
this.cursor = this.limit - v_2;
break;
}
// call RV, line 176
if (!this.r_RV()) {
this.cursor = this.limit - v_2;
break;
}
// delete, line 176
if (!this.slice_del()) {
return false;
}
}
return true;
}
stem() {
let v_1;
let v_2;
let v_3;
let v_4;
let v_5;
let v_6;
let v_7;
// (, line 181
// do, line 182
v_1 = this.cursor;
let lab0 = true;
while (lab0 == true) {
lab0 = false;
// call prelude, line 182
if (!this.r_prelude()) {
break;
}
}
this.cursor = v_1;
// do, line 183
v_2 = this.cursor;
let lab1 = true;
while (lab1 == true) {
lab1 = false;
// call mark_regions, line 183
if (!this.r_mark_regions()) {
break;
}
}
this.cursor = v_2;
// backwards, line 184
this.limit_backward = this.cursor;
this.cursor = this.limit;
// (, line 184
// do, line 185
v_3 = this.limit - this.cursor;
let lab2 = true;
while (lab2 == true) {
lab2 = false;
// call attached_pronoun, line 185
if (!this.r_attached_pronoun()) {
break;
}
}
this.cursor = this.limit - v_3;
// do, line 186
v_4 = this.limit - this.cursor;
let lab3 = true;
lab3: while (lab3 == true) {
lab3 = false;
// (, line 186
// or, line 186
let lab4 = true;
lab4: while (lab4 == true) {
lab4 = false;
v_5 = this.limit - this.cursor;
let lab5 = true;
while (lab5 == true) {
lab5 = false;
// call standard_suffix, line 186
if (!this.r_standard_suffix()) {
break;
}
break lab4;
}
this.cursor = this.limit - v_5;
// call verb_suffix, line 186
if (!this.r_verb_suffix()) {
break lab3;
}
}
}
this.cursor = this.limit - v_4;
// do, line 187
v_6 = this.limit - this.cursor;
let lab6 = true;
while (lab6 == true) {
lab6 = false;
// call vowel_suffix, line 187
if (!this.r_vowel_suffix()) {
break;
}
}
this.cursor = this.limit - v_6;
this.cursor = this.limit_backward; // do, line 189
v_7 = this.cursor;
let lab7 = true;
while (lab7 == true) {
lab7 = false;
// call postlude, line 189
if (!this.r_postlude()) {
break;
}
}
this.cursor = v_7;
return true;
}
}
ItalianStemmer.methodObject = new ItalianStemmer();
ItalianStemmer.a_0 = [
new Among('', -1, 7),
new Among('qu', 0, 6),
new Among('\u00E1', 0, 1),
new Among('\u00E9', 0, 2),
new Among('\u00ED', 0, 3),
new Among('\u00F3', 0, 4),
new Among('\u00FA', 0, 5)
];
ItalianStemmer.a_1 = [
new Among('', -1, 3),
new Among('I', 0, 1),
new Among('U', 0, 2)
];
ItalianStemmer.a_2 = [
new Among('la', -1, -1),
new Among('cela', 0, -1),
new Among('gliela', 0, -1),
new Among('mela', 0, -1),
new Among('tela', 0, -1),
new Among('vela', 0, -1),
new Among('le', -1, -1),
new Among('cele', 6, -1),
new Among('gliele', 6, -1),
new Among('mele', 6, -1),
new Among('tele', 6, -1),
new Among('vele', 6, -1),
new Among('ne', -1, -1),
new Among('cene', 12, -1),
new Among('gliene', 12, -1),
new Among('mene', 12, -1),
new Among('sene', 12, -1),
new Among('tene', 12, -1),
new Among('vene', 12, -1),
new Among('ci', -1, -1),
new Among('li', -1, -1),
new Among('celi', 20, -1),
new Among('glieli', 20, -1),
new Among('meli', 20, -1),
new Among('teli', 20, -1),
new Among('veli', 20, -1),
new Among('gli', 20, -1),
new Among('mi', -1, -1),
new Among('si', -1, -1),
new Among('ti', -1, -1),
new Among('vi', -1, -1),
new Among('lo', -1, -1),
new Among('celo', 31, -1),
new Among('glielo', 31, -1),
new Among('melo', 31, -1),
new Among('telo', 31, -1),
new Among('velo', 31, -1)
];
ItalianStemmer.a_3 = [
new Among('ando', -1, 1),
new Among('endo', -1, 1),
new Among('ar', -1, 2),
new Among('er', -1, 2),
new Among('ir', -1, 2)
];
ItalianStemmer.a_4 = [
new Among('ic', -1, -1),
new Among('abil', -1, -1),
new Among('os', -1, -1),
new Among('iv', -1, 1)
];
ItalianStemmer.a_5 = [
new Among('ic', -1, 1),
new Among('abil', -1, 1),
new Among('iv', -1, 1)
];
ItalianStemmer.a_6 = [
new Among('ica', -1, 1),
new Among('logia', -1, 3),
new Among('osa', -1, 1),
new Among('ista', -1, 1),
new Among('iva', -1, 9),
new Among('anza', -1, 1),
new Among('enza', -1, 5),
new Among('ice', -1, 1),
new Among('atrice', 7, 1),
new Among('iche', -1, 1),
new Among('logie', -1, 3),
new Among('abile', -1, 1),
new Among('ibile', -1, 1),
new Among('usione', -1, 4),
new Among('azione', -1, 2),
new Among('uzione', -1, 4),
new Among('atore', -1, 2),
new Among('ose', -1, 1),
new Among('ante', -1, 1),
new Among('mente', -1, 1),
new Among('amente', 19, 7),
new Among('iste', -1, 1),
new Among('ive', -1, 9),
new Among('anze', -1, 1),
new Among('enze', -1, 5),
new Among('ici', -1, 1),
new Among('atrici', 25, 1),
new Among('ichi', -1, 1),
new Among('abili', -1, 1),
new Among('ibili', -1, 1),
new Among('ismi', -1, 1),
new Among('usioni', -1, 4),
new Among('azioni', -1, 2),
new Among('uzioni', -1, 4),
new Among('atori', -1, 2),
new Among('osi', -1, 1),
new Among('anti', -1, 1),
new Among('amenti', -1, 6),
new Among('imenti', -1, 6),
new Among('isti', -1, 1),
new Among('ivi', -1, 9),
new Among('ico', -1, 1),
new Among('ismo', -1, 1),
new Among('oso', -1, 1),
new Among('amento', -1, 6),
new Among('imento', -1, 6),
new Among('ivo', -1, 9),
new Among('it\u00E0', -1, 8),
new Among('ist\u00E0', -1, 1),
new Among('ist\u00E8', -1, 1),
new Among('ist\u00EC', -1, 1)
];
ItalianStemmer.a_7 = [
new Among('isca', -1, 1),
new Among('enda', -1, 1),
new Among('ata', -1, 1),
new Among('ita', -1, 1),
new Among('uta', -1, 1),
new Among('ava', -1, 1),
new Among('eva', -1, 1),
new Among('iva', -1, 1),
new Among('erebbe', -1, 1),
new Among('irebbe', -1, 1),
new Among('isce', -1, 1),
new Among('ende', -1, 1),
new Among('are', -1, 1),
new Among('ere', -1, 1),
new Among('ire', -1, 1),
new Among('asse', -1, 1),
new Among('ate', -1, 1),
new Among('avate', 16, 1),
new Among('evate', 16, 1),
new Among('ivate', 16, 1),
new Among('ete', -1, 1),
new Among('erete', 20, 1),
new Among('irete', 20, 1),
new Among('ite', -1, 1),
new Among('ereste', -1, 1),
new Among('ireste', -1, 1),
new Among('ute', -1, 1),
new Among('erai', -1, 1),
new Among('irai', -1, 1),
new Among('isci', -1, 1),
new Among('endi', -1, 1),
new Among('erei', -1, 1),
new Among('irei', -1, 1),
new Among('assi', -1, 1),
new Among('ati', -1, 1),
new Among('iti', -1, 1),
new Among('eresti', -1, 1),
new Among('iresti', -1, 1),
new Among('uti', -1, 1),
new Among('avi', -1, 1),
new Among('evi', -1, 1),
new Among('ivi', -1, 1),
new Among('isco', -1, 1),
new Among('ando', -1, 1),
new Among('endo', -1, 1),
new Among('Yamo', -1, 1),
new Among('iamo', -1, 1),
new Among('avamo', -1, 1),
new Among('evamo', -1, 1),
new Among('ivamo', -1, 1),
new Among('eremo', -1, 1),
new Among('iremo', -1, 1),
new Among('assimo', -1, 1),
new Among('ammo', -1, 1),
new Among('emmo', -1, 1),
new Among('eremmo', 54, 1),
new Among('iremmo', 54, 1),
new Among('immo', -1, 1),
new Among('ano', -1, 1),
new Among('iscano', 58, 1),
new Among('avano', 58, 1),
new Among('evano', 58, 1),
new Among('ivano', 58, 1),
new Among('eranno', -1, 1),
new Among('iranno', -1, 1),
new Among('ono', -1, 1),
new Among('iscono', 65, 1),
new Among('arono', 65, 1),
new Among('erono', 65, 1),
new Among('irono', 65, 1),
new Among('erebbero', -1, 1),
new Among('irebbero', -1, 1),
new Among('assero', -1, 1),
new Among('essero', -1, 1),
new Among('issero', -1, 1),
new Among('ato', -1, 1),
new Among('ito', -1, 1),
new Among('uto', -1, 1),
new Among('avo', -1, 1),
new Among('evo', -1, 1),
new Among('ivo', -1, 1),
new Among('ar', -1, 1),
new Among('ir', -1, 1),
new Among('er\u00E0', -1, 1),
new Among('ir\u00E0', -1, 1),
new Among('er\u00F2', -1, 1),
new Among('ir\u00F2', -1, 1)
];
ItalianStemmer.g_v = [
17,
65,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
128,
128,
8,
2,
1
];
ItalianStemmer.g_AEIO = [
17,
65,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
128,
128,
8,
2
];
ItalianStemmer.g_CG = [17];
module.exports = ItalianStemmer;