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, [email protected] wrote:
>
> From: Antonio <[email protected] <mailto:[email protected]>>
> To: [email protected] <mailto:[email protected]>
> Subject: Re: [nexa] Minerva, l'IA italiana al bivio tra Vannacci e
> Manzon
> Message-ID: <[email protected]
> <mailto:[email protected]>>
> 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",