Předzpracování textu
Důležité
Podpora studia Machine Learning (Classic) skončí 31. srpna 2024. Doporučujeme do tohoto data přejít na službu Azure Machine Learning.
Od 1. prosince 2021 nebude možné vytvářet nové prostředky studia Machine Learning (Classic). Do 31. srpna 2024 můžete pokračovat v používání stávajících prostředků studia Machine Learning (Classic).
- Podívejte se na informace o přesunu projektů strojového učení z ML Studia (klasického) do Azure Machine Learning.
- Další informace o Azure Machine Learning.
Dokumentace ke studiu ML (Classic) se vyřazuje z provozu a v budoucnu se nemusí aktualizovat.
Provádí operace čištění textu.
Kategorie: Analýza textu
Poznámka
Platí pro: Machine Learning Studio (classic)
Podobné moduly s přetahováním jsou k dispozici v Azure Machine Learning návrháři.
Přehled modulu
Tento článek popisuje, jak pomocí modulu Předzpracování textu v Machine Learning Studiu (klasickém) vyčistit a zjednodušit text. Díky předběžnému zpracování textu můžete snadněji vytvářet smysluplné funkce z textu.
Například modul Předzpracování textu podporuje tyto běžné operace s textem:
- Odebrání stop slov
- Použití regulárních výrazů k vyhledání a nahrazení konkrétních cílových řetězců
- Kanomatizace, která převede více souvisejících slov na jeden kanonický tvar
- Filtrování konkrétních částí řeči
- Normalizace případu
- Odebrání určitých tříd znaků, jako jsou čísla, speciální znaky a sekvence opakovaných znaků, například "aaaa".
- Identifikace a odebrání e-mailů a adres URL
Můžete zvolit, které možnosti čištění použít, a volitelně můžete zadat vlastní seznam stop slov.
Modul aktuálně podporuje šest jazyků: angličtinu, španělštinu, francouzštinu, nizozemštinu, němčinu a italštinu.
Konfigurace předběžného zpracování textu
Přidejte do experimentu v nástroji Studio (classic) modul Předzpracování textu. Tento modul najdete v části Analýza textu.
Připojení datovou sadu, která obsahuje alespoň jeden sloupec obsahující text.
Pokud je text, který předzpracování, ve stejném jazyce, vyberte jazyk z rozevíracího seznamu Jazyk. Při použití této možnosti se text předzpracuje pomocí lingvistických pravidel specifických pro vybraný jazyk.
Pokud chcete předzpracování textu, který může obsahovat více jazyků, zvolte možnost Sloupec obsahuje jazyk .
Potom pomocí vlastnosti sloupce Jazyková verze zvolte sloupec v datové sadě, který označuje jazyk použitý v každém řádku. Sloupec musí obsahovat standardní identifikátor jazyka, například angličtinu nebo
en
.Na základě tohoto identifikátoru modul použije příslušné lingvistické prostředky ke zpracování textu.
Pokud vaše datová sada takové identifikátory neobsahuje, použijte modul Zjistit jazyk k analýze jazyka předem a vygenerujte identifikátor.
Tip
Pokud je součástí nepodporovaného jazyka, dojde k chybě. Další informace najdete v části Technické poznámky.
Odebrat částí řeči: Tuto možnost vyberte, pokud chcete použít analýzu části řeči. Pak můžete pomocí značek části řeči odebrat určité třídy slov.
- Odebrat podstatné jméno: Tuto možnost vyberte, pokud chcete podstatné jméno odebrat.
- Odebrat přídavná jména: Tuto možnost vyberte, pokud chcete odebrat přídavná jména.
- Odebrat příkazy: Tuto možnost vyberte, pokud chcete příkazy odebrat.
Další informace o použité metodě identifikace části řeči najdete v části Technické poznámky.
Textový sloupec, který se má vyčistit: Vyberte sloupec nebo sloupce, které chcete předběžně zpracovat.
Odebrat stop slova: Tuto možnost vyberte, pokud chcete u textového sloupce použít předdefinovaný seznam stopwordů. Před jinými procesy se provede zastavení odebrání slov.
Seznamy skončené slov jsou závislé na jazyce a lze je přizpůsobit. Další informace najdete v části Technické poznámky.
Přimětování: Tuto možnost vyberte, pokud chcete, aby slova byla reprezentována v kanonickém tvaru. Tato možnost je užitečná pro snížení počtu jedinečných výskytů jinak podobných textových tokenů.
Proces lematizace je vysoce závislý na jazyce. Podrobnosti najdete v části Technické poznámky.
Rozpoznat věty: Tuto možnost vyberte, pokud chcete, aby modul při provádění analýzy vložil značku hranice věty.
Tento modul používá řadu tří znaků kanálu k
|||
reprezentaci ukončovací věty.Volitelně můžete provádět vlastní operace hledání a nahrazení pomocí regulárních výrazů.
- Vlastní regulární výraz: Definujte text, který hledáte.
- Vlastní nahrazování řetězce: Definujte jednu nahrazování hodnoty.
Normalizovat malá a velká písmena: Tuto možnost vyberte, pokud chcete převést velká písmena ASCII na jejich malá písmena.
Pokud znaky nejsou normalizovány,
AM
je stejné slovo velkými a malými písmeny považováno za dvě různá slova: například je stejné jakoam
.Volitelně můžete z zpracovaného výstupního textu odebrat následující typy znaků nebo sekvence znaků:
- Odebrat čísla: Tuto možnost vyberte, pokud chcete odebrat všechny číselné znaky pro zadaný jazyk.
Identifikace toho, co představuje číslo, závisí na doméně a závisí na jazyce. Pokud jsou číselné znaky nedílnou součástí známého slova, nemusí být číslo odebráno.
Odebrat speciální znaky: Tuto možnost použijte, pokud chcete nahradit všechny jiné než alfanumerické speciální znaky znakem kanálu
|
.Další informace o speciálních znacích najdete v části Technické poznámky.
Odebrat duplicitní znaky: Tuto možnost vyberte, pokud chcete odebrat všechny sekvence, které znaky opakují. Například sekvence jako "aaaaa" by byla odebrána.
Odebrat e-mailové adresy: Tuto možnost vyberte, pokud chcete odebrat libovolnou posloupnost formátu
<string>@<string>
.Odebrat adresy URL: Tuto možnost vyberte, pokud chcete odebrat libovolnou sekvenci, která obsahuje následující předpony adresy URL:
http
,https
ftp
www
Rozbalit souvětí sloves: Tato možnost se vztahuje pouze na jazyky, které používají souvětí sloves. v současné době pouze v angličtině.
Když například vyberete tuto možnost, můžete nahradit frázi "nezůrazní se tam" výrazem "nezůrazí se tam".
Normalizovat zpětná lomítka na lomítka: Tuto možnost vyberte, pokud chcete mapovat všechny instance
\\
/
na .Rozdělit tokeny na speciální znaky: Tuto možnost vyberte, pokud chcete rozdělit slova
&
na znaky, jako jsou ,-
a tak dále.Například řetězec by byl
MS-WORD
rozdělen do dvou tokenů,MS
WORD
a .
Příklady
Následující příklady v Azure AI Gallery ilustrují použití modulu Předzpracování textu:
Technické poznámky
Tato část obsahuje další informace o základní technologii předběžného zpracování textu a o tom, jak zadat vlastní textové prostředky.
Podporované jazyky
V Machine Learning podporuje předběžné zpracování textu v těchto jazycích:
- Nizozemština
- Angličtina
- Francouzština
- Němčina
- Italština
- Španělština
Plánují se další jazyky. Oznámení najdete na Machine Learning Microsoftu.
Lemmatizace
Při identifikaci jednoho kanonického formuláře reprezentující vícesložkových tokenů je proces symmatizace.
Knihovny pro zpracování přirozeného jazyka, které jsou součástí Machine Learning Studia (klasického), kombinují následující několik lingvistických operací, aby poskytovaly operaci namatizaci:
Oddělení vět: Ve volném textu používaném k analýze mínění a jiné analýze textu se věty často spouštějí nebo chybí interpunkce. Vstupní texty můžou představovat libovolně dlouhý blok textu, od tweetu nebo fragmentu až po úplný odstavec nebo dokonce dokument.
Nástroje přirozeného jazyka používané v nástroji Studio (klasickém) provádějí rozdělení vět jako součást podkladové lexikální analýzy. Ve výstupu ale nejsou oddělené věty. Volitelně můžete určit, že hranice věty bude označena jako pomůcka při jiném zpracování a analýze textu.
Tokenizace: pravidla, která určují hranice slov, jsou závislá na jazyce a můžou být složitá i v jazycích, které používají mezery mezi slovy.
Některé jazyky (například čínština nebo japonština) nepoužívají žádné prázdné znaky mezi slovy a oddělení slov vyžaduje morfologickou analýzu.
Proto metody a pravidla tokenizace používané v tomto modulu poskytují různé výsledky od jazyka až po jazyk. Tato pravidla tokenizace jsou určena knihovnami analýzy textu poskytovanými nástrojem Microsoft Research pro každý podporovaný jazyk a nelze je přizpůsobit.
Identifikace částí řeči: v jakékoli posloupnosti slov může být obtížné výpočetně identifikovat přesnou část řeči pro každé slovo. Dokonce i zdánlivě jednoduchá věta, jako je například "čas rozletí jako šipka", může mít mnoho desítek analýz (například slavných). Části řeči se také velmi liší v závislosti na morfologii různých jazyků.
v Machine Learning se k výběru jediné nejpravděpodobnější součásti řečipoužívá model nejednoznačnosti, který je dán aktuálním kontextem věty. Informace o částech mluveného slova slouží jako pomůcka pro filtrování slov používaných jako funkce a podpora při extrakci klíčových frází. Výstup tohoto modulu však explicitně neobsahuje značky POS, a proto jej nelze použít ke generování textu označeného POS.
Vygenerování formátu slovníku: slovo může mít několik lemmasnebo slovníkových formulářů, z nichž každá přichází z jiné analýzy. Například budova v anglickém slově má dvě možné lemmas: sestavování , pokud je slovo podstatným názvem ("vyšší budova"), nebo pokud je slovo sloveso (" sestavování domu"). v Machine Learning je vygenerován pouze jeden nejpravděpodobnější formulář slovníku.
Ukázkový výstup lemmatizátor nebo předzpracování
Zdroj | Lemmatized s převodem velkých a malých písmen |
---|---|
Je na něm | plavecké |
Vychází z plavecké | plavecké |
Ta je vhodná pro stavební svalovou tkáň | plavecké je dobré pro svalovou tkáň sestavení |
Sestavuje sestavení. | vytvořím sestavení |
Máme všechny budovy. | sestavuje se všechno sestavení |
Poznámka
Jazykové modely použité ke generování formátu slovníku byly vyzkoušeny a testovány na nejrůznějších obecných a technických textech a jsou používány v mnoha dalších produktech Microsoftu, které vyžadují rozhraní API pro přirozené jazyky. Přirozený jazyk je však z vlastního slovníku nejednoznačný a 100% přesnost ve všech slovnících není proveditelné. Například lemmatizátor nebo předzpracování může mít vliv na jiné části řeči nebo na způsob, jakým se tato věta analyzuje.
Pokud potřebujete provést další předběžné zpracování nebo provést lingvistickou analýzu pomocí specializovaného slovníku nebo slovníku závislého na doméně, doporučujeme použít přizpůsobitelné nástroje NLP, například ty, které jsou k dispozici v Pythonu a R.
Speciální znaky
Speciální znaky jsou definovány jako jednotlivé znaky, které nelze identifikovat jako jakoukoli jinou část řeči, a mohou obsahovat interpunkční znaménka: dvojtečky, středníky a tak dále.
Stopslova
Stop Word (nebo stopslovo) je slovo, které se často odebírá z indexů, protože je běžné a poskytuje malou hodnotu pro načítání informací, i když může být lingvisticky smysluplnější.
Mnoho jazyků například představuje sémantické rozlišení mezi určitými a neurčitými články ("sestavou" vs "sestavou"), ale pro strojové učení a načítání informací se někdy tyto informace nevztahují. Proto se můžete rozhodnout tato slova zrušit.
prostředí Machine Learning obsahuje seznam nejběžnějších stopslova pro každý z podporovaných jazyků.
Jazyk | Počet stopslova | Příklady |
---|---|---|
Nizozemština | 49 | aan, AF, Al |
Angličtina | 312 | a, o, nad |
Francouzština | 154 | de, des, d, La |
Němčina | 602 | a, AB, aber |
Italština | 135 | a, Adesso, AI |
Španělština | 368 | ésa, ésta, éste |
Pro usnadnění práce je ve službě Azure Storage k dispozici soubor ZIP obsahující výchozí stopslova pro všechny aktuální jazyky: Stopwords.zip.
Postup úpravy seznamu stopslovo
Očekáváme, že mnoho uživatelů chce vytvořit vlastní stopslovo seznamy, nebo můžete změnit výrazy obsažené ve výchozím seznamu. následující experiment v Cortana Intelligence Gallery ukazuje, jak lze přizpůsobit seznam stop-slov.
Pokud seznam upravíte nebo vytvoříte vlastní seznam stopových aplikací, postupujte podle těchto požadavků:
Soubor musí obsahovat jeden textový sloupec. Pokud je k dispozici další sloupec, může se zobrazit následující chyba: "vzorek výběru sloupce chyba při chybě textu", který má být vyčištěný "sloupec" text " (Error 0022)
Pokud k tomu dojde, hledejte mezery, tabulátory nebo skryté sloupce přítomné v souboru, ze kterého byl původně importován seznam stopslovo. V závislosti na tom, jak byl soubor připravený, můžou tabulátory nebo čárky zahrnuté v textu také způsobit vytvoření více sloupců.
Když se zobrazí tato chyba, zkontrolujte zdrojový soubor nebo použijte modul Vybrat sloupce v datové sadě k výběru jednoho sloupce, který se předá modulu textu předběžného zpracování .
Každý řádek může obsahovat pouze jedno slovo. Pro účely analýzy souboru jsou slova určena vložením mezer.
Seznam stopslovo nemůže být prázdný.
Pořadí operací
V tomto modulu můžete použít více operací na text. Pořadí, ve kterém se tyto operace používají, ale nelze změnit. To může mít vliv na očekávané výsledky.
Například pokud použijete lemmatizátor nebo předzpracování na text a také použijete odebrání stopslovo, všechna slova budou převedena na jejich lemma formuláře před použitím seznamu stopslovo. Proto pokud text obsahuje slovo, které není v seznamu stopslovo, ale jeho lemma je v seznamu stopslovo, slovo by se odebralo.
Nezapomeňte předem otestovat cílové podmínky, abyste zaručili správné výsledky.
Nepodporované jazyky
pokud textový sloupec zahrnuje jazyky, které nejsou podporovány nástrojem Machine Learning, doporučujeme použít pouze ty možnosti, které nevyžadují zpracování závislé na jazyce. To může zabránit neobvyklým výsledkům.
Pokud použijete sloupec možnost jazyk, musíte zajistit, aby se v zpracovávaném textu neobsahovaly žádné nepodporované jazyky. Pokud datová sada obsahuje nepodporovaný jazyk nebo jeho identifikátor, vygeneruje se následující chyba za běhu:
"Chyba při zpracování textu (0039): zadejte podporovaný jazyk."
Aby nedošlo k selhání celého experimentu, protože byl zjištěn nepodporovaný jazyk, použijte modul Split data a zadejte regulární výraz pro rozdělení datové sady na podporované a nepodporované jazyky.
Například následující regulární výraz rozdělí datovou sadu na základě zjištěného jazyka sloupce Sentence
:
\"Sentence Language" Dutch|English|French|Italian|Spanish
Pokud máte sloupec, který obsahuje identifikátor jazyka, nebo pokud jste tento sloupec vygenerovali, můžete použít regulární výraz, jako je například následující pro filtrování ve sloupci identifikátor:
\"Sentence Iso6391 Name" nl|en|fr|it|es
Očekávané vstupy
Název | Typ | Description |
---|---|---|
Datová sada | Tabulka dat | Vstupní data |
Stop – slova | Tabulka dat | Volitelný vlastní seznam stop slov k odebrání |
Parametry modulu
Název | Typ | Rozsah | Volitelné | Výchozí | Description |
---|---|---|---|---|---|
Odebrání adres URL | Logická hodnota | Ano Ne |
Vyžadováno | true | Odebrání adres URL |
Jazyk | Jazyk | Angličtina Španělština Francouzština Nizozemština Němčina Italština |
Vyžadováno | Angličtina | Vyberte jazyk, který se má předzpracován. |
Textový sloupec, který se má vyčistit | Výběr sloupce | Vyžadováno | StringFeature (Řetězec) | Výběr textového sloupce, který se má vyčistit | |
Vlastní regulární výraz | Řetězec | Volitelné | Zadání vlastního regulárního výrazu | ||
Vlastní nahrazování řetězce | Řetězec | Volitelné | Zadání vlastního nahrazování řetězce pro vlastní regulární výraz | ||
Odebrání stop slov | Logická hodnota | Vyžadováno | true | Odebrání stop slov | |
Lemmatizace | Logická hodnota | Vyžadováno | true | Použití lematizace | |
Odebrání částí řeči | True False Type | true false (nepravda) |
Vyžadováno | Ne | Určete, jestli se má část analýzy řeči použít k identifikaci a odebrání určitých tříd slov. |
Odebrání podstatného jména | Logická hodnota | Platí, když je vybraná možnost Filtrovat podle části řeči. | true | Odebrání podstatného jména | |
Odebrání přídavných jména | Logická hodnota | Platí, když je vybraná možnost Filtrovat podle části řeči. | true | Odebrání přídavných jména | |
Odebrání operací | Logická hodnota | Platí, když je vybraná možnost Filtrovat podle části řeči. | true | Odebrání operací | |
Rozpoznání vět | Logická hodnota | Vyžadováno | true | Rozpoznání vět přidáním ukončovací znaku věty \"||| \", který může používat modul extrahovače funkcí n-gramů | |
Normalizujte velká a malá písmena. | Logická hodnota | Vyžadováno | true | Normalizujte velká a malá písmena. | |
Odebrání čísel | Logická hodnota | Vyžadováno | true | Odebrání čísel | |
Odebrání speciálních znaků | Logická hodnota | Vyžadováno | true | Odeberte jiné než alfanumerické speciální znaky a nahraďte je znakem \"|\". | |
Odebrání duplicitních znaků | Logická hodnota | Vyžadováno | true | Odebrání duplicitních znaků | |
Odebrání e-mailových adres | Logická hodnota | Vyžadováno | true | Odebrání e-mailových adres |
Výstupy
Název | Typ | Description |
---|---|---|
Datová sada výsledků | Tabulka dat | Datová sada výsledků |
Výjimky
Výjimka | Description |
---|---|
Chyba 0003 | K výjimce dojde, pokud má jeden nebo více vstupů hodnotu null nebo je prázdný. |
Chyba 0030 | K výjimce dojde v nástroji , když není možné stáhnout soubor. |
Chyba 0048 | K výjimce dojde, když není možné otevřít soubor. |
Chyba 0049 | K výjimce dochází v případě, že není možné parsovat soubor. |
Seznam chyb specifických pro moduly sady Studio (classic) najdete v Machine Learning kódy chyb.
Seznam výjimek rozhraní API najdete v tématu Machine Learning REST API kódy chyb.