Il tokeniser mwt è un tokenizer statistico che abbiamo allenato su un'ampia raccolta di token composti. Essendo statistico non è garantito essere corretto, ma va usato per come è previsto, ossia per analizzare frasi, non singole parole. Quindi per esempio anello non lo suddivide se usato nel giusto contesto:
doc=nlp("un anello d'argento") doc [ [ { "id": 1, "text": "un", "lemma": "uno", "upos": "DET", "xpos": "RI", "feats": "Definite=Ind|Gender=Masc|Number=Sing|PronType=Art", "head": 2, "deprel": "det", "start_char": 0, "end_char": 2, "ner": "O", "multi_ner": [ "O" ] }, { "id": 2, "text": "anello", "lemma": "anello", "upos": "NOUN", "xpos": "S", "feats": "Gender=Masc|Number=Sing", "head": 0, "deprel": "root", "start_char": 3, "end_char": 9, "ner": "O", "multi_ner": [ "O" ] }, { "id": 3, "text": "d'", "lemma": "di", "upos": "ADP", "xpos": "E", "head": 4, "deprel": "case", "start_char": 10, "end_char": 12, "ner": "O", "multi_ner": [ "O" ], "misc": "SpaceAfter=No" }, { "id": 4, "text": "argento", "lemma": "argento", "upos": "NOUN", "xpos": "S", "feats": "Gender=Masc|Number=Sing", "head": 2, "deprel": "nmod", "start_char": 12, "end_char": 19, "ner": "O", "multi_ner": [ "O" ], "misc": "SpaceAfter=No" } ] ]
E lo stesso per andirivieni:
nlp("un gran andirivieni per casa") [ [ { "id": 1, "text": "un", "lemma": "uno", "upos": "DET", "xpos": "RI", "feats": "Definite=Ind|Gender=Masc|Number=Sing|PronType=Art", "head": 3, "deprel": "det", "start_char": 0, "end_char": 2, "ner": "O", "multi_ner": [ "O" ] }, { "id": 2, "text": "gran", "lemma": "grande", "upos": "ADJ", "xpos": "A", "feats": "Number=Sing", "head": 3, "deprel": "amod", "start_char": 3, "end_char": 7, "ner": "O", "multi_ner": [ "O" ] }, { "id": 3, "text": "andirivieni", "lemma": "andirivieno", "upos": "NOUN", "xpos": "S", "feats": "Gender=Masc|Number=Plur", "head": 0, "deprel": "root", "start_char": 8, "end_char": 19, "ner": "O", "multi_ner": [ "O" ] }, { "id": 4, "text": "per", "lemma": "per", "upos": "ADP", "xpos": "E", "head": 5, "deprel": "case", "start_char": 20, "end_char": 23, "ner": "O", "multi_ner": [ "O" ] }, { "id": 5, "text": "casa", "lemma": "casa", "upos": "NOUN", "xpos": "S", "feats": "Gender=Fem|Number=Sing", "head": 3, "deprel": "nmod", "start_char": 24, "end_char": 28, "ner": "O", "multi_ner": [ "O" ], "misc": "SpaceAfter=No" } ] ]
On 24 May 2024, at 12:00, nexa-request@server-nexa.polito.it wrote:
From: Antonio <antonio@piumarossa.it <mailto:antonio@piumarossa.it>> To: nexa@server-nexa.polito.it <mailto:nexa@server-nexa.polito.it> Subject: Re: [nexa] Minerva, l'IA italiana al bivio tra Vannacci e Manzon Message-ID: <20240523204128.9de4aa7a7c4a195ae21c3ba8@piumarossa.it <mailto:20240523204128.9de4aa7a7c4a195ae21c3ba8@piumarossa.it>> Content-Type: text/plain; charset=ISO-8859-1
secondo me, con opportuni adattamenti, varrebbe la pena di provare a vedere se migliora un LLM 'pure Italian'
Prima, secondo me, andrebbe perfezionato 'stanza'. Ad esempio: nlp = stanza.Pipeline('it') doc = nlp("agnello") ... Result: a-nnlo-lo
"id": 1, "lemma": "a", "upos": "ADP", "xpos": "E", "deprel": "case" -- "id": 2, "lemma": "nnlo", "upos": "NOUN", "xpos": "S", "feats": "Gender=Masc|Number=Sing", "head": 0, "deprel": "root" -- "id": 3, "lemma": "lo", "upos": "PRON", "xpos": "PC", "feats": "Clitic=Yes|Gender=Masc|Number=Sing|Person=3|PronType=Prs", "deprel": "discourse"
I clitici in genere li trova: doc = nlp("mangiarselo") "lemma": "se", "feats": "Clitic=Yes|Person=3|PronType=Prs", ... "lemma": "lo", "feats": "Clitic=Yes|Person=3|PronType=Prs",