5

Mam dwie klasy zdań. Każdy ma dość wyraźną sekwencję poz-tag. Jak mogę wyszkolić klasyfikator Naive-Bayesa z sekwencją POS-Tag jako funkcję? Czy Stanford CoreNLP/NLTK (Java lub Python) dostarcza jakiejkolwiek metody budowania klasyfikatora z pos-tagiem jako funkcją? Wiem, że w pythonie NaiveBayesClassifier można zbudować klasyfikator NB, ale korzysta on z contains-a-word jako funkcji, ale czy można go rozszerzyć na funkcję pos-tag-sequence jako funkcję?Jak wytrenować naiwnego klasyfikatora Bayesa z sekwencją pos-tag jako funkcję?

+0

Czy naprawdę potrzebujesz użyć NaiveBayesClassifier? Czy spojrzałeś na CRF? A propos, czy przeczytałeś ten rozdział: http://www.nltk.org/book/ch06.html? – 404pio

+0

Dzięki za link. Skończyło się na tym, że używałem połączonych tagów-pos-sekwencji i 'zawieraPosSequence' jako funkcji ... – kundan

Odpowiedz

4

Jeśli wiesz, jak ćwiczyć i przewidywać teksty (lub zdania w twoim przypadku), używając naiwnego klasyfikatora Nltk i słów jako cech, to możesz łatwo rozszerzyć to podejście, aby klasyfikować teksty według pos-tagów. Dzieje się tak, ponieważ klasyfikator nie dba o to, czy ciągi znaków funkcji są słowami czy znacznikami. Tak więc można po prostu zastąpić słowa swoimi zdaniami przez pos tagów stosując na przykład NLTK za standardową poz Tagger:

sent = ['So', 'they', 'have', 'internet', 'on', 'computers' , 'now'] 
tags = [t for w, t in nltk.pos_tag(sent)] 
print tags 

[ 'IN', 'PRP', 'VBP', 'JJ', 'w', "NNS", "RB"]

Od tej chwili można kontynuować podejście "zawiera słowo".

+0

Dodając do twojej odpowiedzi, ponieważ pytanie mówi" sekwencja ", możemy połączyć tagi POS zdania jak' [IN] [PRP ] [VBP] [JJ] [IN] [NNS] [RS] "i zdefiniuj funkcję podobną do powiedz' conatinsPrpVbpSequence' i ustaw ją na 'True' dla wystąpienia' [PRP] [VBP] '.... – kundan

Powiązane problemy