2011-01-25 19 views

Odpowiedz

23

Jak dowodzi dokumentacja, implementacja Naive Bayes w każdej bibliotece jest łatwa w użyciu , więc dlaczego nie uruchamiać danych z obu i porównać wyniki?

Zarówno Orange, jak i NLTK są zarówno starszymi, stabilnymi bibliotekami (10+ lat w rozwoju dla każdej biblioteki), które powstały w dużych uniwersytetach; mają pewne wspólne cechy, głównie algorytmy Machine Learning . Poza tym są one zupełnie różne w zakresie, celu i realizacji.

Orange jest agnostykiem domenowym - nie jest ukierunkowany na konkretną dyscyplinę akademicką lub domeną komercyjną, zamiast tego reklamuje się jako platforma do eksploracji danych na pełnym stosie i platforma ML. Skupia się on na sobie, a nie na zastosowaniu tych narzędzi w danej dyscyplinie.

Jego funkcje obejmują IO, algorytm analizy danych i płótno wizualizacji danych.

NLTK, z drugiej strony, rozpoczął się i pozostaje projektem akademickim w obliczeniowym wydziale lingwistycznym dużej uczelni. Zadanie, o którym wspomniałeś, (klasyfikacja zawartości dokumentu) i wybrany przez ciebie algorytm (Naive Bayesian) są w zasadzie podstawą funkcjonalności NLTK. NLTK rzeczywiście ma ma algorytmy ML/Data Mining, ale tylko dlatego, że mają one konkretną użyteczność w językoznawstwie komputerowym .

NLTK zawiera oczywiście pewne algorytmy ML, ale tylko dlatego, że mają one zastosowanie w językoznawstwie komputerowym, wraz z analizatorami dokumentów, tokenizatorami, analizatorami części mowy , z których wszystkie składają się z NLTK.

Być może implementacja Naive Bayes w Orange jest równie dobra, nadal wybrałbym implementację NLTK , ponieważ jest wyraźnie zoptymalizowana pod kątem konkretnego zadania, o którym wspomniałeś.

Istnieje wiele samouczków na temat NLTK, aw szczególności na temat jego Naive Bayes do stosowania klasyfikacji treści . Wpis na blogu: Jim Plus i inny w streamhacker.com, na przykład prezentują doskonałe samouczki dotyczące korzystania z Naive Bayes w NLTK; druga obejmuje dyskusję między wierszami omawiającą kod wymagany do uzyskania dostępu do tego modułu. Autorzy obu tych stanowisk podają dobre wyniki za pomocą NLTK (92% na pierwszym, 73% na drugim).

+3

Zawsze zadziwiony głębokością odpowiedzi, które dostaję tutaj, dzięki. – philgo20

+0

Jestem całkowitym debiutantem w tej dziedzinie. Chcemy klasyfikować treść na kategorie w oparciu o funkcje znalezione w tekście, nawet jeśli nazwa kategorii nie jest jedną z funkcji. (Chcesz sklasyfikować pomarańczę jako wydarzenie owocowe, jeśli słowo "owoce" nie znajduje się w tekście.) Czy powinniśmy szukać określonego rodzaju klasyfikacji, czy też Naive Bayes to, czego szukamy? – philgo20

+0

Powinienem dodać, że wynik powinien składać się z wielu kategorii. Czy to pokonuje cel Naive Bayes? Czy taka metoda Fisher jest bardziej odpowiednia? – philgo20

3

Nie wiem, Orange, ale +1 dla NLTK:

ja sukcesywnie wykorzystywane narzędzia klasyfikacyjne w NLTK do klasyfikowania tekstu i powiązanych metadanych. Bayesian jest domyślny, ale istnieją inne alternatywy, takie jak Maximum Entropy. Będąc również zestawem narzędzi, możesz dostosować go według własnego uznania - np. tworzenie własnych funkcji (co zrobiłem dla danych meta).

NLTK ma również kilka dobrych książek - z których jedna jest dostępna na licencji Creative Commons (a także w serwisie O'Reilly).

1

NLTK to zestaw narzędzi, który obsługuje cztery model państwowy przetwarzania języka naturalnego:

  1. tokenizing: grupowanie znaków jak słowa. Obejmuje to od trywialnych rzeczy wyrażeń regularnych do radzenia sobie ze skurczami takimi jak "nie można"
  2. Znakowanie. Stosuje to znaczniki części mowy do tokenów (np. "NN" dla rzeczownika, "VBG" dla czasownika gerund). Zazwyczaj odbywa się to poprzez szkolenie modelu (np. Ukrytego Markowa) na korpusie treningowym (tj. Dużej liście ręcznie oznaczonych zdań).
  3. Chunking/Parsing. To bierze każde oznaczone zdanie i wyodrębnianie elementów do drzewa (np. Wyrażeń rzeczownikowych). Może to być zgodnie z gramatyką odręczną lub wyszkoloną na korpusie.
  4. Ekstrakcja informacji. To przemierza drzewo i wyodrębnia dane. Tutaj właśnie zostanie wykonany Twój konkretny owoc pomarańczowy =.

NLTK obsługuje WordNet, ogromny słownik semantyczny, który klasyfikuje słowa. Tak więc istnieje 5 definicji rzeczowników dla pomarańczy (owoce, drzewa, pigmenty, kolory, rzeka w Afryce Południowej). Każdy z nich ma jedną lub więcej "ścieżek hypernu", które są hierarchiami klasyfikacji. Na przykład. pierwszy zmysł 'pomarańczowych' ma dwie ścieżki:

  • pomarańczowy/cytrusowy/edible_fruit/owoce/reproductive_structure/plant_organ/plant_part/natural_object/całość/przedmiot/physical_entity/podmiot

i

  • pomarańczowy/cytrusowy/edible_fruit/produkują/jedzenie/stały/sprawa/physical_entity/podmiot

zależności od stoso domena kationowa możesz rozpoznać pomarańczę jako owoc, pokarm lub roślinę. Następnie możesz użyć chunkowanej struktury drzewa, aby określić więcej (kto zrobił co z owocem, itp.).

Powiązane problemy