Pré-processar Texto

Realiza operações de limpeza em texto

Categoria: Análise de Texto

Nota

Aplica-se a: Machine Learning Studio (clássico)

Este conteúdo diz respeito apenas ao Studio (clássico). Módulos semelhantes de arrasto e queda foram adicionados ao designer de Aprendizagem automática Azure. Saiba mais neste artigo comparando as duas versões.

Visão geral do módulo

Este artigo descreve como usar o módulo de texto pré-processamento no Azure Machine Learning Studio (clássico), para limpar e simplificar texto. Ao pré-processar o texto, pode criar mais facilmente funcionalidades significativas a partir do texto.

Por exemplo, o módulo de texto pré-processamento suporta estas operações comuns por texto:

  • Remoção de palavras-stop
  • Usando expressões regulares para procurar e substituir cordas-alvo específicas
  • Lematização, que converte várias palavras relacionadas a uma única forma canónica
  • Filtragem em partes específicas da fala
  • Normalização de casos
  • Remoção de certas classes de caracteres, tais como números, caracteres especiais e sequências de caracteres repetidos como "aaaa"
  • Identificação e remoção de e-mails e URLs

Pode escolher quais as opções de limpeza a utilizar e especificar opcionalmente uma lista personalizada de palavras-stop.

O módulo suporta atualmente seis línguas: inglês, espanhol, francês, holandês, alemão e italiano.

Como configurar o pré-processamento de texto

  1. Adicione o módulo de texto pré-processamento à sua experiência em Studio (clássico). Pode encontrar este módulo em Text Analytics.

  2. Ligue um conjunto de dados que tenha pelo menos uma coluna contendo texto.

  3. Se o texto que está a pré-processar estiver no mesmo idioma, selecione o idioma da lista de abandono de Idioma. Com esta opção, o texto é pré-processado usando regras linguísticas específicas do idioma selecionado.

  4. Para pré-processar texto que possa conter vários idiomas, escolha a coluna contém opção linguística.

    Em seguida, utilize a propriedade da coluna culture-language para escolher uma coluna no conjunto de dados que indique a linguagem utilizada em cada linha. A coluna deve conter um identificador de linguagem padrão, como "Inglês" ou en . .

    Com base neste identificador, o módulo aplica recursos linguísticos adequados para processar o texto.

    Se o seu conjunto de dados não contiver tais identificadores, utilize o módulo DeDeteção de Linguagem para analisar previamente o idioma e gere um identificador.

    Dica

    Um erro é levantado se uma língua não apoiada for incluída. Consulte a secção de notas técnicas para obter mais informações.

  5. Remover por parte da fala: Selecione esta opção se quiser aplicar uma análise parcial da fala. Em seguida, pode utilizar as etiquetas de parte da fala para remover certas classes de palavras.

    • Remover substantivos: Selecione esta opção para remover substantivos.
    • Remover adjetivos: Selecione esta opção para remover adjetivos.
    • Remover verbos: Selecione esta opção para remover verbos.

    Para obter mais informações sobre o método de identificação da parte da fala utilizado, consulte a secção de notas técnicas.

  6. Coluna de texto para limpar: Selecione a coluna ou colunas que pretende pré-processar.

  7. Remova as palavras de paragem: Selecione esta opção se pretender aplicar uma lista de palavras de ordem predefinidas na coluna de texto. A remoção de palavras de stop é realizada antes de quaisquer outros processos.

    As listas de palavras de ordem são dependentes da linguagem e personalizáveis; para mais informações, consulte a secção de notas técnicas.

  8. Lemmatização: Selecione esta opção se quiser que as palavras sejam representadas na sua forma canónica. Esta opção é útil para reduzir o número de ocorrências únicas de tokens de texto semelhantes.

    O processo de lematização é altamente dependente da linguagem; consulte a secção de notas técnicas para obter mais detalhes.

  9. Detetar frases: Selecione esta opção se quiser que o módulo insira uma marca de limite de frase ao efetuar a análise.

    Este módulo usa uma série de três caracteres de tubo ||| para representar o exterminador da frase.

  10. Opcionalmente, pode executar operações personalizadas de encontrar e substituir utilizando expressões regulares.

    • Expressão regular personalizada: Defina o texto que procura.
    • Cadeia de substituição personalizada: Defina um único valor de substituição.
  11. Normalizar a caixa para minúsculas: Selecione esta opção se pretender converter caracteres maiúsculas ASCII para as suas formas minúsculas.

    Se os caracteres não forem normalizados, a mesma palavra em letras maiúsculas e minúsculas é considerada duas palavras diferentes: por exemplo, AM é a mesma que am .

  12. Opcionalmente, pode remover os seguintes tipos de caracteres ou sequências de caracteres do texto de saída processado:

    • Remover números: Selecione esta opção para remover todos os caracteres numéricos para o idioma especificado.

    A identificação do que constitui um número é dependente do domínio e dependente da linguagem. Se os caracteres numéricos forem parte integrante de uma palavra conhecida, o número pode não ser removido.

    • Remover caracteres especiais: Utilize esta opção para substituir quaisquer caracteres especiais não alfanuméricos pelo carácter do | tubo.

      Para mais informações sobre caracteres especiais, consulte a secção de notas técnicas.

    • Remover caracteres duplicados: Selecione esta opção para remover quaisquer sequências que repitam caracteres. Por exemplo, uma sequência como "aaaaa" seria removida.

    • Remova os endereços de e-mail: Selecione esta opção para remover qualquer sequência do formato <string>@<string> .

    • Remover URLs: Selecione esta opção para remover qualquer sequência que inclua os seguintes prefixos URL:

      • http, https
      • ftp
      • www
  13. Expandir contrações verbos: Esta opção aplica-se apenas às línguas que utilizam contrações de verbo; atualmente, apenas inglês.

    Por exemplo, selecionando esta opção, pode substituir a frase "não ficaria lá" por "não ficar lá".

  14. Normalizar as costas para os cortes: Selecione esta opção para mapear todas as instâncias de \\ / .

  15. Fichas divididas em caracteres especiais: Selecione esta opção se quiser quebrar palavras em caracteres como & , e assim por - diante.

    Por exemplo, a corda MS-WORD seria separada em dois tokens, e MS WORD .

Exemplos

Os seguintes exemplos na Galeria Azure AI ilustram a utilização do módulo de texto pré-processamento:

Notas técnicas

Esta secção fornece mais informações sobre a tecnologia de pré-processamento de texto subjacente e como especificar os recursos de texto personalizados.

Linguagens suportadas

Atualmente, a Azure Machine Learning suporta o pré-processamento de texto nestas línguas:

  • Neerlandês
  • Inglês
  • Francês
  • Alemão
  • Italiano
  • Espanhol

Estão previstas línguas adicionais. Consulte o blog Microsoft Machine Learning para obter anúncios.

Lematização

A lematização é o processo de identificação de uma única forma canónica para representar várias fichas de palavra.

As bibliotecas de processamento de linguagem natural incluídas no Azure Machine Learning Studio (clássico) combinam as seguintes múltiplas operações linguísticas para fornecer lematização:

  • Separação da frase: Em texto gratuito utilizado para análise de sentimentos e outras análises de texto, as frases são frequentemente executadas ou a pontuação pode estar em falta. Os textos de entrada podem constituir um pedaço de texto arbitrariamente longo, que vai desde um tweet ou fragmento a um parágrafo completo, ou mesmo documento.

    As ferramentas linguísticas naturais utilizadas pelo Studio (clássico) realizam a separação da frase como parte da análise lexical subjacente. No entanto, as frases não são separadas na saída. Opcionalmente, pode especificar que um limite de sentença seja marcado para ajudar em outros processamentos e análises de texto.

  • Tokenization: As regras que determinam os limites das palavras são dependentes da linguagem e podem ser complexas mesmo em línguas que usam espaços entre palavras.

    Algumas línguas (como o chinês ou o japonês) não usam nenhum espaço branco entre palavras, e a separação de palavras requer análise morfológica.

    Portanto, os métodos e regras de tokenização utilizados neste módulo fornecem diferentes resultados da linguagem para a linguagem. Estas regras de tokenização são determinadas por bibliotecas de análise de texto fornecidas pela Microsoft Research para cada idioma suportada, e não podem ser personalizadas.

  • Identificação parcial da fala: Em qualquer sequência de palavras, pode ser difícil identificar computacionalmente a parte exata da fala para cada palavra. Mesmo uma frase aparentemente simples como "O tempo voa como uma flecha" pode ter muitas dezenas de parses (um exemplo famoso). Partes da fala também são muito diferentes dependendo da morfologia de diferentes línguas.

    Em Azure Machine Learning, um modelo de desambiguação é usado para escolher a parte mais provável da fala, dado o contexto atual da frase. A informação de parte da fala é utilizada para ajudar a filtrar as palavras utilizadas como características e ajudar na extração de frases-chave. No entanto, a saída deste módulo não inclui explicitamente tags de POS e, portanto, não pode ser usada para gerar texto marcado por POS.

  • Forma de dicionário gerador: Uma palavra pode ter múltiplos lemmas, ou formas de dicionário, cada uma vindo de uma análise diferente. Por exemplo, o edifício de palavras em inglês tem dois lemmas possíveis: construir se a palavra for um substantivo ("o edifício alto"), ou construir se a palavra for um verbo ("eles estão construindo uma casa"). Em Azure Machine Learning, apenas a forma de dicionário mais provável é gerada.

Produção de lematização de amostra

Origem Lematizado com conversão de caso
Ele está a nadar. he i nadar
Ele vai nadar. ele vou nadar
Nadar é bom para construir músculos nadar ser bom para construir músculo
Ele está a construir um edifício. ele eu construir uma construção
Estamos todos construindo edifícios estamos todos construindo construção

Nota

Os modelos linguísticos utilizados para gerar forma de dicionário foram treinados e testados contra uma variedade de fins gerais e textos técnicos, e são usados em muitos outros produtos da Microsoft que requerem APIs de linguagem natural. No entanto, a linguagem natural é inerentemente ambígua e 100% de precisão em todo o vocabulário não é viável. Por exemplo, a lematização pode ser afetada por outras partes da fala, ou pela forma como a frase é analisada.

Se precisar de realizar um pré-processamento adicional ou realizar análises linguísticas utilizando um vocabulário especializado ou dependente de domínio, recomendamos que utilize ferramentas NLP personalizáveis, como as disponíveis em Python e R.

Carateres especiais

Os caracteres especiais são definidos como caracteres únicos que não podem ser identificados como qualquer outra parte da fala, e podem incluir pontuação: cólons, pontos e assim por diante.

Palavras de ordem

Uma palavra de stop (ou palavra de ordem) é uma palavra que é frequentemente removida dos índices porque é comum e fornece pouco valor para a recuperação de informação, mesmo que possa ser linguisticamente significativa.

Por exemplo, muitas línguas fazem uma distinção semântica entre artigos definidos e indefinidos ("o edifício" vs "um edifício"), mas para a aprendizagem automática e recuperação de informação, a informação às vezes não é relevante. Por isso, pode decidir descartar estas palavras.

O ambiente Azure Machine Learning inclui listas das palavras de ordem mais comuns para cada uma das línguas suportadas.

Linguagem Número de palavras-ordem Exemplos
Neerlandês 49 aan, af, al
Inglês 312 a, cerca de, acima
Francês 154 de, des, d', la
Alemão 602 a, ab, aber
Italiano 135 a, adesso, ai
Espanhol 368 ésa, ésta, éste

Para sua conveniência, um ficheiro com fecho com fecho contendo as palavras de ordem padrão para todos os idiomas atuais foi disponibilizado no armazenamento Azure: Stopwords.zip.

Como modificar a lista de palavras de ordem

Esperamos que muitos utilizadores queiram criar as suas próprias listas de palavras de ordem ou alterar os termos incluídos na lista padrão. A seguinte experiência na Cortana Intelligence Gallery demonstra como pode personalizar uma lista de palavras de stop.

Se modificar a lista ou criar a sua própria lista de palavras de ordem, observe estes requisitos:

  • O ficheiro deve conter uma única coluna de texto. Pode obter o seguinte erro se estiver presente uma coluna adicional: "Preprocesse o padrão de seleção da Coluna de Erro de Texto "Coluna de texto para limpar" deverá fornecer 1 coluna(s) selecionadas no conjunto de dados de entrada, mas 2 colunas são/são realmente fornecidas. (Erro 0022)"

    Se isso acontecer, procure espaços, separadores ou colunas escondidas presentes no ficheiro a partir do qual a lista de palavras de ordem foi originalmente importada. Dependendo da forma como o ficheiro foi preparado, os separadores ou vírgulas incluídos no texto também podem causar a criação de várias colunas.

    Quando tiver este erro, reveja o ficheiro de origem ou utilize o módulo Colunas Selecionadas no Conjunto de Dados para escolher uma única coluna para passar para o módulo de texto pré-processamento.

  • Cada linha pode conter apenas uma palavra. Para efeitos de análise do ficheiro, as palavras são determinadas por inserção de espaços.

  • A lista de palavras de ordem não pode estar vazia.

Ordem de operações

Neste módulo, pode aplicar várias operações a texto. No entanto, a ordem em que estas operações são aplicadas não pode ser alterada. Isto pode afetar os resultados esperados.

Por exemplo, se aplicar lematização ao texto e também utilizar a remoção das palavras de ordem, todas as palavras são convertidas nos formulários lemma antes da aplicação da lista de palavras de ordem. Portanto, se o seu texto incluir uma palavra que não está na lista de palavras de ordem, mas o seu lemma está na lista de palavras de ordem, a palavra seria removida.

Certifique-se de testar os termos do alvo com antecedência para garantir os resultados corretos.

Línguas não suportadas

Se a sua coluna de texto incluir idiomas não suportados pelo Azure Machine Learning, recomendamos que utilize apenas as opções que não requerem processamento dependente da linguagem. Isto pode ajudar a evitar resultados estranhos.

Além disso, se utilizar a opção A Coluna contém idioma, deve certificar-se de que não estão incluídas línguas não suportadas no texto que é processado. Se uma língua não suportada ou o seu identificador estiver presente no conjunto de dados, é gerado o seguinte erro de tempo de execução:

"Pré-processar erro de texto (0039): Por favor, especifique um idioma suportado."

Para evitar falhar toda a experiência porque foi detetada uma linguagem não apoiada, utilize o módulo de Dados Divididos e especifique uma expressão regular para dividir o conjunto de dados em línguas suportadas e não apoiadas.

Por exemplo, a expressão regular a seguir divide o conjunto de dados com base na linguagem detetada para a Sentence coluna:

\"Sentence Language" Dutch|English|French|Italian|Spanish

Se tiver uma coluna que contenha o identificador de idiomas, ou se tiver gerado tal coluna, pode utilizar uma expressão regular, como o seguinte, para filtrar na coluna do identificador:

\"Sentence Iso6391 Name" nl|en|fr|it|es

Entradas esperadas

Nome Tipo Descrição
Conjunto de dados Tabela de Dados Dados de entrada
Parem as palavras Tabela de Dados Lista personalizada opcional de palavras de paragem para remover

Parâmetros do módulo

Nome Tipo Intervalo Opcional Predefinição Descrição
Remover URLs Booleano Verdadeiro

Falso
Necessário true Remover URLs
Linguagem Linguagem Inglês

Espanhol

Francês

Neerlandês

Alemão

Italiano
Necessário Inglês Selecione o idioma para pré-processar
Coluna de texto para limpar Seleção de Colunas Necessário CadeiaFeature Selecione a coluna de texto para limpar
Expressão regular personalizada String Opcional Especificar a expressão regular personalizada
Cadeia de substituição personalizada String Opcional Especifique a cadeia de substituição personalizada para a expressão regular personalizada
Remover palavras de stop Booleano Necessário true Remover palavras de stop
Lematização Booleano Necessário true Use a lematização
Remover por parte da fala Verdadeiro Tipo Falso true

false
Necessário Falso Indicar se a análise parcial da fala deve ser usada para identificar e remover certas classes de palavras
Remover substantivos Booleano Aplica-se quando o Filtro por parte da opção de fala é selecionado true Remover substantivos
Remover adjetivos Booleano Aplica-se quando o Filtro por parte da opção de fala é selecionado true Remover adjetivos
Remover verbos Booleano Aplica-se quando o Filtro por parte da opção de fala é selecionado true Remover verbos
Detetar frases Booleano Necessário true Detetar frases adicionando um exterminador de frase \ \ "|||" que pode ser usado pelo módulo de extração de características n-grama
Normalizar o caso para minúsculas Booleano Necessário true Normalizar o caso para minúsculas
Remover números Booleano Necessário true Remover números
Remover caracteres especiais Booleano Necessário true Remova caracteres especiais não alfanuméricos e substitua-os por \ caracteres \ "|"
Remover caracteres duplicados Booleano Necessário true Remover caracteres duplicados
Remover endereços de e-mail Booleano Necessário true Remover endereços de e-mail

Saídas

Nome Tipo Descrição
Conjunto de dados de resultados Tabela de Dados Conjunto de dados de resultados

Exceções

Exceção Descrição
Erro 0003 Uma exceção ocorre se uma ou mais entradas forem nulas ou vazias.
Erro 0030 uma exceção ocorre quando não é possível descarregar um ficheiro.
Erro 0048 Uma exceção ocorre quando não é possível abrir um ficheiro.
Erro 0049 Uma exceção ocorre quando não é possível analisar um ficheiro.

Para obter uma lista de erros específicos dos módulos Studio (clássicos), consulte códigos de erro de aprendizagem automática.

Para obter uma lista de exceções da API, consulte códigos de erro da API de aprendizagem automática.

Ver também

Análise de Texto

Lista de Módulos A-Z