Udostępnij za pośrednictwem


Technologia przetwarzania języka naturalnego

Przetwarzanie języka naturalnego ma wiele aplikacji, takich jak analiza tonacji, wykrywanie tematów, wykrywanie języka, wyodrębnianie kluczowych fraz i kategoryzacja dokumentów.

W szczególności można użyć przetwarzania języka naturalnego w celu:

  • Klasyfikowanie dokumentów. Możesz na przykład oznaczyć je jako poufne lub spam.
  • Przeprowadź kolejne przetwarzanie lub wyszukiwanie przy użyciu danych wyjściowych przetwarzania języka naturalnego.
  • Podsumuj tekst, identyfikując jednostki w dokumencie.
  • Oznaczanie dokumentów słowami kluczowymi przy użyciu zidentyfikowanych jednostek.
  • Przeprowadź wyszukiwanie oparte na zawartości i pobieranie przy użyciu tagów.
  • Podsumowanie kluczowych tematów dokumentu przy użyciu zidentyfikowanych jednostek.
  • Kategoryzuj dokumenty na potrzeby nawigacji przy użyciu wykrytych tematów.
  • Wyliczanie powiązanych dokumentów na podstawie wybranego tematu.
  • Ocena tonacji tekstu w celu zrozumienia pozytywnego lub negatywnego tonu.

W miarę rozwoju technologii można użyć przetwarzania języka naturalnego do kategoryzowania i analizowania danych tekstowych. Można go również użyć do ulepszania funkcji interpretowalnych sztucznej inteligencji w różnych domenach. Integracja modeli językowych znacznie zwiększa możliwości przetwarzania języka naturalnego. Modele językowe, takie jak GPT i BERT, mogą generować tekst przypominający ludzki, świadomy kontekstu. Ta funkcja sprawia, że są one wysoce skuteczne w przypadku złożonych zadań przetwarzania języka. Uzupełniają one istniejące techniki przetwarzania języka naturalnego dzięki obsłudze szerszych zadań poznawczych, które poprawiają systemy konwersacji i zaangażowanie klientów, zwłaszcza w przypadku modeli takich jak Dolly 2.0 usługi Databricks.

Relacje i różnice między modelami językowymi a przetwarzaniem języka naturalnego

Przetwarzanie języka naturalnego to kompleksowe pole, które obejmuje różne techniki przetwarzania języka ludzkiego. Natomiast modele językowe są określonym podzbiorem przetwarzania języka naturalnego. Koncentrują się na uczeniu głębokim w celu wykonywania zadań językowych wysokiego poziomu. Modele językowe rozszerzają przetwarzanie języka naturalnego, zapewniając zaawansowane generowanie tekstu i możliwości interpretacji, ale nie są one synonimem przetwarzania języka naturalnego. Zamiast tego służą one jako zaawansowane narzędzia w szerszej domenie przetwarzania języka naturalnego, umożliwiając bardziej zaawansowane przetwarzanie języka.

Notatka

Ten artykuł koncentruje się na przetwarzaniu języka naturalnego. Relacja między przetwarzaniem języka naturalnego a modelami językowymi pokazuje, że modele językowe zwiększają procesy przetwarzania języka naturalnego poprzez lepsze zrozumienie języka i możliwości generowania.

Potencjalne przypadki użycia

Scenariusze biznesowe, które mogą korzystać z niestandardowego przetwarzania języka naturalnego, obejmują:

  • Analiza dokumentów dla dokumentów napisanych odręcznie lub utworzonych maszynowo w sektorze finansów, opieki zdrowotnej, handlu detalicznego, instytucji rządowych i innych sektorów.

  • Niezależne od branży zadania przetwarzania języka naturalnego na potrzeby przetwarzania tekstu, takie jak rozpoznawanie nazwanych jednostek (NER), klasyfikacja, podsumowanie i wyodrębnianie relacji.

    Te zadania ułatwiają automatyczne pobieranie, identyfikowanie i analizowanie informacji o dokumencie, takich jak tekst i dane bez struktury. Przykłady tych zadań obejmują modele stratyfikacji ryzyka, klasyfikację ontologii i podsumowania sprzedaży detalicznej.

  • Pobieranie informacji i tworzenie grafu wiedzy na potrzeby wyszukiwania semantycznego. Ta funkcja umożliwia tworzenie grafów wiedzy medycznej, które obsługują odnajdywanie leków i badania kliniczne.

  • Tłumaczenie tekstu dla konwersacyjnych systemów sztucznej inteligencji w aplikacjach przeznaczonych dla klientów w branży handlu detalicznego, finansów, podróży i innych branż.

  • Sentyment i zaawansowana inteligencja emocjonalna w analizie, szczególnie w kontekście monitorowania percepcji marki i analizy opinii klientów.

  • Automatyczne generowanie raportów. Syntetyzowanie i generowanie kompleksowych raportów tekstowych na podstawie ustrukturyzowanych danych wejściowych. Te zadania pomagają sektorom, takim jak finanse i zgodność, w przypadku gdy wymagana jest szczegółowa dokumentacja.

  • Interfejsy aktywowane głosowo, które integrują przetwarzanie języka naturalnego na potrzeby rozpoznawania głosu i możliwości naturalnej konwersacji. Ta integracja zwiększa interakcje użytkowników w aplikacjach Internetu rzeczy i aplikacjach inteligentnych urządzeń.

  • Adaptacyjne modele językowe, które mogą dynamicznie dostosowywać dane wyjściowe języka do różnych poziomów zrozumienia odbiorców. Ta możliwość ma kluczowe znaczenie dla ulepszeń treści edukacyjnych i ułatwień dostępu.

  • Analiza tekstowa w zakresie cyberbezpieczeństwa do analizowania wzorców komunikacji i użycia języka w czasie rzeczywistym. Ta analiza pomaga zidentyfikować potencjalne zagrożenia bezpieczeństwa w komunikacji cyfrowej i poprawić wykrywanie prób wyłudzania informacji lub dezinformacji.

Platforma Apache Spark jako niestandardowa struktura przetwarzania języka naturalnego

Apache Spark to zaawansowana platforma przetwarzania równoległego, która zwiększa wydajność aplikacji analitycznych big data przy użyciu przetwarzania w pamięci. Usługi Azure Synapse Analytics, usługi Azure HDInsight, i usługi Azure Databricks zapewniają niezawodny dostęp do możliwości przetwarzania platformy Spark. Ten dostęp ułatwia bezproblemowe uruchamianie operacji na danych na dużą skalę.

Spark NLP to wydajna struktura, która może przetwarzać duże ilości tekstu na potrzeby dostosowanych obciążeń przetwarzania języka naturalnego. Ta biblioteka typu open source udostępnia rozbudowane funkcje przy użyciu bibliotek Python, Java i Scala. Te biblioteki zapewniają wyrafinowanie, które można znaleźć w wybitnych bibliotekach przetwarzania języka naturalnego, takich jak spaCy i Natural Language Toolkit. Usługa Spark NLP obejmuje zaawansowane funkcje, takie jak sprawdzanie pisowni, analiza tonacji i klasyfikacja dokumentów. Te funkcje pomagają spójnie zapewnić optymalną dokładność i skalowalność.

Diagram przedstawiający obszary funkcji przetwarzania języka naturalnego, takie jak rozpoznawanie jednostek. Różne pola zawierają listę adnotacji, modeli i obsługiwanych języków przetwarzania języka naturalnego.

Apache®, Apache Spark, a logo płomienia są zastrzeżonymi znakami towarowymi lub znakami towarowymi platformy Apache Software Foundation w Stanach Zjednoczonych i/lub innych krajach. Użycie tych znaków nie sugeruje poparcia przez The Apache Software Foundation.

Ostatnie publiczne testy porównawcze podkreślają wydajność usługi Spark NLP. Wyniki testów porównawczych pokazują znaczne ulepszenia szybkości w porównaniu do innych bibliotek. Spark NLP również utrzymuje porównywalną dokładność podczas trenowania modeli niestandardowych. W szczególności integracja modeli Llama 2 i OpenAI Whisper zwiększa interfejsy konwersacyjne i wielojęzyczne rozpoznawanie mowy. Te możliwości oznaczają znaczne postępy w zoptymalizowanych możliwościach przetwarzania.

Usługa Spark NLP efektywnie wykorzystuje rozproszony klaster Spark, który działa jako natywne rozszerzenie spark ML i działa bezpośrednio na ramkach danych. Ta integracja obsługuje zwiększone wzrosty wydajności w klastrach, co ułatwia tworzenie ujednoliconego przetwarzania języka naturalnego i potoków uczenia maszynowego dla zadań, takich jak klasyfikacja dokumentów i przewidywanie ryzyka. Osadzanie w sieci MPNet i rozbudowane funkcje ONNX dodatkowo wzbogacają te możliwości i umożliwiają dokładne i kontekstowe przetwarzanie.

Spark NLP zapewnia bardzo dokładne wyniki w coraz szerszym zakresie zadań przetwarzania języka naturalnego. Biblioteka zawiera gotowe modele uczenia głębokiego do rozpoznawania nazwanych encji, klasyfikacji dokumentów i detekcji sentymentu. Jego rozbudowany projekt obejmuje wstępnie wytrenowane modele językowe, które obsługują osadzanie słów, fragmentów, zdań i dokumentów.

Infrastruktura Spark NLP jest skalowana poprzez użycie zoptymalizowanych kompilacji na CPU, GPU oraz najnowsze układy Intel Xeon, co umożliwia procesom trenowania i wykonywania wnioskowań pełne wykorzystanie klastrów Spark. Ta funkcja pomaga zapewnić wydajną obsługę zadań przetwarzania języka naturalnego w różnych środowiskach i aplikacjach.

Wyzwania

  • przetwarzanie zasobów: przetwarzanie kolekcji dokumentów tekstowych w dowolnej formie wymaga znacznej ilości zasobów obliczeniowych. Przetwarzanie jest również czasochłonne. Tego rodzaju przetwarzanie często wiąże się z wdrożeniem obliczeń procesora GPU. Ostatnie postępy wspierające kwantyzację, takie jak optymalizacje w architekturach Spark NLP, takich jak Llama 2, pomagają usprawnić te intensywne zadania poprzez bardziej efektywne przydzielanie zasobów.

  • Standaryzacja: Bez standardowego formatu dokumentu trudno jest osiągnąć spójne i dokładne wyniki podczas korzystania z przetwarzania tekstu bez ustalonego formatu w celu wyodrębnienia określonych faktów z dokumentu. Na przykład wyodrębnienie numeru faktury i daty z różnych faktur stanowi wyzwanie. Integracja dostosowanych modeli przetwarzania języka naturalnego, takich jak M2M100, zwiększa dokładność przetwarzania w wielu językach i formatach. Ta ulepszona dokładność prowadzi do bardziej spójnych wyników.

  • Różnorodność i złożoność danych: Rozwiązywanie różnych struktur dokumentów i niuansów językowych pozostaje złożone. Innowacje, takie jak osadzanie MPNet, zapewniają ulepszone zrozumienie kontekstowe, co prowadzi do bardziej intuicyjnej obsługi różnych formatów tekstowych i bardziej niezawodnego przetwarzania danych.

Kluczowe kryteria wyboru

Na platformie Azure usługi Spark, takie jak Azure Databricks, Microsoft Fabric i HDInsight, zapewniają funkcje przetwarzania języka naturalnego podczas korzystania z usługi Spark NLP. Usługi azure AI to kolejna opcja funkcji przetwarzania języka naturalnego. Aby ułatwić podjęcie decyzji o tym, która usługa ma być używana, należy wziąć pod uwagę następujące aspekty:

  • Jeśli chcesz używać wstępnie utworzonych lub wstępnie wytrenowanych modeli, rozważ użycie interfejsów API zapewnianych przez usługi sztucznej inteligencji. Możesz też pobrać wybrany model za pomocą usługi Spark NLP, która obejmuje zaawansowane modele, takie jak Llama 2 i MPNet, w celu uzyskania rozszerzonych możliwości.

  • Jeśli musisz wytrenować modele niestandardowe pod kątem dużej kolekcji danych tekstowych, rozważ użycie usługi Azure Databricks, Fabric lub usługi HDInsight z usługą Spark NLP. Te platformy zapewniają moc obliczeniową i elastyczność, których potrzebujesz do rozbudowanego trenowania modelu.

  • Jeśli potrzebujesz funkcji przetwarzania języka naturalnego niskiego poziomu, takich jak tokenizacja, stemming, lemmatyzacja i częstotliwość/odwrotna częstotliwość dokumentów (TF/IDF), rozważ użycie usługi Azure Databricks, Fabric lub HDInsight z usługą Spark NLP. Alternatywnie możesz użyć biblioteki oprogramowania typu open source w wybranym narzędziu przetwarzania.

  • Jeśli potrzebujesz prostych funkcji przetwarzania języka naturalnego wysokiego poziomu, takich jak identyfikacja jednostek i intencji, wykrywanie tematów, sprawdzanie pisowni lub analiza tonacji, rozważ użycie interfejsów API oferowanych przez usługi sztucznej inteligencji. Możesz też pobrać wybrany model za pomocą usługi Spark NLP, aby użyć wstępnie utworzonych funkcji dla tych zadań.

Macierz możliwości

W poniższych tabelach podsumowano kluczowe różnice w możliwościach usług przetwarzania języka naturalnego.

Ogólne możliwości

Zdolność Usługa Spark (Azure Databricks, Fabric, HDInsight) z usługą Spark NLP Usługi sztucznej inteligencji
Udostępnia przygotowane modele w formie usługi Tak Tak
REST API Tak Tak
Programowalność Python, Scala Zobacz obsługiwane języki programowania
Obsługuje przetwarzanie dużych zestawów danych i dużych dokumentów Tak Nie

Możliwości adnotacji

Zdolność Usługa Spark (Azure Databricks, Fabric, HDInsight) z usługą Spark NLP Usługi sztucznej inteligencji
Detektor zdań Tak Nie
Wykrywacz głębokich zdań Tak Tak
narzędzie do tokenizacji Tak Tak
Generator N-gram Tak Nie
Segmentacja wyrazów Tak Tak
Stemmer Tak Nie
Lemmatizer Tak Nie
Tagowanie części mowy Tak Nie
Analizator zależności Tak Nie
Tłumaczenie Tak Nie
Czyszczenie stopwordów Tak Nie
Korekta pisowni Tak Nie
Normalizator Tak Tak
Narzędzie do dopasowywania tekstu Tak Nie
TF/IDF Tak Nie
Mechanizm dopasowywania wyrażeń regularnych Tak Osadzona w funkcji interpretacji języka konwersacyjnego (CLU)
Dopasowywanie dat Tak Możliwe w clu za pomocą funkcji rozpoznawania daty/godziny
Dzielnik Tak Nie

Notatka

Usługa Language Understanding (LUIS) zostanie wycofana 1 października 2025 r. Istniejące aplikacje usługi LUIS należy migrować do funkcji interpretacji języka konwersacyjnego (CLU) języka azure AI, która zwiększa możliwości interpretacji języka i udostępnia nowe funkcje.

Zaawansowane możliwości przetwarzania języka naturalnego

Zdolność Usługa Spark (Azure Databricks, Fabric, HDInsight) z usługą Spark NLP Usługi sztucznej inteligencji
Sprawdzanie pisowni Tak Nie
Podsumowania Tak Tak
Odpowiadanie na pytania Tak Tak
Wykrywanie emocji Tak Tak
Wykrywanie emocji Tak Wspiera górnictwo opinii
Klasyfikacja tokenów Tak Tak, za pośrednictwem modeli niestandardowych
Klasyfikacja tekstu Tak Tak, za pośrednictwem modeli niestandardowych
Reprezentacja tekstu Tak Nie
NER Tak Tak, analiza tekstu udostępnia zestaw funkcji NER
Rozpoznawanie jednostek Tak Tak, za pośrednictwem modeli niestandardowych
Wykrywanie języka Tak Tak
Obsługuje języki poza językiem angielskim Tak, obsługuje ponad 200 języków Tak, obsługuje ponad 97 języków

Konfigurowanie usługi Spark NLP na platformie Azure

Aby zainstalować usługę Spark NLP, użyj następującego kodu, ale zastąp <version> najnowszym numerem wersji. Aby uzyskać więcej informacji, zobacz dokumentację Spark NLP.

# Install Spark NLP from PyPI.
pip install spark-natural language processing==<version>

# Install Spark NLP from Anaconda or Conda.
conda install -c johnsnowlabs spark-natural language processing

# Load Spark NLP with Spark Shell.
spark-shell --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>

# Load Spark NLP with PySpark.
pyspark --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>

# Load Spark NLP with Spark Submit.
spark-submit --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>

# Load Spark NLP as an external JAR after compiling and building Spark NLP by using SBT assembly.
spark-shell --jars spark-natural language processing-assembly-3 <version>.jar

Opracowywanie potoków przetwarzania języka naturalnego

Spark NLP stosuje tę samą koncepcję programowania co tradycyjne modele uczenia maszynowego Spark ML, gdy uruchamia potok przetwarzania języka naturalnego. Stosuje również wyspecjalizowane techniki przetwarzania języka naturalnego.

Diagram przedstawiający etapy potoku przetwarzania języka naturalnego, takie jak zestaw dokumentów, wykrywanie zdań, tokenizacja, normalizacja i osadzanie wyrazów.

Potok przetwarzania języka naturalnego w środowisku Spark obejmuje następujące podstawowe składniki:

  • documentAssembler to transformator, który przygotowuje dane, konwertując je na format, który może przetwarzać usługa Spark NLP. Ten etap jest punktem wejścia dla każdego potoku Spark NLP. DocumentAssembler odczytuje kolumnę String lub Array[String] i może wstępnie przetworzyć tekst przy użyciu setCleanupMode, która jest domyślnie wyłączona.

  • SentenceDetector to adnotacja identyfikująca granice zdań przy użyciu wstępnie zdefiniowanych metod. Może zwrócić każde wykryte zdanie w Array lub w osobnych wierszach, gdy explodeSentences jest ustawiona na true.

  • Tokenizer to narzędzie adnotacyjne dzielące nieprzetworzony tekst na tokeny dyskretne, takie jak wyrazy, liczby i symbole, i wypisuje je w postaci TokenizedSentence. Tokenizer nie jest dopasowany i używa konfiguracji danych wejściowych w ramach RuleFactory do tworzenia reguł tokenizowania. Możesz dodać reguły niestandardowe, jeśli te domyślne są niewystarczające.

  • Normalizer jest adnotatorem, którego zadaniem jest ulepszanie tokenów. Normalizer stosuje wyrażenia regularne i przekształcenia słownika w celu czyszczenia tekstu i usuwania dodatkowych znaków.

  • WordEmbeddings to anotatory wyszukiwania, które mapują tokeny na wektory i ułatwiają przetwarzanie semantyczne. Niestandardowy słownik osadzania można określić przy użyciu setStoragePath, gdzie każdy wiersz zawiera token i jego wektor oddzielony spacjami. Nierozwiązane tokeny są reprezentowane przez wektory zerowe.

Spark NLP używa potoków MLlib platformy Spark, które mają natywną obsługę przez MLflow, platformy typu open source, która zarządza cyklem życia uczenia maszynowego. Rozwiązanie MLflow ma następujące kluczowe składniki:

  • Śledzenie MLflow rejestruje przebiegi eksperymentalne i oferuje niezawodne funkcje zapytań do analizowania wyników.

  • MLflow Projects umożliwia uruchamianie kodu nauki o danych na różnych platformach. Ta funkcja zwiększa przenośność i powtarzalność.

  • Modele MLflow wspierają uniwersalne wdrażanie modeli w różnych środowiskach poprzez spójny framework.

  • Model Registry zapewnia kompleksowe zarządzanie modelami, przechowując wersje centralnie w celu usprawnienia dostępu i wdrażania. Ten krok ułatwia gotowość produkcyjną.

Platforma MLflow jest zintegrowana z platformami takimi jak Azure Databricks, ale można ją również zainstalować w innych środowiskach opartych na platformie Spark w celu zarządzania eksperymentami i śledzenia ich. Ta integracja umożliwia korzystanie z rejestru modeli MLflow w celu udostępniania modeli do celów produkcyjnych. Proces wdrażania można usprawnić i zachować nadzór nad modelem.

Korzystając z platformy MLflow obok platformy Spark NLP, można zapewnić bardziej wydajne zarządzanie potokami przetwarzania języka naturalnego i wdrażanie ich. Można również spełnić nowoczesne wymagania dotyczące skalowalności i integracji, jednocześnie obsługując zaawansowane techniki, takie jak osadzanie słów i adaptacje modelu językowego.

Współpracownicy

Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy napisali ten artykuł.

Główni autorzy:

Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki