Sdílet prostřednictvím


Referenční informace ke komponentě hashování funkcí

Tento článek popisuje komponentu, která je součástí návrháře služby Azure Machine Learning.

Pomocí komponenty Hashing funkcí můžete transformovat datový proud anglického textu na sadu celočíselných funkcí. Tuto zatřiďovanou funkci pak můžete předat algoritmus strojového učení pro trénování modelu analýzy textu.

Funkce hash funkce poskytované v této komponentě je založená na rozhraní nimbusml. Další informace naleznete v tématu NgramHash třída.

Co je hashování funkcí?

Hashování funkcí funguje převodem jedinečných tokenů na celá čísla. Funguje s přesnými řetězci, které zadáte jako vstup, a neprovádí žádnou jazykovou analýzu ani předběžné zpracování.

Například vezměte sadu jednoduchých vět, jako jsou tyto, následované skóre mínění. Předpokládejme, že chcete tento text použít k vytvoření modelu.

Text uživatele Smýšlení
Tuto knihu jsem miloval(a) 3
Nesnáším tuto knihu 0
Tato kniha byla skvělá. 3
Miluji knihy 2

Interně vytvoří součást hashování funkcí slovník n-gramy. Například seznam bigramů pro tuto datovou sadu by vypadal přibližně takto:

Termín (bigrams) Četnost
Tato kniha 3
Milovala jsem 0
Nesnáším 0
Miluji 0

Velikost n-gramů můžete řídit pomocí vlastnosti N-gramy . Pokud zvolíte bigramy, počítají se také jednogramy. Slovník by také obsahoval jednoduché termíny, jako jsou tyto:

Termín (jednogramy) Četnost
kniha 3
I 3
knihy 0
byl 0

Po sestavení slovníku komponenta Hashing funkce převede termíny slovníku na hodnoty hash. Pak vypočítá, jestli se v každém případě použila funkce. Pro každý řádek textových dat komponenta vypíše sadu sloupců, jeden sloupec pro každou hashovanou funkci.

Například po hashování můžou sloupce funkcí vypadat nějak takto:

Rating Funkce hash 1 Funkce hash 2 Funkce hash 3
4 1 1 0
5 0 0 0
  • Pokud je hodnota ve sloupci 0, řádek neobsahuje funkci hash.
  • Pokud je hodnota 1, řádek tuto funkci obsahoval.

Hashování funkcí umožňuje znázorňovat textové dokumenty s proměnlivou délkou jako číselné vektory funkce, které mají stejnou délku, aby se snížila početnost. Pokud jste se pokusili použít textový sloupec pro trénování tak, jak je, považuje se za sloupec funkce kategorií s mnoha jedinečnými hodnotami.

Číselné výstupy také umožňují používat běžné metody strojového učení, včetně klasifikace, clusteringu a načítání informací. Vzhledem k tomu, že vyhledávací operace můžou místo porovnání řetězců používat celočíselné hodnoty hash, je získání váhy funkcí také mnohem rychlejší.

Konfigurace komponenty hash funkcí

  1. Přidejte do kanálu v návrháři komponentu hashování funkcí.

  2. Připojte datovou sadu obsahující text, který chcete analyzovat.

    Tip

    Vzhledem k tomu, že hashování funkcí neprovádí lexikální operace, jako je zvolnění nebo zkrácení, můžete někdy získat lepší výsledky před zpracováním textu před použitím hash funkce.

  3. Nastavte cílové sloupce na textové sloupce, které chcete převést na hashované funkce. Mějte na paměti následující:

    • Sloupce musí být datovým typem řetězce.

    • Volba více textových sloupců může mít významný vliv na dimenzionalitu funkcí. Například počet sloupců pro 10bitovou hodnotu hash pochází z 1 024 pro jeden sloupec na 2 048 pro dva sloupce.

  4. Pomocí bitů hash určete počet bitů, které se mají použít při vytváření tabulky hash.

    Výchozí bitová velikost je 10. U mnoha problémů je tato hodnota adekvátní. V závislosti na velikosti slovníku n gramů v trénovacím textu možná budete potřebovat více místa, abyste se vyhnuli kolizím.

  5. Pro N-gramy zadejte číslo, které definuje maximální délku n-gramů, které se mají přidat do trénovacího slovníku. N-gram je posloupnost n slov, považována za jedinečnou jednotku.

    Pokud například zadáte 3, jednogramy, bigramy a trigramy, vytvoří se.

  6. Odešlete kanál.

Výsledky

Po dokončení zpracování komponenta vypíše transformovanou datovou sadu, ve které byl původní textový sloupec převeden na více sloupců. Každý sloupec představuje funkci v textu. V závislosti na tom, jak velký je slovník, může být výsledná datová sada velká:

Název sloupce 1 Typ sloupce 2
USERTEXT Původní sloupec dat
CÍTĚNÍ Původní sloupec dat
USERTEXT – funkce hashování 1 Sloupec hashované funkce
USERTEXT – funkce hashování 2 Sloupec hashované funkce
USERTEXT – funkce hashování n Sloupec hashované funkce
USERTEXT – funkce hash 1024 Sloupec hashované funkce

Po vytvoření transformované datové sady ji můžete použít jako vstup komponenty Train Model.

Osvědčené postupy

Následující osvědčené postupy vám můžou pomoct maximálně využít komponentu hash funkcí:

  • Před použitím funkce Hashing přidejte předzpracování vstupního textu komponentu Preprocess Text.

  • Přidejte komponentu Vybrat sloupce za komponentu Hashing funkce, která odebere textové sloupce z výstupní datové sady. Po vygenerování funkcí hash nepotřebujete textové sloupce.

  • Zvažte použití těchto možností předběžného zpracování textu, abyste zjednodušili výsledky a zlepšili přesnost:

    • Dělení slov
    • Zastavení odebrání slova
    • Normalizace velkých a malých písmen
    • Odebrání interpunkce a speciálních znaků
    • Odstopkování

Optimální sada metod předběžného zpracování, které se mají použít v jakémkoli řešení, závisí na doméně, slovníku a obchodní potřebě. kanál s vašimi daty, abyste viděli, které metody zpracování textu jsou nejúčinnější.

Další kroky

Zobrazení sady komponent dostupných pro Azure Machine Learning