🚀 Experimente o Zilliz Cloud, o Milvus totalmente gerenciado, gratuitamente—experimente um desempenho 10x mais rápido! Experimente Agora>>

milvus-logo
LFAI
  • Home
  • Blog
  • Criar um assistente de escrita com IA para o WPS Office

Criar um assistente de escrita com IA para o WPS Office

  • Scenarios
July 28, 2020
milvus

O WPS Office é uma ferramenta de produtividade desenvolvida pela Kingsoft com mais de 150 milhões de utilizadores em todo o mundo. O departamento de inteligência artificial (IA) da empresa criou um assistente de escrita inteligente a partir do zero, utilizando algoritmos de correspondência semântica, como o reconhecimento de intenções e o agrupamento de texto. A ferramenta existe como uma aplicação Web e como um mini-programa WeChat que ajuda os utilizadores a criar rapidamente esboços, parágrafos individuais e documentos completos, bastando introduzir um título e selecionar até cinco palavras-chave.

O motor de recomendação do assistente de escrita utiliza o Milvus, um motor de pesquisa de semelhanças de código aberto, para alimentar o seu módulo de processamento vetorial principal. De seguida, vamos explorar o processo de criação do assistente de escrita inteligente do WPS Offices, incluindo a forma como as caraterísticas são extraídas de dados não estruturados, bem como o papel que o Milvus desempenha no armazenamento de dados e na alimentação do motor de recomendação da ferramenta.

Saltar para:

Dar sentido a dados textuais não estruturados

Tal como qualquer problema moderno que valha a pena resolver, a criação do assistente de escrita WPS começa com dados confusos. Dezenas de milhões de documentos de texto densos dos quais é necessário extrair caraterísticas significativas, para ser um pouco mais preciso. Para compreender a complexidade deste problema, considere a forma como dois jornalistas de diferentes agências noticiosas podem fazer uma reportagem sobre o mesmo tópico.

Embora ambos respeitem as regras, os princípios e os processos que regem a estrutura das frases, farão escolhas de palavras diferentes, criarão frases de comprimento variável e utilizarão as suas próprias estruturas de artigos para contar histórias semelhantes (ou talvez diferentes). Ao contrário dos conjuntos de dados estruturados com um número fixo de dimensões, os corpos de texto carecem inerentemente de estrutura porque a sintaxe que os rege é muito maleável. Para encontrar significado, é necessário extrair caraterísticas legíveis por máquinas de um corpus de documentos não estruturados. Mas primeiro, os dados têm de ser limpos.

Existem várias formas de limpar dados textuais, nenhuma das quais será abordada em pormenor neste artigo. No entanto, este é um passo importante que antecipa o processamento dos dados e pode incluir a remoção de etiquetas, a remoção de caracteres acentuados, a expansão de contracções, a remoção de caracteres especiais, a remoção de stopwords e muito mais. Uma explicação detalhada dos métodos de pré-processamento e limpeza de dados de texto pode ser encontrada aqui.

Utilizar o modelo TFIDF para maximizar a extração de caraterísticas

Para começar a dar sentido aos dados textuais não estruturados, o modelo TFIDF (term frequency-inverse document frequency) foi aplicado ao corpus do qual o assistente de escrita WPS extrai. Este modelo utiliza uma combinação de duas métricas, a frequência de termos e a frequência inversa de documentos, para atribuir a cada palavra de um documento um valor TFIDF. A frequência de termos (TF) representa a contagem bruta de um termo num documento dividida pelo número total de termos no documento, enquanto a frequência inversa de documentos (IDF) é o número de documentos num corpus dividido pelo número de documentos em que um termo aparece.

O produto de TF e IDF fornece uma medida da frequência com que um termo aparece num documento multiplicada pelo grau de exclusividade da palavra no corpus. Em última análise, os valores TFIDF são uma medida da relevância de uma palavra para um documento dentro de uma coleção de documentos. Os termos são ordenados por valores TFIDF, e aqueles com valores baixos (ou seja, palavras comuns) podem ter menos peso quando se utiliza a aprendizagem profunda para extrair caraterísticas do corpus.

Extração de caraterísticas com o modelo de aprendizagem profunda bidirecional LSTM-CNNs-CRF

Utilizando uma combinação de memória de curto prazo longa bidirecional (BLSTM), redes neuronais convolucionais (CNN) e campos aleatórios condicionais (CRF), é possível extrair do corpus representações ao nível das palavras e dos caracteres. O modelo BLSTM-CNNs-CRF utilizado para construir o assistente de escrita WPS Office funciona da seguinte forma

  1. CNN: Os embeddings de caracteres são utilizados como entradas para a CNN, depois as estruturas de palavras semanticamente relevantes (ou seja, o prefixo ou o sufixo) são extraídas e codificadas em vectores de representação ao nível dos caracteres.
  2. BLSTM: Os vectores ao nível dos caracteres são concatenados com os vectores de incorporação de palavras e depois introduzidos na rede BLSTM. Cada sequência é apresentada para a frente e para trás em dois estados ocultos separados para captar informações passadas e futuras.
  3. CRF: Os vectores de saída da BLSTM são enviados para a camada CRF para descodificar conjuntamente a melhor sequência de etiquetas.

A rede neural é agora capaz de extrair e classificar entidades nomeadas a partir de texto não estruturado. Este processo é designado por reconhecimento de entidades nomeadas (NER) e envolve a localização e classificação de categorias como nomes de pessoas, instituições, localizações geográficas, entre outras. Estas entidades desempenham um papel importante na ordenação e recuperação de dados. A partir daqui, podem ser extraídas frases-chave, parágrafos e resumos do corpus.

Criação de frases incorporadas utilizando o Infersent

O Infersent, um método supervisionado de incorporação de frases concebido pelo Facebook que incorpora frases completas no espaço vetorial, é utilizado para criar vectores que serão introduzidos na base de dados Milvus. O Infersent foi treinado utilizando o corpus Stanford Natural Language Inference (SNLI), que contém 570 mil pares de frases que foram escritas e etiquetadas por humanos. Mais informações sobre o funcionamento do Infersent podem ser encontradas aqui.

Armazenamento e consulta de vectores com o Milvus

O Milvus é um motor de pesquisa de similaridades de código aberto que suporta a adição, eliminação, atualização e pesquisa quase em tempo real de embeddings numa escala de triliões de bytes. Para melhorar o desempenho da consulta, o Milvus permite que um tipo de índice seja especificado para cada campo de vetor. O assistente inteligente WPS Office utiliza o índice IVF_FLAT, o tipo de índice mais básico de Ficheiro Invertido (IVF), em que "flat" significa que os vectores são armazenados sem compressão ou quantização. O agrupamento é baseado no IndexFlat2, que utiliza a pesquisa exacta para a distância L2.

Embora o IVF_FLAT tenha uma taxa de recuperação de consulta de 100%, a sua falta de compressão resulta em velocidades de consulta comparativamente lentas. A função de particionamento do Milvus é utilizada para dividir os dados em várias partes do armazenamento físico com base em regras predefinidas, tornando as consultas mais rápidas e mais exactas. Quando os vectores são adicionados ao Milvus, as etiquetas especificam a que partição os dados devem ser adicionados. As consultas dos dados vectoriais utilizam etiquetas para especificar em que partição a consulta deve ser executada. Os dados podem ainda ser divididos em segmentos dentro de cada partição para melhorar ainda mais a velocidade.

O assistente de escrita inteligente também utiliza clusters Kubernetes, permitindo que os contentores de aplicações sejam executados em várias máquinas e ambientes, bem como MySQL para gestão de metadados.

A IA não está a substituir os escritores, está a ajudá-los a escrever

O assistente de escrita da Kingsoft para o WPS Office conta com o Milvus para gerir e consultar uma base de dados com mais de 2 milhões de documentos. O sistema é altamente flexível, capaz de efetuar pesquisas quase em tempo real em conjuntos de dados à escala de um bilião. As consultas são concluídas em 0,2 segundos, em média, o que significa que podem ser gerados documentos inteiros quase instantaneamente utilizando apenas um título ou algumas palavras-chave. Embora a IA não esteja a substituir os escritores profissionais, a tecnologia que existe atualmente é capaz de aumentar o processo de escrita de formas novas e interessantes. O futuro é desconhecido, mas, pelo menos, os escritores podem esperar métodos mais produtivos e, para alguns, menos difíceis de "pôr a caneta no papel".

As seguintes fontes foram utilizadas para este artigo:

Leia outras histórias de utilizadores para saber mais sobre como fazer coisas com o Milvus.

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    Continue Lendo