Szöveg előfeldolgozása
Fontos
A (klasszikus) Machine Learning Studio támogatása 2024. augusztus 31-én megszűnik. Javasoljuk, hogy addig térjen át az Azure Machine Learning használatára.
2021. december 1-től kezdve nem fog tudni létrehozni új (klasszikus) Machine Learning Studio-erőforrásokat. 2024. augusztus 31-ig továbbra is használhatja a meglévő (klasszikus) Machine Learning Studio-erőforrásokat.
- További információ a gépi tanulási projektek a ML Studióból a klasszikusból a Azure Machine Learning.
- További információ a Azure Machine Learning.
A (klasszikus) ML Studio dokumentációjának kivezetése folyamatban van, és a jövőben nem várható a frissítése.
Tisztítási műveleteket végez a szövegen
Kategória: Text Analytics
Megjegyzés
A következőkre vonatkozik: Machine Learning Studio (klasszikus)
Hasonló húzással használható modulok érhetők el Azure Machine Learning tervezőben.
A modul áttekintése
Ez a cikk azt ismerteti, hogyan használható a szöveg előfeldolgozása Machine Learning Studio (klasszikus) szövegének tisztítására és egyszerűsítésére. A szöveg előfeldolgozása által könnyebben hozhat létre jelentéssel bíró jellemzőket a szövegből.
Az Előfeldolgozási szöveg modul például a szövegekkel kapcsolatos gyakori műveleteket támogatja:
- A leállítási szavak eltávolítása
- Reguláris kifejezések használata adott célsringek keresésére és cseréjére
- Lemmatizálás, amely több kapcsolódó szót egyetlen canonikus formába konvertál
- Szűrés a beszéd bizonyos részeire
- Eset normalizálása
- Bizonyos karakterosztályok, például számok, speciális karakterek és ismétlődő karakterek sorozatának (például "aaaa" ) eltávolítása
- E-mailek és URL-címek azonosítása és eltávolítása
Kiválaszthatja a használni kívánt tisztítási beállításokat, és igény szerint megadhat egy egyéni stop-szólistát is.
A modul jelenleg hat nyelvet támogat: angol, spanyol, francia, holland, német és olasz.
A szöveg előfeldolgozásának konfigurálása
Adja hozzá a Preprocess Text (Szöveg előfeldolgozása ) modult a kísérlethez a Studióban (klasszikus). Ezt a modult a Text Analytics.
Csatlakozás egy olyan adatkészletet, amely legalább egy szöveget tartalmazó oszloppal rendelkezik.
Ha az előfeldolgozáshoz használt szöveg azonos nyelvű, válassza ki a nyelvet a Nyelv legördülő listából. Ezzel a beállítással a szöveg előfeldolgozása a kiválasztott nyelvre vonatkozó nyelvi szabályokkal lesz előfeldolgozásra.
A több nyelvet tartalmazó szövegek előfeldolgozáshoz válassza az Oszlop nyelvi adatokat tartalmaz lehetőséget .
Ezután a Kulturális környezet oszloptulajdonság használatával válasszon ki egy oszlopot az adatkészletben, amely az egyes sorokban használt nyelvet jelzi. Az oszlopnak tartalmaznia kell egy szabványos nyelvi azonosítót, például "Angol" vagy
en
.Ezen azonosító alapján a modul megfelelő nyelvi erőforrásokat alkalmaz a szöveg feldolgozásához.
Ha az adatkészlet nem tartalmaz ilyen azonosítókat, a Nyelv felismerése modullal előre elemezheti a nyelvet, és létrehozhat egy azonosítót.
Tipp
Ha nem támogatott nyelvet tartalmaz, hiba történik. További információért tekintse meg a Műszaki megjegyzések szakaszt.
Eltávolítás beszédrész alapján: Válassza ezt a lehetőséget, ha a beszédrészek elemzését szeretné alkalmazni. Ezután a beszédrészcímkék használatával eltávolíthat bizonyos szavakat.
- Főnevek eltávolítása: Válassza ezt a lehetőséget a főnevek eltávolításához.
- Melléknevek eltávolítása: Ezzel a beállítással eltávolíthatja a mellékneveket.
- Műveletek eltávolítása: Válassza ezt a lehetőséget a műveletek eltávolításához.
A használt beszédrész-azonosítási módszerrel kapcsolatos további információkért tekintse meg a Műszaki megjegyzések szakaszt .
Megtisztítani kívánt szövegoszlop: Válassza ki az előfeldolgozáshoz kívánt oszlopot vagy oszlopokat.
Leállítási szavak eltávolítása: Válassza ezt a lehetőséget, ha előre definiált stopword listát szeretne alkalmazni a szöveges oszlopra. A leállítási szóeltávolítást a rendszer a többi folyamat előtt végzi el.
A stopword listák nyelvfüggők és testreszabhatók; További információért tekintse meg a Műszaki megjegyzések szakaszt.
Lemmatization: Válassza ezt a lehetőséget, ha azt szeretné, hogy a szavak a saját canonical formjukban is jelen legyen. Ez a lehetőség akkor hasznos, ha csökkenteni kell az egyébként hasonló szöveges jogkivonatok egyedi előfordulásának számát.
A lemmatizálási folyamat nagy mértékben függ a nyelvtől; további részletekért tekintse meg a Műszaki megjegyzések szakaszt.
Mondatok felismerése: Válassza ezt a lehetőséget, ha azt szeretné, hogy a modul mondathatárjelet szúrjon be az elemzéshez.
Ez a modul három sorból áll,
|||
amelyek a mondatok lezáróját képviselik.Reguláris kifejezésekkel egyéni keresés és csere műveleteket is végrehajthat.
- Egyéni reguláris kifejezés: Adja meg a keresett szöveget.
- Egyéni helyettesítő sztring: Egyetlen helyettesítő érték definiálható.
Kis- és nagybetűk normalizálása: Akkor válassza ezt a lehetőséget, ha az ASCII nagybetűket kisbetűs formára szeretné konvertálni.
Ha a karakterek nincsenek normalizálva, a kis- és nagybetűkben szereplő szavak két különböző szónak számítanak: például ugyanaz,
AM
am
mint a .Az alábbi típusú karaktereket vagy karaktersorozatokat is eltávolíthatja a feldolgozott kimeneti szövegből:
- Számok eltávolítása: Ezzel a beállítással eltávolíthatja a megadott nyelv összes numerikus karakterét.
A számnak minősülő adatok azonosítása a tartománytól és a nyelvtől függ. Ha a numerikus karakterek egy ismert szó szerves részei, előfordulhat, hogy a szám nem lesz eltávolítva.
Speciális karakterek eltávolítása: Ezzel a beállítással a nem alfanumerikus speciális karaktereket a pipe karakterre cserélheti
|
.További információ a speciális karakterekről: Technikai megjegyzések .
Ismétlődő karakterek eltávolítása: Ezzel a beállítással eltávolíthatja a karaktereket megismétlő sorozatokat. Egy "aaaaa" vagy hasonló sorozatot például eltávolít a rendszer.
E-mail-címek eltávolítása: Ezzel a beállítással eltávolíthatja a formátum bármely sorozatát
<string>@<string>
.URL-címek eltávolítása: Ezzel a beállítással eltávolíthatja a következő URL-előtagokat tartalmazó sorozatokat:
http
,https
ftp
www
Bontsa ki az igealak-összekötéseket: Ez a beállítás csak olyan nyelvekre vonatkozik, amelyek igés összekötéseket alkalmaznak; jelenleg csak angol nyelven.
Ha például ezt a lehetőséget választja, lecserélheti a "would'would't stay there" kifejezést a "would not stay there" (nem marad ott) kifejezésre.
A perjeleket perjelre normalizálja: Ezzel a beállítással a összes példányát a következőre lehet
\\
leképezni:/
.Jogkivonatok felosztása speciális karakterekre: Akkor
&
válassza ezt a lehetőséget, ha szavakat szeretne felosztani az olyan karaktereken, mint a ,-
és így tovább.A sztringet például
MS-WORD
két jogkivonatra(MS
és ) kell elválasztaniWORD
.
Példák
A dokumentum alábbi Azure AI Gallery a Szöveg előfeldolgozása modul használatát szemléltetik:
Technikai megjegyzések
Ez a szakasz további információkat tartalmaz az alapul szolgáló szöveg előfeldolgozási technológiáról és az egyéni szöveges erőforrások megadásáról.
Támogatott nyelvek
Jelenleg Machine Learning támogatott a szöveg előfeldolgozása az alábbi nyelveken:
- Holland
- Angol
- Francia
- Német
- Olasz
- Spanyol
További nyelveket tervezünk. Közleményeket a Microsoft Machine Learning blogján talál.
Alapalak-keresés
A lemmatizálás egy olyan folyamat, amely egyetlen canonikus űrlapot azonosít több szótoken ábrázolása érdekében.
A Machine Learning Studio (klasszikus) által tartalmazott természetes nyelvi feldolgozási kódtárak a következő nyelvi műveleteket kombinálják a lemmatizálás érdekében:
Mondatok elkülönítése: Hangulatelemzéshez és más szövegelemzéshez használt szabad szövegben a mondatok gyakran futnak le vagy írásjelek hiányoznak. A bemeneti szövegek tetszőlegesen hosszú szövegtömbök lehetnek, amelyek egy tweettől vagy töredéktől egy teljes bekezdésig, vagy akár dokumentumokig is lehetnek.
A Studio (klasszikus) által használt természetes nyelvi eszközök a mögöttes lexikális elemzés részeként végrehajtják a mondatok elválasztását. A mondatok azonban nincsenek elválasztva a kimenetben. Azt is megadhatja, hogy egy mondathatár más szövegfeldolgozásban és -elemzésben is segítséget nyújtson.
Tokenization: A szavak határait határozzák meg szabályok nyelvfüggőek, és még olyan nyelveken is összetettek, amelyek szavak közötti szóközöket tartalmaznak.
Egyes nyelvek (például a kínai vagy a japán) nem használják a szavak közötti térközt, és a szavak elválasztásamorfológiai elemzést igényel.
Ezért az ebben a modulban használt tokenization metódusok és szabályok különböző eredményeket biztosítanak a nyelvtől a nyelvhez. Ezeket a tokenizálási szabályokat a Microsoft Research által az egyes támogatott nyelvekhez biztosított szövegelemzési kódtárak határozzák meg, és nem szabhatók testre.
Beszédrészek azonosítása: Bármilyen szósorozatban nehéz lehet a szavak pontos részét számításilag meghatározni. Még az olyan egyszerű mondatok is sok tucat elemből állnak (ez egy híres példa). A beszédrészek a különböző nyelvekmorfológiától függően is eltérnek.
Ebben Machine Learning egy kétértelmű modellel választjuk ki a beszéd egyetlen legvalószínűbb részét az aktuális mondatkörnyezet alapján. A beszédrész-információk segítenek a jellemzőkként használt szavak szűrésében és a kulcskifejezések kinyerésében. A modul kimenete azonban nem tartalmaz kifejezetten POS-címkéket, ezért nem használható POS-címkével ellátott szöveg létrehozásához.
Szótárűrlap létrehozása: Egy szó több lemmával vagy szótárűrlapokkal is lehet, amelyek mindegyikét más-más elemzésből lehet kihozni. Az angol nyelvű épületnek például két lehetséges lemmája van: az összeállítás, ha a szó főnév ("magas épület"), vagy build, ha a szó igét ("házépítést" tartalmaz). Ebben Machine Learning csak a legvalószínűbb szótárűrlap jön létre.
Példa a lemmatizálás kimenetére
Forrás | Lemmatizálva kis- és esetkonverzióval |
---|---|
Ő úszó | i i |
Most egy siratot keres | i go for a egyruhás |
Az úszók jóak az épületekben | A (rossz) jó a buildhez |
Épít egy épület | ő buildet építek |
Mindannyian épületeket építünk | mi mind buildet építünk |
Megjegyzés
A szótárűrlap létrehozásához használt nyelvi modelleket számos általános célú és technikai szöveggel tanítják be és tesztelik, és számos más, természetes nyelvi API-kat igénylő Microsoft-termékben használják őket. A természetes nyelv természetéből adódóan nem egyértelmű, és nem valósítható meg 100%-os pontosság az összes szókészletben. Például a lemmatizálásra hatással lehet a beszéd más részei vagy a mondatok elemzési módja.
Ha további előzetes feldolgozást vagy nyelvi elemzést kell végeznie egy speciális vagy tartományfüggő szókincs használatával, javasoljuk, hogy testre szabható NLP-eszközöket használjon, például a Pythonban és az R-ben elérhető eszközöket.
Speciális karakterek
A speciális karakterek olyan egyszeres karakterek, amelyek nem azonosíthatók a beszéd más részeiként, és írásjeleket tartalmazhatnak: kettőspontokat, pontosvesszőket stb.
Stopwords
A stop szó (vagy stopword) egy olyan szó, amely gyakran el van távolítva az indexből, mert gyakori, és kevés értéket biztosít az információk lekérése számára annak ellenére, hogy nyelvi szempontból értelmezhető.
Sok nyelv például szemantikai különbséget tesz a végtelen és a végtelen cikkek között ("az épület" és az "épület") között, de a gépi tanulás és az információk lekérése esetén az információ néha nem releváns. Ezért dönthet úgy, hogy elveti ezeket a szavakat.
A Machine Learning környezet tartalmazza az egyes támogatott nyelvek leggyakoribb stopwords listáját.
Nyelv | A stopwords száma | Példák |
---|---|---|
Holland | 49 | aan, af, al |
Angol | 312 | a, about, above |
Francia | 154 | de, des, d', la |
Német | 602 | a, ab, aber |
Olasz | 135 | a, adesso, ai |
Spanyol | 368 | ésa, ésta, éste |
Az Ön kényelme érdekében az Azure Storage-ban elérhetővé lett egy tömörített fájl, amely az összes jelenlegi nyelv alapértelmezett stopwordsét tartalmazza:Stopwords.zip.
A stopword lista módosítása
Arra számítunk, hogy sok felhasználó szeretne létrehozni egy saját stopword listát, vagy módosítani az alapértelmezett listában szereplő kifejezéseket. A következő kísérlet a Cortana Intelligence Galleryben bemutatja, hogyan szabható testre egy leállítási szólista.
Ha módosítja a listát, vagy saját stop szólistát hoz létre, kövesse az alábbi követelményeket:
A fájlnak egyetlen szöveges oszlopot kell tartalmaznia. Ha további oszlop is található, a következő hibaüzenet jelenhet meg: "A szöveghiba oszlopának előfeldolgozása mintának a "Text column to clean" (Szövegoszlop megtisztítása) minta várhatóan 1 oszlopot ad meg a bemeneti adatkészletben, de 2 oszlop van/van ténylegesen megjelölve. ( 0022-es hiba )"
Ebben az esetben keresse meg azokat a szóközöket, lapokat vagy rejtett oszlopokat, amelyek abban a fájlban vannak, amelyből eredetileg importálta a stopword listát. A fájl előkészített állapotától függően a szövegben szereplő tabulátorok vagy vesszők több oszlopot is okozhatnak.
Ha ez a hiba jelenik meg, tekintse át a forrásfájlt, vagy használja az Adatkészlet oszlopainak kijelölése modult, hogy egyetlen oszlopot válasszon az Előfeldolgozási szöveg modulnak való bérlethez.
Minden sor csak egy szót tartalmazhat. A fájl elemezése céljából a szavakat szóközök beszúrása határozza meg.
A stopword lista nem lehet üres.
Műveleti sorrend
Ebben a modulban több műveletet is alkalmazhat szövegre. A műveletek alkalmazásának sorrendje azonban nem módosítható. Ez hatással lehet a várt eredményekre.
Ha például lemmatizálást alkalmaz a szövegre, és a stopword eltávolítást is használja, a rendszer az összes szót a lemma-űrlapjukká alakítja a stopword lista alkalmazása előtt. Ezért ha a szöveg olyan szót is tartalmaz, amely nem szerepel a stopword listában, de a lemma szerepel a stopword listában, a rendszer eltávolítja a szót.
A helyes eredmények garantálás érdekében mindenképpen tesztelje előre a cél kifejezéseket.
Nem támogatott nyelvek
Ha a szöveges oszlop olyan nyelveket tartalmaz, Machine Learning nem támogatja, javasoljuk, hogy csak azokat a beállításokat használja, amelyekhez nincs szükség nyelvfüggő feldolgozásra. Ez segíthet elkerülni a szokatlan eredményeket.
Ha az Oszlop nyelveket tartalmaz beállítást használja, győződjön meg arról, hogy a feldolgozott szöveg nem tartalmaz nem támogatott nyelveket. Ha az adatkészlet nem támogatott nyelvet vagy annak azonosítóját tartalmazza, a következő futásidő-hiba jön létre:
"Szöveg előfeldolgozása hiba (0039): Adjon meg egy támogatott nyelvet."
Ha nem sikerül a teljes kísérlet, mert a rendszer nem támogatott nyelvet észlelt, használja az Adatok felosztása modult, és adjon meg egy reguláris kifejezést az adatkészlet támogatott és nem támogatott nyelvekre való felosztására.
Az alábbi reguláris kifejezés például az oszlop észlelt nyelvének alapján osztja fel az adatkészletet Sentence
:
\"Sentence Language" Dutch|English|French|Italian|Spanish
Ha rendelkezik olyan oszloppal, amely tartalmazza a nyelvazonosítót, vagy ha ilyen oszlopot generált, az azonosító oszlopra az alábbihoz hasonló reguláris kifejezéssel szűrhet:
\"Sentence Iso6391 Name" nl|en|fr|it|es
Várt bemenetek
Név | Típus | Description |
---|---|---|
Adathalmaz | Adattábla | Bemeneti adatok |
Szavak leállítása | Adattábla | Eltávolítható leállítási szavak egyéni listája (nem kötelező) |
Modulparaméterek
Név | Típus | Tartomány | Választható | Alapértelmezett | Description |
---|---|---|---|---|---|
URL-címek eltávolítása | Logikai | Igaz Hamis |
Kötelező | true | URL-címek eltávolítása |
Nyelv | Nyelv | Angol Spanyol Francia Holland Német Olasz |
Kötelező | Angol | Az előfeldolgozás nyelvének kiválasztása |
Megtisztítani a szövegoszlopot | Oszlop kiválasztása | Kötelező | StringFeature (Sztringfeature) | Jelölje ki a megtisztítani kívánt szövegoszlopot | |
Egyéni reguláris kifejezés | Sztring | Választható | Az egyéni reguláris kifejezés megadása | ||
Egyéni helyettesítő sztring | Sztring | Választható | Az egyéni reguláris kifejezés egyéni helyettesítő sztringének megadása | ||
Leállítási szavak eltávolítása | Logikai | Kötelező | true | Leállítási szavak eltávolítása | |
Alapalak-keresés | Logikai | Kötelező | true | Lemmatizálás használata | |
Eltávolítás beszédrész alapján | True False Type | true hamis |
Kötelező | Hamis | Annak jelzése, hogy a beszédrészek elemzése használható-e bizonyos szóosztályok azonosítására és eltávolítására |
Főnevek eltávolítása | Logikai | Akkor érvényes, ha a Szűrés beszédrész alapján beállítás ki van jelölve | true | Főnevek eltávolítása | |
Melléknevek eltávolítása | Logikai | Akkor érvényes, ha a Szűrés beszédrész alapján beállítás ki van jelölve | true | Melléknevek eltávolítása | |
Műveletek eltávolítása | Logikai | Akkor érvényes, ha a Szűrés beszédrész alapján beállítás ki van jelölve | true | Műveletek eltávolítása | |
Mondatok észlelése | Logikai | Kötelező | true | Mondatok felismerése mondatok befogyó \"||| \" az n-gram jellemzők kinyerőmodulja által használható | |
Kis- és nagybetűk normalizálása | Logikai | Kötelező | true | Kis- és nagybetűk normalizálása | |
Számok eltávolítása | Logikai | Kötelező | true | Számok eltávolítása | |
Speciális karakterek eltávolítása | Logikai | Kötelező | true | Távolítsa el a nem alfanumerikus speciális karaktereket, és cserélje le őket a \"|\" karakterre | |
Ismétlődő karakterek eltávolítása | Logikai | Kötelező | true | Ismétlődő karakterek eltávolítása | |
E-mail-címek eltávolítása | Logikai | Kötelező | true | E-mail-címek eltávolítása |
Kimenetek
Név | Típus | Description |
---|---|---|
Eredményadatkészlet | Adattábla | Eredményadatkészlet |
Kivételek
Kivétel | Description |
---|---|
0003-as hiba | Kivétel történik, ha egy vagy több bemenet null vagy üres. |
0030-as hiba | a kivétel akkor jelentkezik, ha nem lehet letölteni egy fájlt. |
0048-as hiba | Kivétel történik, ha nem lehet megnyitni egy fájlt. |
0049-es hiba | Kivétel történik, ha nem lehet fájlokat elemezni. |
A Studio (klasszikus) moduljaival kapcsolatos hibák listájáért tekintse meg a Machine Learning hibakódokat.
Az API-kivételek listájáért tekintse meg a Machine Learning REST API hibakódokat.