Criando seus próprios modelos
Determinados algoritmos no Watson Natural Language Processing podem ser treinados com seus próprios dados, por exemplo, é possível criar modelos customizados com base em seus próprios dados para extração de entidade, para classificar dados, extrair sentimentos e extrair sentimentos de destino.
Você pode usar um modelo integrado IBM Foundation baseado em transformador chamado Slate para criar seus próprios modelos. O modelo Slate foi treinado em um conjunto de dados muito grande que foi pré-processado para filtrar ódio, propensão e profanação.
Para criar sua própria classificação, modelo de extração de entidade ou modelo de sentimento, é possível ajustar o modelo de Slate em seus próprios dados. Para treinar o modelo em tempo razoável, é recomendado usar ambientes baseados em GPU.
- Detectando entidades com um dicionário customizado
- Detectando entidades com expressões regulares
- Detectando entidades com um modelo de transformador customizado
- Classificando o texto com um modelo de classificação customizado
- Extraindo sentimento com um modelo de transformador customizado
- Extraindo a impressão de destinos com um modelo de transformador customizado
Suporte ao idioma para modelos customizados
É possível criar modelos customizados e usar os modelos de dicionário e de classificação pré-treinados a seguir para os idiomas mostrados.
| Modelo customizado | Códigos de Idioma Suportados |
|---|---|
| Modelos de dicionário | af, ar, bs, ca, cs, da, de, el, en, es, fi, fr, he, hi, hr, it, ja, ko, nb, nl, nn, pl, pt, ro, ru, sk, sr, sv, tr, zh_cn, zh_tw (todos os idiomas suportados na parte da sintaxe da identificação de fala) |
| Expressões regulares | af, ar, bs, ca, cs, da, de, el, en, es, fi, fr, he, hi, hr, it, ja, ko, nb, nl, nn, pl, pt, ro, ru, sk, sr, sv, tr, zh_cn, zh_tw (todos os idiomas suportados na parte da sintaxe da identificação de fala) |
| Classificação SVM com TFIDF | af, ar, ca, cs, da, de, el, en, es, fi, fr, he, hi, hr, it, ja, ko, nb, nl, nn, pl, pt, ro, ru, sk, sr, sv, tr, zh_cn, zh_tw |
| Classificação SVM com USE | ar, de, en, es, fr, it, ja, ko, nl, pl, pt, ru, tr, zh_cn, zh_tw |
| Classificação CNN com GloVe | ar, de, en, es, fr, it, ja, ko, nl, pt, zh_cn |
| Classificação BERT multilíngue | af, ar, ca, cs, da, de, el, en, es, fi, fr, he, hi, hr, it, ja, ko, nb, nl, nn, pl, pt, ro, ru, sk, sr, sv, tr, zh_cn, zh_tw |
| modelo do Transformer | af, ar, bs, ca, cs, da, de, el, en, es, fi, fr, he, hi, hr, it, ja, ko, nb, nl, nn, pl, pt, ro, ru, sk, sr, sv, tr, zh_cn, zh_tw |
| Listas de palavras vazias | ar, de, en, es, fr, it, ja, ko |
Para obter uma lista dos códigos de idioma e dos idiomas correspondentes, consulte Códigos de idioma.
Salvando e carregando modelos customizados
Se você deseja usar o seu modelo customizado em outro bloco de notas, salve-o como um ativo de dados no seu projeto. Dessa forma, é possível exportar o modelo como parte de uma exportação do projeto.
Use a biblioteca ibm-watson-studio-lib para salvar e carregar modelos customizados.
Para salvar um modelo customizado em seu bloco de notas como um ativo de dados para exportar e usar em outro projeto:
Assegure-se de que você tenha um token de acesso na página Controle de acesso na guia Gerenciar do seu projeto. Somente os administradores do projeto podem criar tokens de acesso. O token de acesso pode ter permissões de acesso de visualizador ou de editor. Somente os editores podem injetar o token em um bloco de notas.
Inclua o token do projeto em um bloco de notas clicando em Mais > Inserir token do projeto da barra de ação do bloco de notas e, em seguida, execute a célula. Quando você executa a célula de código oculta inserida, é criado um objeto
wslibque pode ser usado para funções na bibliotecaibm-waton-studio-libPara obter detalhes sobre as funçõesibm-watson-studio-libdisponíveis, consulte Usandoibm-watson-studio-libpara Python.Execute o método
train()para criar um modelo de dicionário, de expressão regular ou de classificação customizado e designe esse modelo customizado a uma variável. Por exemplo:custom_block = CNN.train(train_stream, embedding_model.embedding, verbose=2)Se desejar salvar um dicionário customizado ou um modelo de expressão comum, converta-o em um bloco RBRGeneric A conversão de um dicionário personalizado ou de um modelo de expressão regular em um bloco RBRGeneric é útil se você quiser carregar e executar o modelo usando a API do Watson Natural Language Processing for Embed. Até a data, o Watson Natural Language Processing for Embed suporta a execução de modelos de dicionário e de expressão regular apenas como blocos RBRGeneric Para converter um modelo em um bloco RBRGeneric, execute os seguintes comandos:
# Create the custom regular expression model custom_regex_block = watson_nlp.resources.feature_extractor.RBR.train(module_folder, language='en', regexes=regexes) # Save the model to the local file system custom_regex_model_path = 'some/path' custom_regex_block.save(custom_regex_model_path) # The model was saved in a file "executor.zip" in the provided path, in this case "some/path/executor.zip" model_path = os.path.join(custom_regex_model_path, 'executor.zip') # Re-load the model as a RBRGeneric block custom_block = watson_nlp.blocks.rules.RBRGeneric(watson_nlp.toolkit.rule_utils.RBRExecutor.load(model_path), language='en')Salve o modelo como um Ativo de Dados para o seu projeto usando
ibm-watson-studio-lib:wslib.save_data("<model name>", custom_block.as_bytes(), overwrite=True)Ao salvar modelos de transformador, você tem a opção de salvar o modelo no formato de CPU Se você planeja usar o modelo somente em ambientes de CPU, usar esse formato fará com que seu modelo customizado seja executado com mais eficiência. Para isso, configure a opção de formato da CPU da seguinte forma:
wslib.save_data('<model name>', data=custom_model.as_bytes(cpu_format=True), overwrite=True)
Para carregar um modelo customizado em um bloco de notas que foi importado de outro projeto:
Assegure-se de que você tenha um token de acesso na página Controle de acesso na guia Gerenciar do seu projeto. Somente os administradores do projeto podem criar tokens de acesso. O token de acesso pode ter permissões de acesso de visualizador ou de editor. Somente os editores podem injetar o token em um bloco de notas.
Inclua o token do projeto em um bloco de notas clicando em Mais > Inserir token do projeto da barra de ação do bloco de notas e, em seguida, execute a célula. Quando você executa a célula de código oculta inserida, um objeto
wslibé criado que pode ser usado para funções na bibliotecaibm-watson-studio-libPara obter detalhes sobre as funçõesibm-watson-studio-libdisponíveis, consulte Usandoibm-watson-studio-libpara Python.Carregue o modelo usando
ibm-watson-studio-libewatson-nlp:custom_block = watson_nlp.load(wslib.load_data("<model name>"))