dus voordat we woordinbeddingen creëren die betekenisrepresentaties van woorden creëren en dimensionaliteit verminderen, hoe creëren we een goede woordenschat die wat essentie in onze taal vastlegt. Er zijn verschillende talen over de hele wereld en verschillende structuur voor elke taal. Agglutinatieve talen zoals Turks agglutinaat (voeg bovenop toe) van elk woord om een andere betekenis te creëren uit hetzelfde beginwoord. Vergelijkbaar, in het Engels, het achtervoegsel deel van smart – est is est waar het kan worden gebruikt in veel woorden.
bijvoorbeeld, in onze woordenschat hebben we misschien niet het woord luidste maar misschien het woord luid als het tokenizes als luid – est de inbedding van token zal een representatie van est hebben dus het zal een informatie voor het woord luidste hebben.
In child vindt ook een soortgelijke structuur plaats. Een kind hoeft niet elk woord en hun meervoudsvorm te horen om het te begrijpen. Na het horen van veel meervoudsvormen van objecten zoals auto ‘ s, bijen en andere objecten het kind hersenen structuren op een manier waar wanneer een kind weet wat een hoed is hij/zij niet hoeft te horen van het woord hoeden om het te gebruiken. Taalmodellen moeten ook het structurele mechanisme van onze woordenschat tokeniseren.
BPE heeft twee voordelen: het weet hoe om te gaan met onbekende woorden en kan Betekenis afleiden uit onbekende woorden
Hoe werkt het
we hebben een bestand nodig dat een goede representatie is van de taal die u probeert te tokeniseren.
- aanroep de .splits elk woord in de tekenreeks en voeg </w> toe aan het einde van elk woord. Maak een woordenboek van de frequentie van woorden.
2. Maak een functie die de woordenschat krijgt en in elk woord in de woordenschat elk woord in karakters splitst en een frequentiewoordenboek van de meeste gekoppelde karakters maakt.
3. Tijdens ons trainingsproces zullen we onze woordenschat blijven bijwerken. De merge_vocabulary-functie krijgt het oude woordenschat woordenboek en werkt het bij met het meest voorkomende karakterpaar.
4. Get tokens zullen later gebruikt worden om ingangsreeksen te tokeniseren
het maken van de woordenschat
dus na het voeden van onze initiële woordenschat en de frequentie van woorden. We zullen een lus creëren die tokenisatie zal creëren uit de woordenschat. Elke iteratie het zal het karakter dat samen optreedt vinden en voeg ze toe aan de woordenschat.
In het volgende Voorbeeld laten we zeggen dat onze woordenschat is
- Wij voegen onze einde van het woord token
- De eerste lopers worden
- We gaan naar de vocab en check voor de bigrammen en het tellen van de frequentie van de bigrammen in dit geval zijn de ‘r’ en ‘</w>’ we een update van de token woordenboek
- Wij toevoegen aan het nieuwe karakter aan onze woordenschat ‘r</w>’
U kunt zelf bepalen hoeveel iteraties dit moet plaatsvinden. Het kan 10.000 of 100 zijn.000. U bepaalt wat uw woordenschat grootte moet zijn.
codering en decodering
om de gegeven zin te coderen, moeten we eerst ons token woordenboek converteren van het langste woord naar het kortste woord. We voegen elk woord in de zin opsplitsen en voegen </w> toe aan het einde van het woord. We herhalen door elke token en als de substring van het woord bevat de token zetten we dat token als tokenization proces. Decodering wordt gegeven aan onze tokens die we samenvoegen het woord heeft geen </w> en voeg ” toe als het woord </w> aan het einde heeft.