Potrzebujemy moduł klasyfikacji treści. Klasyfikator Bayesa wydaje się być tym, czego szukam. Czy powinniśmy wybrać Orange lub NLTK?Orange vs NLTK dla klasyfikacji treści w Pythonie
Odpowiedz
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).
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).
NLTK to zestaw narzędzi, który obsługuje cztery model państwowy przetwarzania języka naturalnego:
- 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"
- 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ń).
- 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.
- 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.).
- 1. Używanie własnego korpusu do klasyfikacji kategorii w Pythonie NLTK
- 2. `treści: ''` vs `treści: none`
- 3. Znajdź rymowanie za pomocą NLTK w Pythonie
- 4. Tabela klasyfikacji dla regresji logistycznej w R
- 5. Który klasyfikator do wyboru w NLTK
- 6. NLTK dla języka perskiego
- 7. Python re.split() vs nltk word_tokenize i sent_tokenize
- 8. Nadzorowane ukryte przydział Dirichleta dla klasyfikacji dokumentów?
- 9. Precyzja/odwołanie dla klasyfikacji multilass-multilabel
- 10. Jaki jest domyślny fragment pakietu narzędzi NLTK w Pythonie?
- 11. Casting vs. przymus w Pythonie
- 12. Pomiar wydajności algorytmu klasyfikacji
- 13. Jak wygenerować wiele drzew parsowanych dla niejednoznacznego zdania w NLTK?
- 14. NLTK: set proxy server
- 15. znajdź ważne funkcje do klasyfikacji
- 16. Który korpus spamu mogę wykorzystać w NLTK?
- 17. Jak obliczyć prawdopodobieństwo (zaufanie) klasyfikacji SVM dla małego zestawu danych?
- 18. Przykład 10-krotnej klasyfikacji SVM w MATLAB
- 19. Użycie randomforest() do klasyfikacji w R?
- 20. Funkcje skorelowane i dokładność klasyfikacji
- 21. jaki jest najlepszy sposób generowania fałszywych danych dla problemu klasyfikacji?
- 22. Jak kodować ścieżkę zależności jako cechę dla klasyfikacji?
- 23. W jaki sposób wynik polaryzacji "złożonej" Vadera oblicza się w Pythonie NLTK?
- 24. Nadaje głęboką strukturę multi-Learning dla klasy klasyfikacji
- 25. Dostawca treści dla Androida ORGANY
- 26. Używanie obiektu PunktSentenceTokenizer w NLTK
- 27. Stemming niestrukturalny tekst w NLTK
- 28. NLTK 3 POS_TAG wyrzuca UnicodeDecodeError
- 29. Klasyfikacja tekstu w python - (oparte na zdaniu NLTK)
- 30. Przetwarzanie języka naturalnego - cechy dotyczące klasyfikacji tekstu
Zawsze zadziwiony głębokością odpowiedzi, które dostaję tutaj, dzięki. – philgo20
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
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