fastText como biblioteca para o aprendizado efetivo de retratos de palavras e caracterização de frases. É escrito em C++ e suporta multiprocessamento durante a preparação. FastText permite a preparação de retratos de palavras e frases administrados e sem ajuda. Estes retratos (embeddings) podem ser utilizados para várias aplicações a partir de pressão de informação, como destaques em modelos extras, para determinação de competidores, ou como inicializadores para aprendizagem em movimento.

Retrato

FastText pode realizar uma grande execução para retratos de palavras e agrupamento de frases, exclusivamente por causa de palavras incomuns, utilizando dados em nível de caractere.

Cada palavra é falada como um saco de caracteres n-gramas apesar da palavra em si, então, por exemplo, para a palavra matéria, com n = 3, o retrato fastText para o caractere n-gramas é <ma, tangle, att, tte, ter, er>. < e > são adicionados como imagens limite para reconhecer o ngrama de uma palavra de uma palavra em si, então, por exemplo, se a palavra tangle é um pedaço do jargão, ela é falada como <mat>. Isto ajuda a salvar o significado de palavras mais curtas que podem aparecer como ngramas de palavras diferentes. Inalienávelmente, isso também permite que você capte a importância dos postfixes/prefixos.

O comprimento dos n-gramas que você utiliza pode ser limitado pelos banners – minn e – maxn para o menor e mais extremo número de caracteres a utilizar individualmente. Estes controlam o alcance das qualidades para obter n-gramas. O modelo é visto como um modelo de pacote de palavras, pois além da janela deslizante de determinação de n-gramas, não há estrutura interna de uma palavra que seja considerada para featurização, ou seja, enquanto os caracteres caírem sob a janela, a solicitação do caractere n-gramas não faz diferença. Você também pode desativar totalmente a incorporação de n-gramas também definindo ambos como 0. Isto pode ser valioso quando as ‘palavras’ no seu modelo não são palavras para uma linguagem específica, e os n-gramas de nível de caractere não seriam um bom presságio. O caso de uso mais conhecido é o ponto em que você está colocando em ids como suas palavras. Durante a atualização do modelo, o fastText aprende cargas para cada um dos n-gramas, assim como a palavra inteira para Compreender a Informação.

Enquanto a preparação para o fastText é multifacetada, a leitura das informações é feita através de um fio solitário. A análise e a simbenização são feitas quando as informações são utilizadas. Devemos perceber como isso é feito em detalhes:

O FastText tem um tratamento de registro por meio de – contenção de entrada para informações de entrada. O uso das informações do stdin não é mantido. O FastText instala alguns vetores para monitorar os dados de informação, dentro do chamado word2int_ e words_. word2int_ é listado no hash da string de palavras, e armazena um arquivo int consecutivo para o cluster words_ (std::: vetor) como vale. O cluster_de_palavras é inserido constantemente no pedido que palavras interessantes aparecem ao se examinar a informação, e armazena como valor a seção estrutural que tipifica todos os dados sobre a palavra token. passagem contém os dados que a acompanham:

Algumas coisas para se notar aqui, a palavra é o retrato em cadeia da palavra, o tally é o include absoluto da palavra individual na linha info, o entry_type é um dos {word, label} com uma marca apenas sendo utilizada para o caso administrado. Todos os tokens de informação, não dando muita atenção ao entry_type, são colocados em uma referência de palavra similar, o que torna o alongamento mais rápido para conter diferentes tipos de substâncias muito mais simples (vou falar cada vez mais sobre como fazer isso em um último post). Finalmente, sub-palavras é um vetor de todas as palavras n-gramas de uma palavra específica. Elas também são feitas quando as informações são lidas e vão para a etapa de preparação.

A palavra2int_ vector é do tamanho MAX_VOCAB_SIZE = 30000000; Este número é codificado por hard-coded. Este tamanho pode ser restrito ao se preparar em um enorme corpus, e pode ser expandido com sucesso enquanto se cuida da execução. A lista para a palavra2int_ cluster é a estimativa de uma string para int hash e é um número notável entre 0 e MAX_VOCAB_SIZE. No caso de haver uma falha no hash, e uma passagem acaba de ser adicionada ao hash, o valor é aumentado até localizarmos um id único para atribuir a uma palavra.

Nesta linha, a execução pode exacerbar significativamente uma vez que o tamanho do jargão chega a MAX_VOCAB_SIZE. Para evitar isso, o fastText poda o jargão cada vez que o tamanho do hash ultrapassa 75% do MAX_VOCAB_SIZE. Isto é terminado com o primeiro aumento do limite de contagem base para que uma palavra se encaixe no jargão por ser um pedaço do jargão, e a poda do léxico para todas as palavras que tenham uma contagem não tão grande quanto esta. A verificação da margem de 75% acontece quando cada nova palavra é incluída, portanto esta poda programada pode acontecer em qualquer fase do procedimento de compreensão do documento.

Ao lado da poda programada, a base significa palavras que são um pedaço do jargão é restringida pela utilização dos banners – minCount e – minCountLabel para palavras e marcas (utilizados para preparação regulada) individualmente. A poda dependente desses banners ocorre após todo o documento de preparação ter sido tratado. O seu léxico pode estar limitado a uma contagem mínima maior que a indicada fisicamente se o número total de palavras notáveis em seu léxico acionar a poda programada determinada anteriormente. O limiar para a contagem mínima pré-definida acontecerá de qualquer forma de forma consistente, garantindo que palavras com uma contagem menor não se tornem um aspecto importante da sua informação.

Para o infortúnio de inspeção negativa, uma tabela de palavras negativas é então construída de tamanho NEGATIVE_TABLE_SIZE = 10000000. Note que este é ⅓ do tamanho do MAX_VOCAB_SIZE. A tabela é construída desenhando a partir de uma circulação unigramada da base quadrada da recorrência de cada palavra, ou seja, ken.

Isso garante que as ocasiões em que cada palavra aparece na tabela de negativos seja diretamente relativa à base quadrada de sua recorrência. Esta tabela é então reajustada para garantir a aleatoriedade.

Em seguida, é desenvolvida uma tabela de testes para dispor de palavras sucessivas como gráfico no segmento 2.3 da primeira palavra2vec de expansão do papel. O pensamento por trás disso são palavras que são reformuladas muito dão menos dados do que palavras que são incomuns, e que seu retrato não mudará muito depois de ver previamente inúmeras ocasiões de uma palavra semelhante.

O papel traça a técnica de descarte: a palavra preparo é descartada com uma probabilidade de

A borda padrão pode ser fisicamente alterada por meio da – t arg. A estima pela borda, não tem a mesma importância no fastText que na primeira palavra2vec, e deve ser afinada para sua aplicação.

Uma palavra é descartada apenas se, durante a fase de preparação, um sorteio arbitrário de uma apropriação uniforme em algum lugar na faixa de 0 e 1 for mais proeminente do que a probabilidade de descartar. A seguir, um gráfico da circulação para valores que vão de 0-1 para a borda padrão. Como apareceu no gráfico, a probabilidade de um sorteio ser mais notável do que os incrementos de P como os incrementos de recorrência, e ao longo destas linhas, é a probabilidade de se dispor de incrementos como a recorrência também o faz. Isto se aplica apenas aos modelos sem ajuda. As palavras não são descartadas para um modelo gerenciado.

Na hipótese remota de instaurarmos a preparação com – banner de vetores pré-treinados, as qualidades do registro de informações são utilizadas para introduzir os vetores da camada de informação. No caso de vago, é feita uma malha de medida MxN onde M = MAX_VOCAB_SIZE + bucket_size, N = diminua. bucket_size se compara ao tamanho absoluto de exibição alocado para todos os tokens de ngramas. Os ngrams são introduzidos por meio de um hash numérico (a capacidade de hash equivalente) do conteúdo do ngrama e encaixando o módulo deste número de hash na grade instalada em uma posição comparada com MAX_VOCAB_SIZE + hash. Note que pode haver falhas no espaço de ngrams, enquanto impactos não são realistas para palavras únicas. Isto também pode influenciar a execução do modelo.

Diminish fala ao elemento da camada oculta na preparação, e desta forma o elemento das incrustações, e é fixado por meio do – diminuir banner. Este é fixado em 100, como é óbvio. A rede é instaurada com uma apropriação genuína uniforme em algum lugar na faixa de 0 e 1/diminuir e é uniforme no quadrado 3D da unidade.