Care este diferența între tagul POS Unigram și Bigram?


Răspunsul 1:

Modele Unigram

Una dintre caracteristicile sale este că nu ia în considerare ordonarea cuvintelor, deci comanda nu face diferența în modul de etichetare sau împărțire a cuvintelor. Dacă executați următorul cod în Python, veți antrena un model de marcare a cuvintelor cu un tagigot Unigram.

import nltk din nltk.corpus import brown brown_tagged_sents = brown.tagged_sents (categories = 'news') brown_sents = brown.sents (categories = 'news') unigram_tagger = nltk.UnigramTagger (brown_tagged_sents) unigram_tagger.tag (brown_sents)

Rezultând:

[('Diverse', 'JJ'), ('din', 'IN'), ('the', 'AT'), ('apartamente', 'NNS'), ('sunt', 'BER') , ('din', 'IN'), ('the', 'AT'), ('terasa', 'NN'), ('tip', 'NN'), (',', ',') , ('a fi', 'BEG'), ('on', 'IN'), ('the', 'AT'), ('ground', 'NN'), ('floor', 'NN') , ('deci', 'QL'), ('acela', 'CS'), ('intrare', 'NN'), ('este', 'BEZ'), ('direct', 'JJ') , ('.', '.')]]

Modele Bigram

Bigram Modele, pe de altă parte, le pasă de ordinea cuvintelor, deci consideră contextul fiecărui cuvânt analizându-l pe perechi. În timp ce un model unigram va eticheta un cuvânt independent de celelalte cuvinte, un model bigram va eticheta astfel (cu exemplul „pisica în pălărie”)

(the, pisica) (pisică, în) (în, the) (the, hat)

Deci, dacă încercați să etichetați o propoziție cu o unigramă, așa cum se face mai jos în Python

bigram_tagger = nltk.BigramTagger (brown_tagged_sents) bigram_tagger.tag (brown_sents [2007])

... veți obține un rezultat ușor diferit:

[('Diverse', 'JJ'), ('din', 'IN'), ('the', 'AT'), ('apartamente', 'NNS'), ('sunt', 'BER') , ('din', 'IN'), ('the', 'AT'), ('terasa', 'NN'), ('tip', 'NN'), (',', ',') , ('a fi', 'BEG'), ('on', 'IN'), ('the', 'AT'), ('ground', 'NN'), ('floor', 'NN') , ('deci', 'CS'), ('acela', 'CS'), ('intrare', 'NN'), ('este', 'BEZ'), ('direct', 'JJ') , ('.', '.')]]

De ce este important acest lucru? Buna intrebare. În multe cazuri, ordinea cuvintelor ar putea să nu conteze deloc. Dar ia o propoziție de genul „Această barcă se va scufunda!”

Cuvântul „chiuveta” poate fi fie un verb, fie un substantiv, în funcție de contextul său. Pentru a vă da seama care este, ar trebui să verificați cuvintele înainte sau după. În cazul de mai sus, cuvântul „to`, să știm că este, de fapt, un verb. Într-un model unigram, contextul respectiv nu ar fi considerat și ar putea fi etichetat incorect.