[BIG DATA] GLOSARIUSZ (VII) : NLP

Przetwarzanie języka naturalnego (NLP) jest podzbiorem przetwarzania danych, który jest tak istotny, że zdobył swoją własną sekcję. Koncentruje się na uporczywym, stworzonym przez ludzi tekście i wydobywaniu znaczących informacji. Jak możesz sobie wyobrazić, ta chaotyczna domena problemowa wywołała wiele różnych podejść, przy czym każde narzędzie jest najbardziej użyteczne dla określonych rodzajów tekstu. Nie ma magicznej kuli, która zrozumie informacje pisane, jak również ludzi, ale jeśli jesteś przygotowany, aby dostosować swoje wykorzystanie wyników, aby poradzić sobie z niektórymi błędami i nie oczekujcie cudów, możecie wyciągnąć potężne wnioski.

Zestaw narzędzi Natural Language

NLTK to zbiór modułów i zestawów danych Pythona, które implementują wspólne techniki przetwarzania języka naturalnego. Oferuje bloki, których potrzebujesz tworzyć bardziej złożone algorytmy dla określonych problemów. Na przykład możesz go użyć do rozbijaj teksty na zdania, łamanie zdania na słowa, wyłóż słowa przez usuwanie często używanych sufiksów (np. -ing z angielskich czasowników) lub słowniki odczytywalne maszynowo rozpoznać synonimy. Ramy są używane przez większość badaczy w terenie, więc będziesz często znajdują nowatorskie podejścia zawarte w modułach lub jako algorytmy zbudowane na jego podstawie moduły. Istnieje również duża liczba kompatybilnych zestawów danych, jak również obszerna dokumentacja. NLTK nie jest skierowany do programistów szukających gotowego rozwiązania problemów związanych z domeną. Jego elastyczność oznacza, że ​​potrzebujesz podstawowej znajomości świata NLP, zanim będziesz mógł tworzyć rozwiązania dla własnych problemów. To nie jest gotowe rozwiązanie, takie jak Boilerpipe czy OpenCalais.

OpenNLP

Napisany w Javie OpenNLP jest alternatywą dla NLTK do przetwarzania języka. To ma silniejsze skupienie się na gotowych rozwiązaniach, z dostępnymi modelami, które ułatwiają wykonywanie zadań, takich jak wyciąganie czasu, osób i nazw organizacji z tekstu. Takie podejście czyni go mniej atrakcyjnym jako struktura nauczania, ale łatwość integracji z Javą oznacza, że ​​jest on bardziej odpowiedni dla aplikacji napisanych w języku. Zawiera wszystkie standardowe komponenty potrzebne do zbudowania własnego kodu przetwarzania języka, przełamywania nieprzetworzonego tekstu do zdań i słów oraz klasyfikowania tych komponentów przy użyciu różnych technik.

Boilerpipe

Jedną z najtrudniejszych części analizy stron internetowych jest usuwanie linków nawigacyjnych, nagłówków, stopek i pasków bocznych do opuszczenia treściowego tekstu. Jeśli cała ta płyta zostanie pozostawiona, analiza będzie wysoce zniekształcona przez powtarzające się nieistotne słowa i wyrażenia z tych sekcji. Boilerpipe jest platformą Java, która wykorzystuje algorytmiczne podejście do wykrywania rzeczywistej treści dokumentu HTML, i dlatego jest doskonałym narzędziem do przetwarzania wstępnego dla dowolnej treści internetowej. Jest skierowany na strony, które wyglądają jak wiadomości, ale okazało się, że działa przyzwoicie dla wielu różnych typów witryn.

OpenCalais

OpenCalais to webowy interfejs API, który pobiera fragment tekstu, wyświetla nazwy podmiotów, o których wie i sugeruje ogólne tagi. Jest to dojrzały projekt prowadzony przez Thomson Reuters i jest szeroko stosowany. Z mojego doświadczenia wynika, że ​​jest najsilniejszy w rozumieniu terminów i zwrotów, które można znaleźć w oficjalnych wiadomościach, jak można się spodziewać po jego dziedzictwie. Z pewnością jest to dobre miejsce na rozpoczęcie, gdy potrzebujesz analizy semantycznej swoich treści, ale wciąż istnieją powody, dla których warto przyjrzeć się alternatywom. Obowiązuje limit 50 000 dziennie dla połączeń i limit 100 KB dla standardowego interfejsu API. Jest to zbywalne z wersją komercyjną, ale obciążenie to jeden z powodów, dla których warto rozważyć uruchomienie czegoś w lokalnym klastrze zamiast dużych ilości danych. Być może konieczne będzie również upewnienie się, że przesyłane treści nie są poufne, chociaż usługa obiecuje, że nie zachowa żadnego z nich. Może również istnieć zestaw terminów lub wyrażeń, które są unikalne dla Twojej domeny problemowej, która nie jest objęta usługą. W takim przypadku lepszym rozwiązaniem może być analizowany parser zbudowany na NLTK lub OpenNLP

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *