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-requ...@server-nexa.polito.it wrote:
> 
> From: Antonio <anto...@piumarossa.it <mailto:anto...@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.9de4aa7a7c4a195ae21c3...@piumarossa.it 
> <mailto:20240523204128.9de4aa7a7c4a195ae21c3...@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",

Reply via email to