2013-10-11 14 views
5

Używając algorytmu klasyfikacji klas (na przykład naiwnych lub SVM) i StringToWordVector, byłoby możliwe użycie TF/IDF i zliczanie częstotliwości w całej bieżącej klasie zamiast po prostu zaglądając do jednego dokumentu?Czy TF/IDF może pobierać klasy na konto

Pozwól mi wyjaśnić, chciałbym, aby obliczenia dawały wysoki wynik słowom, które są bardzo częste dla danej klasy (nie tylko dla danego dokumentu), ale niezbyt często w całym korpusie.

Czy jest to możliwe po wyjęciu z pudełka, czy wymaga to dodatkowych ulepszeń?

Dzięki :)

Odpowiedz

2

Myślę, że się tu mylisz - to, o co prosisz, to w istocie ważność tego terminu dla dokumentów tej klasy. Właśnie to ma zoptymalizować algorytm uczenia się. Po prostu martw się o użyteczną reprezentację dokumentów, które muszą koniecznie być niezmiennicze dla klasy, do której należą (ponieważ nie będziesz wiedział, jaka klasa jest dla niewidocznych dokumentów testowych).

5

chciałbym obliczeń dać wysoki wynik do słów, które są bardzo częste dla danej klasy (nie tylko dla danego dokumentu), ale nie bardzo częste w całym korpusie.

Wygląda na to, że chcesz nadzorować ważenie terminów. Nie jestem świadomy żadnej gotowej implementacji tego, ale jest tam host z literature about it. Na przykład. Schemat ważenia tf-χ ² zastępuje idf wynikiem testu niezależności χ², więc warunki, które statystycznie zależą od pewnych klas, zostają wzmocnione i istnieje kilka innych.

Sam Tf-idf z natury nie jest nadzorowany.

0

Zmieniony idf może Ci pomóc w niektórych scenach.

Można użyć IDF zdefiniowany jako:
log (1 + p (termin w tej klasie)/p (termin w drugiej klasie))

Wady: Każda klasa ma inny IDF, to może być interpretowane jako każdy termin w innej klasie ma różny wkład w odróżnienie kategorii.

Zastosowanie: Dodając identyfikator w Native Bayes, uzyskuję lepszą klasyfikację słów kluczowych w zapytaniu. I działa dobrze podczas wyodrębniania słów kluczowych.

Powiązane problemy