Udostępnij za pośrednictwem


Wstępne przetwarzanie tekstu

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Wykonuje operacje czyszczenia tekstu

Kategoria: analiza tekstu

Uwaga

Dotyczy: tylko Machine Learning Studio (klasyczne)

Podobne moduły przeciągania i upuszczania są dostępne w Azure Machine Learning projektanta.

Omówienie modułu

W tym artykule opisano, jak używać modułu Preprocess Text w programie Machine Learning Studio (wersja klasyczna) w celu czyszczenia i upraszczania tekstu. Wstępnie przetworzonego tekstu, można łatwiej utworzyć istotne funkcje z tekstu.

Na przykład moduł Preprocess Text (Przetwarzanie wstępne tekstu) obsługuje następujące typowe operacje na tekście:

  • Usuwanie słów stop
  • Używanie wyrażeń regularnych do wyszukiwania i zastępowania określonych ciągów docelowych
  • Lematyzacja, która konwertuje wiele powiązanych wyrazów na jedną formę kanoniczną
  • Filtrowanie określonych części mowy
  • Normalizacja przypadku
  • Usunięcie niektórych klas znaków, takich jak liczby, znaki specjalne i sekwencje powtórzeń znaków, takie jak "aaaa"
  • Identyfikacja i usuwanie wiadomości e-mail i adresów URL

Możesz wybrać opcje czyszczenia do użycia i opcjonalnie określić niestandardową listę słów stop.

Moduł obsługuje obecnie sześć języków: angielski, hiszpański, francuski, niderlandzki, niemiecki i włoski.

Jak skonfigurować przetwarzanie wstępne tekstu

  1. Dodaj moduł Preprocess Text (Wstępne przetwarzanie tekstu) do eksperymentu w programie Studio (wersja klasyczna). Ten moduł można znaleźć w analiza tekstu.

  2. Połączenie zestaw danych, który zawiera co najmniej jedną kolumnę zawierającą tekst.

  3. Jeśli przetwarzany wstępnie tekst jest w tym samym języku, wybierz język z listy rozwijanej Język. W przypadku tej opcji tekst jest wstępnie przetwarzany przy użyciu reguł językowych specyficznych dla wybranego języka.

  4. Aby wstępnie przetworzyć tekst, który może zawierać wiele języków, wybierz opcję Kolumna zawiera język.

    Następnie użyj właściwości kolumny Culture-language , aby wybrać kolumnę w zestawie danych, która wskazuje język używany w każdym wierszu. Kolumna musi zawierać standardowy identyfikator języka, taki jak "Angielski" lub en.

    Na podstawie tego identyfikatora moduł stosuje odpowiednie zasoby językowe do przetwarzania tekstu.

    Jeśli zestaw danych nie zawiera takich identyfikatorów, użyj modułu Detect Language (Wykrywanie języka), aby wcześniej przeanalizować język i wygenerować identyfikator.

    Porada

    Jeśli zostanie uwzględniony nieobsługiwany język, zostanie podniesiony błąd. Aby uzyskać więcej informacji , zobacz sekcję Uwagi techniczne.

  5. Usuń według części mowy: wybierz tę opcję, jeśli chcesz zastosować analizę części mowy. Następnie możesz użyć tagów części mowy, aby usunąć niektóre klasy wyrazów.

    • Usuń rzeczowniki: wybierz tę opcję, aby usunąć rzeczowniki.
    • Usuń przymiotniki: wybierz tę opcję, aby usunąć przymiotniki.
    • Usuń zlecenia: wybierz tę opcję, aby usunąć zlecenia.

    Aby uzyskać więcej informacji na temat używanej metody identyfikacji części mowy, zobacz sekcję Uwagi techniczne.

  6. Kolumna tekstowa do oczyszczenia: wybierz kolumnę lub kolumny, które chcesz wstępnie przetworzyć.

  7. Usuń słowa stop: wybierz tę opcję, jeśli chcesz zastosować wstępnie zdefiniowaną listę słów stopword do kolumny tekstowej. Zatrzymywanie usuwania wyrazów jest wykonywane przed innymi procesami.

    Listy stopword są zależne od języka i dostosowywalne. Aby uzyskać więcej informacji, zobacz sekcję Uwagi techniczne.

  8. Lematyzacja: wybierz tę opcję, jeśli chcesz, aby wyrazy były reprezentowane w postaci kanonicznej. Ta opcja jest przydatna do zmniejszania liczby unikatowych wystąpień tokenów tekstowych podobnych w przeciwnym razie.

    Proces lematyzacji jest wysoce zależny od języka; Aby uzyskać szczegółowe informacje, zobacz sekcję Uwagi techniczne.

  9. Wykrywanie zdań: wybierz tę opcję, jeśli chcesz, aby moduł wstawiał znacznik granicy zdania podczas przeprowadzania analizy.

    W tym module użyto serii trzech znaków potoku do ||| reprezentowania terminatora zdań.

  10. Opcjonalnie można wykonywać niestandardowe operacje znajdowanie i zastępowanie przy użyciu wyrażeń regularnych.

    • Niestandardowe wyrażenie regularne: zdefiniuj wyszukiwany tekst.
    • Niestandardowy ciąg zastępczy: zdefiniuj pojedynczą wartość zastępczą.
  11. Normalizuj małe litery: wybierz tę opcję, jeśli chcesz przekonwertować wielkie litery ASCII na ich małe litery.

    Jeśli znaki nie są znormalizowane, to samo słowo wielkie i małe litery jest traktowane jako dwa różne słowa: na przykład jest AM takie samo jak am.

  12. Opcjonalnie możesz usunąć następujące typy znaków lub sekwencje znaków z przetworzonego tekstu wyjściowego:

    • Usuń liczby: wybierz tę opcję, aby usunąć wszystkie znaki numeryczne dla określonego języka.

    Identyfikacja tego, co stanowi liczbę, jest zależna od domeny i języka. Jeśli znaki numeryczne są integralną częścią znanego wyrazu, liczba może nie zostać usunięta.

    • Usuń znaki specjalne: użyj tej opcji, aby zastąpić znaki specjalne inne niż alfanumeryczne znakiem potoku | .

      Aby uzyskać więcej informacji o znakach specjalnych, zobacz sekcję Uwagi techniczne.

    • Usuń zduplikowane znaki: wybierz tę opcję, aby usunąć wszystkie sekwencje, które powtarzają znaki. Na przykład sekwencja, na przykład "aaaaa", zostanie usunięta.

    • Usuń adresy e-mail: wybierz tę opcję, aby usunąć dowolną sekwencję formatu <string>@<string>.

    • Usuń adresy URL: wybierz tę opcję, aby usunąć dowolną sekwencję, która zawiera następujące prefiksy adresów URL:

      • http, https
      • ftp
      • www
  13. Rozszerzanie czasowników: ta opcja dotyczy tylko języków, które używają czasowników; obecnie tylko w języku angielskim.

    Na przykład wybierając tę opcję, możesz zastąpić frazę "would't stay there" (nie zostanie tam) wyrazem "would not stay there" (nie zostanie tam).

  14. Normalizuj ukośniki odwrotne do ukośników: wybierz tę opcję, aby zamapować wszystkie wystąpienia obiektu na \\ ./

  15. Podziel tokeny na znaki specjalne: wybierz tę opcję &, jeśli chcesz podzielić wyrazy na znaki takie jak , -i tak dalej.

    Na przykład ciąg zostałby MS-WORD rozdzielony na dwa tokeny: MS i WORD.

Przykłady

Poniższe przykłady w Azure AI Gallery ilustrują użycie modułu Preprocess Text (Przetwarzanie wstępne tekstu):

Uwagi techniczne

Ta sekcja zawiera więcej informacji na temat technologii wstępnego przetwarzania tekstu źródłowego oraz sposobu określania niestandardowych zasobów tekstowych.

Obsługiwane języki

Obecnie Machine Learning wstępne przetwarzanie tekstu w tych językach:

  • Niderlandzki
  • Angielski
  • Francuski
  • niemiecki
  • Włoski
  • Hiszpański

Planowane są dodatkowe języki. Zobacz blog microsoft Machine Learning, aby uzyskać ogłoszenia.

Lematyzacja

Lematyzacja to proces identyfikowania pojedynczej formy kanonicznej do reprezentowania tokenów wielu słów.

Biblioteki przetwarzania języka naturalnego zawarte w programie Machine Learning Studio (wersja klasyczna) łączą następujące operacje językowe w celu zapewnienia lematyzacji:

  • Separacja zdań: w przypadku tekstu bezpłatnego używanego do analizy tonacji i innych analiz tekstu zdania są często uruchamiane lub mogą brakować znaków interpunkcji. Tekst wejściowy może stanowić dowolnie długi fragment tekstu, od tweetu lub fragmentu do pełnego akapitu, a nawet dokumentu.

    Narzędzia języka naturalnego używane w programie Studio (wersja klasyczna) wykonują separację zdań w ramach podstawowej analizy leksykacznej. Zdania nie są jednak rozdzielane w danych wyjściowych. Opcjonalnie można określić, że granica zdania ma być oznaczona, aby pomóc w innym przetwarzaniu i analizie tekstu.

  • Tokenizacja: reguły, które określają granice wyrazów, są zależne od języka i mogą być złożone nawet w językach, które używają spacji między wyrazami.

    Niektóre języki (takie jak chiński lub japoński) nie używają żadnego odstępu między wyrazami, a separacja wyrazów wymaga analizy morfologicznej.

    W związku z tym metody i reguły tokenizacji używane w tym module zapewniają różne wyniki w różnych językach. Te reguły tokenizacji są określane przez biblioteki analizy tekstu udostępniane przez firmę Microsoft Research dla każdego obsługiwanego języka i nie można ich dostosowywać.

  • Identyfikacja części mowy: W dowolnej sekwencji słów może być trudno obliczeniowo zidentyfikować dokładną część mowy dla każdego wyrazu. Nawet pozornie proste zdanie, takie jak "Time nachylij się jak strzałka", może mieć wieledziesiąt analiz (znany przykład). Części mowy są również bardzo różne w zależności od morfologii różnych języków.

    W Machine Learning używany jest model ujednoznacznienia, aby wybrać jedną najbardziej prawdopodobną część mowy, biorąc pod uwagę bieżący kontekst zdania. Informacje o części mowy są używane do filtrowania słów używanych jako funkcje i do wyodrębniania kluczowych fraz. Jednak dane wyjściowe tego modułu nie zawierają jawnie tagów pos i dlatego nie mogą być używane do generowania tekstu z tagiem POS.

  • Generowanie formularza słownika: wyraz może mieć wiele lematów lub formularzy słownika, z których każdy pochodzi z innej analizy. Na przykład angielski wyraz building ma dwa możliwe lematy: kompilację, jeśli wyraz jest rzeczownikiem ("wysoki budynek"), lub kompilację, jeśli wyraz jest czasownikiem ("one wybudują dom"). W Machine Learning generowany jest tylko jeden najbardziej prawdopodobny formularz słownika.

Przykładowe dane wyjściowe lematyzacji

Element źródłowy Lematyzowana za pomocą konwersji przypadków
On łabędnie on i ćpać
Idzie na chylić he i go for a ich ćpać
Pływanie jest dobrym rozwiązaniem do tworzenia budynków chcieć być dobrym rozwiązaniem dla kompilacji
On jest w budynku on i build a build
Wszyscy pracujemy nad budynkami wszyscy jesteśmy kompilacjami

Uwaga

Modele językowe używane do generowania formularza słownika zostały wytrenowane i przetestowane pod kątem różnych tekstów ogólnego przeznaczenia i technicznych oraz są używane w wielu innych produktach firmy Microsoft, które wymagają interfejsów API języka naturalnego. Jednak język naturalny jest z natury niejednoznaczny, a 100% dokładność całego słownictwa nie jest możliwa. Na przykład na lematyzację mogą mieć wpływ inne części mowy lub sposób analizowania zdania.

Jeśli musisz wykonać dodatkowe przetwarzanie wstępne lub przeprowadzić analizę językową przy użyciu specjalistycznego lub zależnego od domeny słownictwa, zalecamy użycie dostosowywalnych narzędzi NLP, takich jak dostępne w językach Python i R.

Znaki specjalne

Znaki specjalne są zdefiniowane jako pojedyncze znaki, których nie można zidentyfikować jako żadnej innej części mowy i mogą zawierać znaki interpunktowe: dwukropki, średniki itd.

Stopwords

Słowo stop (lub stopword) to wyraz, który często jest usuwany z indeksów, ponieważ jest powszechny i zapewnia niewielkie korzyści w przypadku pobierania informacji, nawet jeśli może być zrozumiały językowo.

Na przykład wiele języków rozróżnia semantyczne artykuły określone i nieokreślone ("budynek" a "budynek"), ale w przypadku uczenia maszynowego i pobierania informacji informacje czasami nie są istotne. W związku z tym możesz zdecydować się odrzucić te słowa.

Środowisko Machine Learning zawiera listy najczęściej używanych słów stopwords dla każdego z obsługiwanych języków.

Język Liczba słów stopwords Przykłady
Niderlandzki 49 aan, af, al
Angielski 312 a, about, above
Francuski 154 de, des, d', la
Niemiecki 602 a, ab, aber
Włoski 135 a, adesso, ai
Hiszpański 368 masa, masta, zajmę

Dla wygody w usłudze Azure Storage został dostępny plik zip zawierający domyślne słowa stopwords dla wszystkich bieżących języków: Stopwords.zip.

Jak zmodyfikować listę stopword

Oczekujemy, że wielu użytkowników chce tworzyć własne listy stopword lub zmieniać terminy zawarte na liście domyślnej. W poniższym eksperymencie w Cortana Intelligence Gallery pokazano, jak można dostosować listę słów zatrzymywanych.

Jeśli zmodyfikujesz listę lub utworzysz własną listę słów stop, przestrzegaj tych wymagań:

  • Plik musi zawierać jedną kolumnę tekstową. Jeśli istnieje dodatkowa kolumna, może wystąpić następujący błąd: "Wzorzec wyboru kolumny błędu tekstu wstępnego "Kolumna tekstowa do oczyszczenia" powinien dostarczyć 1 kolumny wybrane w wejściowym zestawie danych, ale w rzeczywistości podano 2 kolumny. (Błąd 0022 )"

    W takim przypadku poszukaj spacji, tabulatorów lub ukrytych kolumn w pliku, z którego pierwotnie zaimportowano listę stopword. W zależności od sposobu przygotowania pliku karty lub przecinki zawarte w tekście mogą również spowodować, że zostanie utworzonych wiele kolumn.

    Jeśli wystąpi ten błąd, przejrzyj plik źródłowy lub użyj modułu Select Columns in Dataset (Wybieranie kolumn w zestawie danych), aby wybrać pojedynczą kolumnę do przekazania do modułu Preprocess Text (Przetwarzanie wstępne).

  • Każdy wiersz może zawierać tylko jeden wyraz. Na potrzeby analizowania pliku wyrazy są określane przez wstawienie spacji.

  • Lista stopword nie może być pusta.

Kolejność operacji

W tym module można zastosować wiele operacji do tekstu. Nie można jednak zmienić kolejności stosowania tych operacji. Może to mieć wpływ na oczekiwane wyniki.

Jeśli na przykład zastosujemy lematyzację do tekstu, a także użyjemy usuwania słowa stopword, wszystkie wyrazy zostaną przekonwertowane na ich formularze lemma przed zastosowaniem listy stopword. W związku z tym, jeśli tekst zawiera wyraz, który nie znajduje się na liście stopword, ale jego lemma znajduje się na liście stopword, wyraz zostanie usunięty.

Pamiętaj, aby z wyprzedzeniem przetestować terminy docelowe, aby zagwarantować prawidłowe wyniki.

Nieobsługiwane języki

Jeśli kolumna tekstowa zawiera języki, które nie są obsługiwane przez Machine Learning, zalecamy użycie tylko tych opcji, które nie wymagają przetwarzania zależnego od języka. Może to pomóc uniknąć dziwnego wyniku.

Ponadto w przypadku użycia opcji Kolumna zawiera język należy upewnić się, że w przetworzonym tekście nie zostaną uwzględnione nieobsługiwane języki. Jeśli nieobsługiwany język lub jego identyfikator znajduje się w zestawie danych, generowany jest następujący błąd czasu działania:

"Wstępne przetwarzanie błędu tekstu (0039): Określ obsługiwany język".

Aby uniknąć awarii całego eksperymentu z powodu wykrycia nieobsługiwanego języka, użyj modułu Split Data (Podział danych) i określ wyrażenie regularne, aby podzielić zestaw danych na obsługiwane i nieobsługiwane języki.

Na przykład następujące wyrażenie regularne dzieli zestaw danych na podstawie wykrytego języka dla kolumny Sentence:

\"Sentence Language" Dutch|English|French|Italian|Spanish

Jeśli masz kolumnę zawierającą identyfikator języka lub jeśli wygenerowano taką kolumnę, możesz użyć wyrażenia regularnego, takiego jak poniższe, aby filtrować według kolumny identyfikatora:

\"Sentence Iso6391 Name" nl|en|fr|it|es

Oczekiwane dane wejściowe

Nazwa Typ Opis
Zestaw danych Tabela danych Dane wejściowe
Wyrazy stop Tabela danych Opcjonalna niestandardowa lista słów stop do usunięcia

Parametry modułu

Nazwa Typ Zakres Opcjonalne Domyślny Opis
Usuwanie adresów URL Boolean Prawda

Fałsz
Wymagane true Usuwanie adresów URL
Język Język Angielski

Hiszpański

Francuski

Niderlandzki

niemiecki

Włoski
Wymagane Angielski Wybieranie języka do wstępnego przetwarzania
Kolumna tekstowa do oczyszczenia Wybór kolumny Wymagane StringFeature Wybieranie kolumny tekstowej do oczyszczenia
Niestandardowe wyrażenie regularne Ciąg Opcjonalne Określanie niestandardowego wyrażenia regularnego
Niestandardowy ciąg zastępczy Ciąg Opcjonalne Określanie niestandardowego ciągu zastępczego dla niestandardowego wyrażenia regularnego
Usuwanie słów stop Wartość logiczna Wymagane true Usuwanie słów stop
Lematyzacja Wartość logiczna Wymagane true Używanie lematyzacji
Usuwanie przez część mowy True False, typ true

fałsz
Wymagane Fałsz Wskazanie, czy analiza części mowy ma być używana do identyfikowania i usuwania niektórych klas słów
Usuwanie rzeczowników Wartość logiczna Ma zastosowanie po wybraniu opcji Filtruj według części mowy true Usuwanie rzeczowników
Usuwanie przymiotników Wartość logiczna Ma zastosowanie po wybraniu opcji Filtruj według części mowy true Usuwanie przymiotników
Usuwanie zleceń Wartość logiczna Ma zastosowanie po wybraniu opcji Filtruj według części mowy true Usuwanie zleceń
Wykrywanie zdań Wartość logiczna Wymagane true Wykrywanie zdań przez dodanie terminatora zdań \"||| \", który może być używany przez moduł wyodrębniania funkcji n-grama
Normalizowanie małych liter Wartość logiczna Wymagane true Normalizowanie małych liter
Usuwanie liczb Wartość logiczna Wymagane true Usuwanie liczb
Usuwanie znaków specjalnych Wartość logiczna Wymagane true Usuń znaki specjalne inne niż alfanumeryczne i zastąp je znakiem \"|\"
Usuwanie zduplikowanych znaków Wartość logiczna Wymagane true Usuwanie zduplikowanych znaków
Usuwanie adresów e-mail Wartość logiczna Wymagane true Usuwanie adresów e-mail

Dane wyjściowe

Nazwa Typ Opis
Zestaw danych wyników Tabela danych Zestaw danych wyników

Wyjątki

Wyjątek Opis
Błąd 0003 Wyjątek występuje, jeśli co najmniej jeden element wejściowy ma wartość null lub jest pusty.
Błąd 0030 występuje wyjątek w programie , gdy nie jest możliwe pobranie pliku.
Błąd 0048 Wyjątek występuje, gdy nie jest możliwe otwarcie pliku.
Błąd 0049 Wyjątek występuje, gdy nie jest możliwe analizowanie pliku.

Aby uzyskać listę błędów specyficznych dla modułów programu Studio (wersja klasyczna), zobacz Machine Learning Kody błędów.

Aby uzyskać listę wyjątków interfejsu API, zobacz Machine Learning API REST Error Codes (Kody błędów interfejsu API REST).

Zobacz też

Analiza tekstu

Lista modułów A–Z