Viglet Turing ES (https://openviglet.github.io/turing/) é uma solução de código aberto (https://github.com/openturing), que tem como principais características a navegação semântica e o chat bot. Você pode escolher entre vários PNL para enriquecer os dados. Todo o conteúdo é indexado no Solr como mecanismo de busca.
A documentação técnica sobre Turing ES está disponível em https://openviglet.github.io/docs/turing/.
Para executar o Turing ES, basta executar as seguintes linhas:
# Turing Appmvn -Dmaven.repo.local=D:repo spring-boot:run -pl turing-app -Dskip.npm# Nova UI Turing ES usando Angular 18 e Primer CSS.cd turing-ui## Loginng serve bem-vindo## Consoleng serve console## Searchng serve sn## Chat botng serve converse
Você pode iniciar o Turing ES usando MariaDB, Solr e Nginx.
docker-compose up
Console de administração: http://localhost:2700. (administrador/administrador)
Amostra de navegação semântica: http://localhost:2700/sn/Sample.
Figura 1. Arquitetura Turing ES
Turing oferece suporte aos seguintes provedores:
Apache OpenNLP é um kit de ferramentas baseado em aprendizado de máquina para o processamento de texto em linguagem natural.
Site: https://opennlp.apache.org/
Ele transforma dados em insights para uma melhor tomada de decisões e gerenciamento de informações, ao mesmo tempo que libera recursos e tempo.
Site: https://www.opentext.com/
CoreNLP é o seu balcão único para processamento de linguagem natural em Java! CoreNLP permite que os usuários derivem anotações linguísticas para texto, incluindo tokens e limites de frases, classes gramaticais, entidades nomeadas, valores numéricos e de tempo, análises de dependência e constituintes, correferência, sentimento, atribuições de citações e relações. CoreNLP atualmente oferece suporte a 6 idiomas: árabe, chinês, inglês, francês, alemão e espanhol.
Site: https://stanfordnlp.github.io/CoreNLP/,
É uma biblioteca gratuita de código aberto para processamento de linguagem natural em Python. Possui NER, marcação POS, análise de dependência, vetores de palavras e muito mais.
Site: https://spacy.io
Polyglot é um pipeline de linguagem natural que oferece suporte a aplicativos multilíngues massivos.
Site: https://polyglot.readthedocs.io
Ele pode ler PDFs e documentos e convertê-los em texto simples, além de usar OCR para detectar texto em imagens e imagens em documentos.
A Navegação Semântica usa Conectores para indexar o conteúdo de muitas fontes.
Plugin para Apache Nutch para indexar conteúdo usando crawler.
Saiba mais em https://docs.viglet.com/turing/connectors/#nutch
Linha de comando que usa o mesmo conceito do sqoop (https://sqoop.apache.org/), para criar consultas complexas e mapear atributos para indexar com base no resultado.
Saiba mais em https://docs.viglet.com/turing/connectors/#database
Linha de comando para indexar arquivos, extraindo texto de arquivos como Word, Excel, PDF, inclusive imagens, através de OCR.
Saiba mais em https://docs.viglet.com/turing/connectors/#file-system
OpenText WEM Listener para publicar conteúdo no Viglet Turing.
Saiba mais em https://docs.viglet.com/turing/connectors/#wem
Plugin WordPress que permite indexar postagens.
Saiba mais em https://docs.viglet.com/turing/connectors/#wordpress
Com a PNL é possível detectar entidades como:
Pessoas
Lugares
Organizações
Dinheiro
Tempo
Percentagem
Defina atributos que serão utilizados como filtros para sua navegação, consolidando todo o conteúdo em seu display
Através de atributos definidos nos conteúdos, é possível utilizá-los para restringir sua exibição com base no perfil do usuário.
A API Java (https://github.com/openturing/turing-java-sdk) facilita o uso e o acesso ao Viglet Turing ES, sem a necessidade de conteúdo de pesquisa do consumidor com consultas complexas.
Comunique-se com seu cliente e elabore intenções complexas, obtenha relatórios e evolua progressivamente sua interação.
Seus componentes:
Lida com conversas com seus usuários finais. É um módulo de processamento de linguagem natural que compreende as nuances da linguagem humana
Uma intenção categoriza a intenção do usuário final de mudar de conversa. Para cada agente, você define diversas intenções, onde suas intenções combinadas podem lidar com uma conversa completa.
O campo de ação é um simples campo de conveniência que auxilia na execução da lógica do serviço.
Cada parâmetro de intenção possui um tipo, chamado tipo de entidade, que determina exatamente como os dados em uma expressão do usuário final são extraídos.
Define e corrige intenções.
Mostra o histórico de conversas e relatórios.
Turing ES detecta entidades de documentos do tipo OpenText usando OCR e NLP, gerando tipo XML para mostrar as entidades no documento.
Turing ES tem muitos componentes: Search Engine, NLP, Converse (Chat bot), Navegação Semântica
Ao acessar o Turing ES, aparecerá uma página de login. Por padrão o login/senha é admin
/ admin
Figura 2. Página de login
O mecanismo de pesquisa é usado pela Turing para armazenar e recuperar dados de Converse (bot de bate-papo) e sites de navegação semântica.
Figura 3. Página do mecanismo de pesquisa
É possível criar ou editar um Motor de Busca com os seguintes atributos:
Atributo | Descrição |
---|---|
Nome | Nome do mecanismo de pesquisa |
Descrição | Descrição do mecanismo de pesquisa |
Fornecedor | Selecione o fornecedor do mecanismo de pesquisa. Por enquanto, ele suporta apenas Solr. |
Hospedar | Nome do host onde o serviço Search Engine está instalado |
Porta | Porto de serviço de mecanismo de pesquisa |
Linguagem | Idioma do serviço do mecanismo de pesquisa. |
Habilitado | Se o mecanismo de pesquisa estiver ativado. |
Figura 4. Página de navegação semântica
O Detalhe do Site de Navegação Semântica contém os seguintes atributos:
Atributo | Descrição |
---|---|
Nome | Nome do site de navegação semântica. |
Descrição | Descrição do site de navegação semântica. |
Mecanismo de pesquisa | Selecione o mecanismo de pesquisa que foi criado na seção mecanismo de pesquisa. O Site de Navegação Semântica utilizará este Motor de Busca para armazenar e recuperar dados. |
PNL | Selecione a PNL que foi criada na seção PNL. O site de navegação semântica usará esta PNL para detectar entidades durante a indexação. |
Dicionário de sinônimos | Se você usar o dicionário de sinônimos. |
Linguagem | Linguagem do Site de Navegação Semântica. |
Essencial | Nome do núcleo do Search Engine onde serão armazenados e recuperados os dados. |
A aba Campos contém uma tabela com as seguintes colunas: .Navegação Semântica Colunas dos Campos do Site
Nome da coluna | Descrição |
---|---|
Tipo | Tipo de campo. Pode ser: - NER (Named Entity Recognition) usado pela PNL. - Motor de busca utilizado pelo Solr. |
Campo | Nome do Campo. |
Habilitado | Se o campo está habilitado ou não. |
MLT | Se este campo for usado no MLT. |
Facetas | Para usar este campo como uma faceta (filtro) |
Destaque | Se este campo mostrará linhas destacadas. |
PNL | Se este campo será processado pelo PNL para detectar Entidades (NER) como Pessoas, Organização e Lugar. |
Ao clicar em Campo aparecerá uma nova página com Detalhes do Campo com os seguintes atributos:
Atributo | Descrição |
---|---|
Nome | Nome do Campo |
Descrição | Descrição do Campo |
Tipo | Tipo de campo. Pode ser: |
Multivalorado | Se é uma matriz |
Nome da faceta | Nome do rótulo da faceta (filtro) na página de pesquisa. |
Faceta | Para usar este campo como uma faceta (filtro) |
Destaque | Se este campo mostrará linhas destacadas. |
MLT | Se este campo for usado no MLT. |
Habilitado | Se o campo estiver habilitado. |
Obrigatório | Se o campo for obrigatório. |
Valor padrão | Caso o conteúdo seja indexado sem esses campos, esse é o valor padrão. |
PNL | Se este campo será processado pelo PNL para detectar Entidades (NER) como Pessoas, Organização e Lugar. |
Contém os seguintes atributos:
Seção | Atributo | Descrição |
---|---|---|
Aparência | Número de itens por página | Número de itens que aparecerão na pesquisa. |
Faceta | Faceta habilitada? | Se for mostrar Facet (Filtros) na pesquisa. |
Número de itens por faceta | Número de itens que aparecerão em cada Faceta (Filtro). | |
Destaque | Destaque ativado? | Defina se deseja mostrar linhas destacadas. |
Pré-etiqueta | Tag HTML que será utilizada no início do semestre. Por exemplo: | |
Postar etiqueta | Tag HTML que será utilizada no final do semestre. Por exemplo: | |
MLT | Mais como este ativado? | Definir se deseja mostrar MLT |
Campos padrão | Título | Campo que será utilizado como título que está definido no esquema.xml do Solr |
Texto | Campo que será utilizado como título que está definido no esquema.xml do Solr | |
Descrição | Campo que será utilizado como descrição que está definido no esquema.xml do Solr | |
Data | Campo que será utilizado como data que está definido no esquema.xml do Solr | |
Imagem | Campo que será utilizado como URL da imagem que está definido no Solr schema.xml | |
URL | Campo que será utilizado como URL que está definido no esquema.xml do Solr |
Em Turing ES Console
> Semantic Navigation
>
, clique no botão Configure
e clique no botão Search Page
.
Isso abrirá uma página de pesquisa que usa o padrão:
OBTER http://localhost:2700/sn/
Esta página solicita a API Turing Rest via AJAX. Por exemplo, para retornar todos os resultados do site de navegação semântica no formato JSON:
OBTER http://localhost:2700/api/sn//search?p=1&q=*&sort=relevance
Atributo | Obrigatório/Opcional | Descrição | Exemplo |
---|---|---|---|
q | Obrigatório | Consulta de pesquisa. | q=foo |
p | Obrigatório | Número da página, a primeira página é 1. | p = 1 |
organizar | Obrigatório | Ordenar valores: | classificação=relevância |
perguntas frequentes[] | Opcional | Campo de consulta. Filtre por campo, usando o seguinte padrão: FIELD : VALUE . | fq[]=título:barra |
tr[] | Opcional | Regra de segmentação. Restringir a pesquisa com base em: FIELD : VALUE . | tr[]=departamento:foobar |
linhas | Opcional | Número de linhas que a consulta retornará. | linhas = 10 |
Na Intranet da Seguradora utiliza OpenText WEM e OpenText Portal integrado ao Módulo Dynamic Portal, foi criada uma busca consolidada no Viglet Turing ES, utilizando os conectores: WEM, Banco de Dados com Sistema de Arquivos. Desta forma foi possível exibir todos os conteúdos e arquivos da intranet de busca, com regras de direcionamento, permitindo apenas exibir conteúdos que o usuário tenha permissão. O Portal OpenText acessa a API Java do Viglet Turing ES, portanto não foi necessária a criação de consultas complexas para retornar os resultados.
Foi criado um conjunto de API Rest para disponibilizar todo o conteúdo de Empresas Governamentais aos parceiros. Todos esses conteúdos estão em OpenText WEM e o conector WEM foi utilizado para indexar o conteúdo no Viglet Turing ES. Foi criada uma aplicação Spring Boot com o conjunto de APIs Rest que consome conteúdo Turing ES por meio da API Java Viglet Turing ES.
O site da Universidade Brasileira foi desenvolvido utilizando Viglet Shio CMS (https://viglet.com/shio), e todos os conteúdos são indexados no Viglet Turing ES automaticamente. Essa configuração foi feita na modelagem de conteúdo e o desenvolvimento do template de busca foi feito no Viglet Shio CMS.