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 Feature Hashing můžete transformovat stream anglického textu na sadu celočíselných funkcí. Pak můžete tuto sadu funkcí hash předat algoritmu strojového učení, který vytrénuje model analýzy textu.

Funkce hash funkcí poskytovaná v této komponentě je založená na architektuře nimbusml. Další informace najdete v tématu NgramHash – třída.

Co je hashování funkcí?

Funkce hashování funguje tak, že převádí jedinečné tokeny na celá čísla. Pracuje s přesnými řetězci, které zadáte jako vstup, a neprovádí žádnou jazykovou analýzu ani předběžné zpracování.

Vezměte například 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 Mínění
Miloval jsem tuto knihu 3
Nenáviděl jsem tuto knihu 1
Tato kniha byla skvělá 3
Miluji knihy 2

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

Termín (bigramy) Frekvence
Tato kniha 3
Miloval jsem 1
Nesnášela jsem 1
Miluji 1

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

Termín (jednogramy) Frekvence
Kniha 3
I 3
books 1
Byl 1

Po sestavení slovníku převede komponenta hashování funkcí slovníkové termíny 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 funkci hash.

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

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

Funkce hash umožňuje reprezentovat textové dokumenty s proměnlivou délkou jako číselné vektory funkcí se stejnou délkou, aby se snížila rozměrnost. Pokud jste se pokusili použít textový sloupec pro trénování tak, jak je, bude považován 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ávání řetězců používat celočíselné hodnoty hash, je získání váhy funkce také mnohem rychlejší.

Konfigurace komponenty Hashování funkcí

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

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

    Tip

    Vzhledem k tomu, že funkce hashování funkcí neprovádí lexikální operace, jako je stemming nebo zkracování, můžete někdy získat lepší výsledky předzpracováním textu před použitím zatřiďování funkcí.

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

    • Sloupce musí být datový typ řetězec.

    • Výběr více textových sloupců může mít významný vliv na dimenzionalitu funkce. Například počet sloupců pro 10bitovou hodnotu hash se pohybuje z 1 024 pro jeden sloupec na 2 048 pro dva sloupce.

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

    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 můžete potřebovat více místa, abyste se vyhnuli kolizím.

  5. Do pole N-gram 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, která se považuje za jedinečnou jednotku.

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

  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 významu slovníku může být výsledná datová sada velká:

Název sloupce 1 Typ sloupce 2
USERTEXT Původní sloupec dat
SENTIMENT Původní sloupec dat
USERTEXT – funkce hashování 1 Sloupec funkce s hodnotou hash
USERTEXT – funkce hashování 2 Sloupec funkce s hodnotou hash
USERTEXT – funkce hashování n Sloupec funkce s hodnotou hash
USERTEXT – funkce hashování 1024 Sloupec funkce s hodnotou hash

Po vytvoření transformované datové sady ji můžete použít jako vstup do komponenty Trénování modelu.

Osvědčené postupy

Následující osvědčené postupy vám můžou pomoct na maximum z komponenty hashování funkcí:

  • Před použitím funkce Hashing k předběžnému zpracování vstupního textu přidejte komponentu Preprocess Text.

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

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

    • Dělení slov
    • Zastavení odebírání slov
    • Normalizace velkých a velkých písmen
    • Odebrání interpunkce a speciálních znaků
    • Vyplývající

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í zásobě a obchodních potřebách. kanál s vašimi daty, abyste zjistili, které metody zpracování textu jsou nejúčinnější.

Další kroky

Podívejte se na sadu komponent dostupných pro Azure Machine Learning.