

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# O campo de recursos no neptune\$1ml
<a name="machine-learning-neptune_ml-features"></a>

Os valores das propriedades e os literais do RDF têm diferentes formatos e tipos de dados. Para obter um bom desempenho no machine learning, é essencial converter esses valores em codificações numéricas conhecidas como *atributos*.

O Neptune ML realiza extração e codificação de atributos como parte das etapas de exportação e processamento de dados, conforme descrito em [Codificação de atributos no Neptune ML](machine-learning-feature-encoding.md).

Para conjuntos de dados de grafos de propriedades, o processo de exportação infere automaticamente atributos `auto` para propriedades de string e propriedades numéricas que contêm vários valores. Para propriedades numéricas que contenham valores únicos, ele infere atributos `numerical`. Para propriedades de data, ele infere atributos `datetime`.

Se você quiser substituir uma especificação de recurso inferida automaticamente ou adicionar uma especificação numérica de bucket, TF-IDF ou SBERT para uma propriedade FastText, você pode controlar a codificação do recurso usando o campo features.

**nota**  
É possível usar o campo `features` somente para controlar as especificações do atributo para dados de grafos de propriedades, não para dados do RDF.

Para texto de formato livre, o Neptune ML pode usar vários modelos diferentes para converter a sequência de tokens em um valor de propriedade de string em um vetor de valor real de tamanho fixo:
+ [`text_fasttext`](machine-learning-feature-encoding.md#machine-learning-fasttext-features): usa a codificação [fastText](https://fasttext.cc/). É a codificação recomendada para atributos que usam um e somente um dos cinco idiomas aceitos pela codificação fastText.
+ [`text_sbert`](machine-learning-feature-encoding.md#machine-learning-sbert-features): usa os modelos de codificação [Sentence BERT](https://www.sbert.net/docs/pretrained_models.html#sentence-embedding-models) (SBERT). É a codificação recomendada para texto que não é compatível com `text_fasttext`.
+ [`text_word2vec`](machine-learning-feature-encoding.md#machine-learning-word2vec-features): usa algoritmos [Word2Vec](https://wikipedia.org/wiki/Word2vec) originalmente publicados pelo [Google](https://code.google.com/archive/p/word2vec/) para codificar texto. O Word2Vec é compatível apenas com inglês.
+ [`text_tfidf`](machine-learning-feature-encoding.md#machine-learning-tfidf-features): usa um vetorizador de [frequência de termo – frequência inversa do documento](https://wikipedia.org/wiki/Tf-idf) (TF-IDF) para codificar texto. A codificação TF-IDF é compatível com atributos estatísticos não aceitos por outras codificações.

O campo `features` contém uma matriz JSON de atributos de propriedade do nó. Os objetos na matriz podem conter os seguintes campos:

**Contents**
+ [nó](#machine-learning-neptune_ml-features-node)
+ [borda](#machine-learning-neptune_ml-features-edge)
+ [property](#machine-learning-neptune_ml-features-property)
+ [type](#machine-learning-neptune_ml-feature-types)
+ [norma](#machine-learning-neptune_ml-features-norm)
+ [idioma](#machine-learning-neptune_ml-features-language)
+ [max\$1length](#machine-learning-neptune_ml-features-max_length)
+ [separador](#machine-learning-neptune_ml-features-separator)
+ [intervalo](#machine-learning-neptune_ml-features-range)
+ [bucket\$1cnt](#machine-learning-neptune_ml-features-bucket_cnt)
+ [slide\$1window\$1size](#machine-learning-neptune_ml-features-slide_window_size)
+ [estimador](#machine-learning-neptune_ml-features-imputer)
+ [max\$1features](#machine-learning-neptune_ml-features-max_features)
+ [min\$1df](#machine-learning-neptune_ml-features-min_df)
+ [ngram\$1range](#machine-learning-neptune_ml-features-ngram_range)
+ [datetime\$1parts](#machine-learning-neptune_ml-features-datetime_parts)

## O campo nó em recursos
<a name="machine-learning-neptune_ml-features-node"></a>

O campo `node` especifica um rótulo de grafo de propriedades de um vértice de atributo. Por exemplo:

```
  "node": "Person"
```

Se um vértice tiver vários rótulos, use uma matriz para contê-los. Por exemplo:

```
  "node": ["Admin", "Person"]
```

## O campo borda em recursos
<a name="machine-learning-neptune_ml-features-edge"></a>

O campo `edge` especifica o tipo de uma borda de atributo. Um tipo de borda consiste em uma matriz que contém os rótulos do grafo de propriedades do vértice de origem, o rótulo do grafo de propriedades da borda e os rótulos do grafo de propriedades do vértice de destino. É necessário fornecer todos os três valores ao especificar um atributo de borda. Por exemplo:

```
  "edge": ["User", "reviewed", "Movie"]
```

Se um vértice de origem ou destino de um tipo de borda tiver vários rótulos, use outra matriz para contê-los. Por exemplo:

```
  "edge": [["Admin", "Person"]. "edited", "Post"]
```

## O campo propriedade em recursos
<a name="machine-learning-neptune_ml-features-property"></a>

Use o parâmetro propriedade para especificar uma propriedade do vértice identificado pelo parâmetro `node`. Por exemplo:

```
  "property" : "age"
```

## Valores possíveis do campo de tipo para recursos
<a name="machine-learning-neptune_ml-feature-types"></a>

O parâmetro `type` especifica o tipo de atributo que está sendo definido. Por exemplo:

```
  "type": "bucket_numerical"
```

**Valores possíveis do parâmetro `type`**
+ **`"auto"`**: especifica que o Neptune ML deve detectar automaticamente o tipo de propriedade e aplicar uma codificação de atributo adequada. Um atributo `auto` também pode ter um campo `separator` opcional.

  Consulte [Codificação de atributos automáticos no Neptune ML](machine-learning-feature-encoding.md#machine-learning-auto-encoding).
+ **`"category"`**: essa codificação de atributo representa um valor de propriedade como uma das várias categorias. Em outras palavras, o atributo pode assumir um ou mais valores distintos. Um atributo `category` também pode ter um campo `separator` opcional.

  Consulte [Atributos categóricos no Neptune ML](machine-learning-feature-encoding.md#machine-learning-categorical-features).
+ **`"numerical"`**: essa codificação de atributo representa valores de propriedade numérica como números em um intervalo contínuo em que “maior que” e “menor que” têm significado.

   Um atributo `numerical` também pode ter campos `norm`, `imputer` e `separator` opcionais.

  Consulte [Atributos numéricos no Neptune ML](machine-learning-feature-encoding.md#machine-learning-numerical-features).
+ **`"bucket_numerical"`**: essa codificação de atributos divide os valores de propriedade numérica em um conjunto de *buckets* ou categorias.

  Por exemplo, é possível codificar a idade das pessoas em quatro buckets: crianças (de 0 a 20 anos), jovens adultos (de 20 a 40 anos), meia idade (de 40 a 60 anos) e idosos (de 60 anos em diante).

  Um `bucket_numerical` recurso requer um `bucket_cnt` campo `range` e um e, opcionalmente, também pode incluir um `imputer` and/or `slide_window_size` campo.

  Consulte [Atributos numéricos de bucket no Neptune ML](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features).
+ **`"datetime"`**: essa codificação de atributos representa um valor de propriedade de data e hora como uma matriz desses atributos categóricos: ano, mês, dia da semana e hora.

  Uma ou mais dessas quatro categorias podem ser eliminadas usando o parâmetro `datetime_parts`.

  Consulte [Atributos de data e hora no Neptune ML](machine-learning-feature-encoding.md#machine-learning-datetime-features).
+ **`"text_fasttext"`**: essa codificação de atributos converte valores de propriedade que consistem em frases ou texto de formato livre em vetores numéricos usando modelos [fastText](https://fasttext.cc/). Ela é compatível com cinco idiomas, a saber, inglês (`en`), chinês (`zh`), hindi (`hi`), espanhol (`es`) e francês (`fr`). Para valores de propriedade de texto em qualquer um desses cinco idiomas, `text_fasttext` é a codificação recomendada. No entanto, ela não consegue lidar com casos em que a mesma frase contenha palavras em mais de um idioma.

  Para outros idiomas além dos compatíveis com a fastText, use a codificação `text_sbert`.

  Se você tiver muitas strings de texto de valor de propriedade maiores que, digamos, 120 tokens, use o campo `max_length` para limitar o número de tokens em cada string codificada por `"text_fasttext"`.

  Consulte [Codificação *fastText* de valores de propriedades de texto no Neptune ML](machine-learning-feature-encoding.md#machine-learning-fasttext-features).
+ **`"text_sbert"`**: essa codificação converte valores de propriedade de texto em vetores numéricos usando modelos [Sentence BERT](https://www.sbert.net/docs/pretrained_models.html#sentence-embedding-models) (SBERT). O Neptune é compatível com dois métodos SBERT, ou seja, `text_sbert128`, que será o padrão se você apenas especificar `text_sbert` e `text_sbert512`. A diferença entre eles é o número máximo de tokens em uma propriedade de texto codificada. A codificação `text_sbert128` codifica apenas os primeiros 128 tokens, enquanto `text_sbert512` codifica até 512 tokens. Como resultado, o uso de `text_sbert512` pode exigir mais tempo de processamento do que `text_sbert128`. Os dois métodos são mais lentos do que `text_fasttext`.

  Os métodos `text_sbert*` são compatíveis com vários idiomas e podem codificar uma frase que contenha mais de um idioma.

  Consulte [Codificação Sentence BERT (SBERT) de atributos de texto no Neptune ML](machine-learning-feature-encoding.md#machine-learning-sbert-features).
+ **`"text_word2vec"`**: essa codificação converte valores de propriedade de texto em vetores numéricos usando algoritmos [Word2Vec](https://wikipedia.org/wiki/Word2vec). Ela aceita apenas inglês.

  Consulte [Codificação Word2Vec de atributos de texto no Neptune ML](machine-learning-feature-encoding.md#machine-learning-word2vec-features).
+ **`"text_tfidf"`**: essa codificação converte valores de propriedade de texto em vetores numéricos usando um vetorizador de [frequência de termo – frequência inversa de documento](https://wikipedia.org/wiki/Tf-idf) (TF-IDF).

  Você define os parâmetros de uma codificação de atributos `text_tfidf` usando os campos `ngram_range`, `min_df` e `max_features`.

  Consulte [Codificação TF-IDF de atributos de texto no Neptune ML](machine-learning-feature-encoding.md#machine-learning-tfidf-features).
+ **`"none"`**: usar o tipo `none` faz com que nenhuma codificação de atributos ocorra. Em vez disso, os valores brutos das propriedades são analisados e salvos.

  Use `none` somente se você planeja realizar a própria codificação de atributos personalizados como parte do treinamento de modelos personalizados.

## O campo norma
<a name="machine-learning-neptune_ml-features-norm"></a>

Esse campo é obrigatório para atributos numéricos. Ele especifica um método de normalização a ser usado em valores numéricos:

```
"norm": "min-max"
```

Os seguintes métodos de normalização são compatíveis:
+ **“mín-máx”**: normalize cada valor subtraindo o valor mínimo e dividindo-o pela diferença entre o valor máximo e o mínimo.
+ **“padrão”**: normalize cada valor dividindo-o pela soma de todos os valores.
+ **“nenhum”**: não normalize os valores numéricos durante a codificação.

Consulte [Atributos numéricos no Neptune ML](machine-learning-feature-encoding.md#machine-learning-numerical-features).

## O campo idioma
<a name="machine-learning-neptune_ml-features-language"></a>

O campo de idioma especifica o idioma usado nos valores das propriedades de texto. O uso depende do método de codificação de texto:
+ Para a codificação [`text_fasttext`](machine-learning-feature-encoding.md#machine-learning-fasttext-features), esse campo é obrigatório e deve especificar um dos seguintes idiomas:
  + `en`   (inglês)
  + `zh`   (chinês)
  + `hi`   (hindi)
  + `es`   (espanhol)
  + `fr`   (francês)
+ Para a codificação [`text_sbert`](machine-learning-feature-encoding.md#machine-learning-fasttext-features), esse campo não é usado, pois a codificação SBERT é multilíngue.
+ Para a codificação [`text_word2vec`](machine-learning-feature-encoding.md#machine-learning-word2vec-features), esse campo é opcional, pois `text_word2vec` só é compatível com inglês. Se presente, ele deve especificar o nome do modelo em inglês:

  ```
  "language" : "en_core_web_lg"
  ```
+ Para a codificação [`text_tfidf`](machine-learning-feature-encoding.md#machine-learning-tfidf-features), esse campo não é usado.

## O campo max\$1length
<a name="machine-learning-neptune_ml-features-max_length"></a>

O campo `max_length` é opcional para atributos `text_fasttext`, no qual ele especifica o número máximo de tokens em um atributo de texto de entrada que será codificado. Texto de entrada maior do que `max_length` é truncado. Por exemplo, definir max\$1length como 128 indica que qualquer token após o 128º em uma sequência de texto será ignorado:

```
"max_length": 128
```

## O campo separador
<a name="machine-learning-neptune_ml-features-separator"></a>

Esse campo é usado opcionalmente com os atributos `category`, `numerical` e `auto`. Ele especifica um caractere que pode ser usado para dividir o valor de uma propriedade em vários valores categóricos ou valores numéricos:

```
"separator": ";"
```

Use o campo `separator` somente quando a propriedade armazena vários valores delimitados em uma única string, como `"Actor;Director"` ou `"0.1;0.2"`.

Consulte [Atributos categóricos](machine-learning-feature-encoding.md#machine-learning-categorical-features), [Atributos numéricos](machine-learning-feature-encoding.md#machine-learning-numerical-features) e [Codificação automática](machine-learning-feature-encoding.md#machine-learning-auto-encoding).

## O campo intervalo
<a name="machine-learning-neptune_ml-features-range"></a>

Esse campo é obrigatório para atributos `bucket_numerical`. Ele especifica o intervalo de valores numéricos que devem ser divididos em buckets, no formato `[lower-bound, upper-bound]`:

```
"range" : [20, 100]
```

Se o valor de uma propriedade for menor que o limite inferior, ele será atribuído ao primeiro bucket ou, se for maior que o limite superior, será atribuído ao último bucket.

Consulte [Atributos numéricos de bucket no Neptune ML](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features).

## O campo bucket\$1cnt
<a name="machine-learning-neptune_ml-features-bucket_cnt"></a>

Esse campo é obrigatório para atributos `bucket_numerical`. Ele especifica o número de buckets nos quais o intervalo numérico definido pelo parâmetro `range` deve ser dividido:

```
"bucket_cnt": 10
```

Consulte [Atributos numéricos de bucket no Neptune ML](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features).

## O campo slide\$1window\$1size
<a name="machine-learning-neptune_ml-features-slide_window_size"></a>

Esse campo é usado opcionalmente com atributos `bucket_numerical` para atribuir valores a mais de um bucket:

```
"slide_window_size": 5
```

Uma janela de controle deslizante funciona da seguinte forma: o Neptune ML considera o tamanho da janela **`s`** e transforma cada valor numérico **`v`** de uma propriedade em um intervalo de ` v - s/2 ` a ` v + s/2 `. O valor é então atribuído a cada bucket ao qual o intervalo se sobrepõe.

Consulte [Atributos numéricos de bucket no Neptune ML](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features).

## O campo estimador
<a name="machine-learning-neptune_ml-features-imputer"></a>

Esse campo é usado opcionalmente com atributos `numerical` e `bucket_numerical` para fornecer uma técnica de imputação a fim de preencher valores ausentes:

```
"imputer": "mean"
```

As técnicas de imputação compatíveis são:
+ `"mean"`
+ `"median"`
+ `"most-frequent"`

Se você não incluir o parâmetro estimador, o pré-processamento de dados será interrompido e encerrado quando um valor ausente for encontrado.

Consulte [Atributos numéricos no Neptune ML](machine-learning-feature-encoding.md#machine-learning-numerical-features) e [Atributos numéricos de bucket no Neptune ML](machine-learning-feature-encoding.md#machine-learning-bucket_numerical-features).

## O campo max\$1features
<a name="machine-learning-neptune_ml-features-max_features"></a>

Esse campo é usado opcionalmente pelos atributos `text_tfidf` para especificar o número máximo de termos a serem codificados:

```
"max_features": 100
```

Uma configuração de cem faz com que o vetorizador TF-IDF codifique somente os cem termos mais comuns. O valor padrão, se você não incluir `max_features` será cinco mil.

Consulte [Codificação TF-IDF de atributos de texto no Neptune ML](machine-learning-feature-encoding.md#machine-learning-tfidf-features).

## O campo min\$1df
<a name="machine-learning-neptune_ml-features-min_df"></a>

Esse campo é usado opcionalmente pelos atributos `text_tfidf` para especificar a frequência mínima de documentos de termos a serem codificados:

```
"min_df": 5
```

Uma configuração de cinco indica que um termo deve aparecer em pelo menos cinco valores de propriedade diferentes para ser codificado.

O valor padrão se você não incluir o parâmetro `min_df` será `2`.

Consulte [Codificação TF-IDF de atributos de texto no Neptune ML](machine-learning-feature-encoding.md#machine-learning-tfidf-features).

## O campo ngram\$1range
<a name="machine-learning-neptune_ml-features-ngram_range"></a>

Esse campo é usado opcionalmente pelos atributos `text_tfidf` para especificar quais sequências de tamanho de palavras ou tokens devem ser consideradas como possíveis termos individuais a serem codificados:

```
"ngram_range": [2, 4]
```

O valor `[2, 4]` especifica que sequências de dois, três e quatro palavras devem ser consideradas como possíveis termos individuais.

O padrão, se você não definir explicitamente `ngram_range` será `[1, 1]`, o que significa que somente palavras ou tokens individuais são considerados termos a serem codificados.

Consulte [Codificação TF-IDF de atributos de texto no Neptune ML](machine-learning-feature-encoding.md#machine-learning-tfidf-features).

## O campo datetime\$1parts
<a name="machine-learning-neptune_ml-features-datetime_parts"></a>

Esse campo é usado opcionalmente pelos atributos `datetime` para especificar quais partes do valor de data e hora devem ser codificadas categoricamente: 

```
"datetime_parts": ["weekday", "hour"]
```

Se você não incluir `datetime_parts`, por padrão, o Neptune ML codificará as partes de ano, mês, dia da semana e hora do valor de data e hora. O valor `["weekday", "hour"]` indica que somente os valores do dia da semana e da hora da data e hora devem ser codificados categoricamente no atributo.

Se uma das partes não tiver mais de um valor exclusivo no conjunto de treinamento, ela não será codificada.

Consulte [Atributos de data e hora no Neptune ML](machine-learning-feature-encoding.md#machine-learning-datetime-features).