Mineração de texto no SQL Server

Mineração de texto no SQL Server

Mineração de texto no SQL Server


Neste artigo, discutiremos como a Mineração de Texto pode ser feita no SQL Server. Para mineração de texto no SQL Server, nós
    usará o Integration Services (SSIS) e o SQL Server Analysis Services (SSAS). Este é o último artigo do
    Série de mineração de dados durante a qual discutimos Naïve Bayes, Árvores de decisão, Séries temporais, Regras de associação, Clustering, Regressão linear, Rede Neural,
    Agrupamento de sequências. Além disso, discutimos a maneira de medir a precisão dos dados
    modelos de mineração. No último artigo, discutimos como os modelos podem ser extraídos da consulta Dados.

Por que a mineração de texto é um desafio

Durante as discussões anteriores, discutimos principalmente a modelagem de mineração de dados em dados de relações estruturadas. Contudo,
    Como não há estrutura para os dados de texto, existem muitos desafios na modelagem dos dados de texto.
    Além dos dados de texto não serem estruturados, os dados de texto terão um grande volume de dados. Devido aos diferentes estilos de
    Ao escrever, pode ser difícil analisar dados.

Neste artigo, analisamos como superar esses desafios ao executar a Mineração de Texto no SQL Server.

Conjunto de dados

Ao contrário dos artigos anteriores em que usamos predominantemente o AdventureworksDW como nosso banco de dados de exemplo, neste artigo,
    estaremos usando mais cenários do mundo real. Usaremos o conjunto de dados de resenhas de filmes em https://www.kaggle.com/nltkdata/movie-review. Nesse conjunto de dados, existem 1.000 cada
    filmes com classificação positiva e negativa. Os filmes com classificação positiva estão em uma pasta chamada pos enquanto que
    filmes com classificação negativa estão em uma pasta chamada neg. Cada revisão está em um arquivo de texto, como mostrado na captura de tela abaixo.

Amostra de um arquivo de revisão do Moive

Cada revisão é salva em um arquivo de texto e isso significa que há um total de 2.000 arquivos, 1.000 para revisões positivas
    e 1000 para críticas negativas.

Nossa primeira tarefa é extrair essas resenhas de filmes da tabela a seguir, denominada Cinema.

Estrutura da tabela da tabela Cinema.

Na tabela acima, FileID está configurado para a coluna de incremento automático e
Nome do arquivo é usado para salvar o nome do arquivo real. o conteúdo coluna será usada para
    armazenar o conteúdo da revisão, enquanto a categoria de revisão, negativa ou positiva, é armazenada no Classe coluna.

Para extrair todos os 2.000 arquivos para a tabela Cinema, o seguinte SSIS é usado.

Leia Também  Design de banco de dados e verificação lógica para otimização de consultas SQL

Mineração de texto no SQL Server: pacote SSIS para extrair dados de revisão para a tabela do SQL Server.

A tarefa Executar SQL é usada para truncar a tabela Cinema para facilitar várias execuções. Para cada contêiner de loop é
    usado para percorrer a pasta e obter o nome do arquivo. A seguir, é apresentada a tarefa de fluxo de dados para gravar o conteúdo de um arquivo
    para a mesa.

Pacote SSIS para extrair dados de revisão para a tabela do SQL Server.

Nesta coluna derivada, é usado para obter a classe de revisão, positiva ou negativa. Como o caminho completo dos arquivos é
D: FilmReviews review_polarity txt_sentoken neg cv000_29416.txt no formato, o último nome da pasta é
    derivado usando o seguinte código SSIS para obter a classe

REVERSE (SUBSTRING (REVERSE (@[User::FN]), FINDSTRING (REVERSE (@[User::FN]), “\”, 1) + 1,3))

@[User::FN] é a variável para o nome do arquivo.

A captura de tela a seguir mostra o conjunto de dados de amostra para a tabela de cinema depois que os dados são extraídos do texto
    arquivos.

Conjunto de dados de amostra para a tabela de cinema depois que os dados são extraídos dos arquivos de texto.

Extração de termos

A próxima operação é Extração de termos para a qual usaremos o controle de transformação de Extração de termos no SSIS. No
    Nesse controle, há três configurações importantes, Exclusão de extração de termos e Avançado. Discussão detalhada
    sobre isso pode ser encontrado em Term Extraction Transformation no artigo SSIS.

Para a extração de termos, usaremos a tabela Cinema como fonte de dados, conforme apresentado na captura de tela abaixo.

Mineração de texto no SQL Server: configuração de extração de termos no Editor de extração de termos.

A seguir está a configuração da lista de exclusão. Palavras como, a, a e, não terão valor. Portanto, essas palavras
    deve ser eliminado para obter melhores resultados e melhor desempenho.

Configuração de exclusão

A tabela de exclusão contém uma única coluna que é ExclusionTerm. O próximo passo é configurar as opções avançadas, como mostrado abaixo.

Configuração avançada na extração de termos.

Usamos TFIDF, Frequência de termo inversa de frequência de documento para o tipo de pontuação. TFIDF de um termo selecionado t = (frequência de t) * log ((número de linhas na entrada) / (número de linhas com t)) .

A seguir, é apresentada a saída da transformação acima, armazenada em uma tabela denominada TermScore.

Tabela de dados para TermScore

A partir do conjunto de dados acima, podemos identificar quais são os termos mais importantes, pois o alto valor de uma pontuação significa que ela tem maior importância.

Pesquisa de termos

Depois de encontrar os termos de todo o conjunto de dados, a seguir é descobrir como cada documento tem cada termo. Para isso, nós
    utilizará a transformação de pesquisa de termos no SSIS.

Transformação de pesquisa de texto no SSIS

O TermScore é usado como uma tabela de referência, conforme apresentado na captura de tela acima.

Transformação de pesquisa de texto no SSIS

Em seguida, faremos uma pesquisa de termos no conjunto de dados inicial do cinema. Isso fornecerá o número de ocorrências
    para termos em relação a cada documento que será salvo nas tabelas DocumentTerms, conforme mostrado na captura de tela abaixo.

Leia Também  Como implantar cubos SSAS

Conjunto de dados de amostra para a tabela DocumentTerms

Matriz de incidente de documento a termo

Matriz de incidente de documento a termo é uma matriz básica usada para modelagem em Mineração de Texto. Mineração de texto no SQL Server
    não fornece opção pronta para criar uma matriz de incidentes de documentos a termo.

A captura de tela a seguir mostra a matriz de incidentes de documentos a termo para cada arquivo.

Conjunto de dados de amostra para matriz de incidentes de documentos a termo

Por exemplo, o FileID 1 possui 3 termos de filme e 1 termo para filme e o FileID 2 possui 5 termos de filme e 8 termos de
    personagem.

A matriz acima é criada a partir do seguinte procedimento armazenado.

Para o procedimento acima, 250 termos de pontuações mais altas são usados ​​para a Matriz de Incidentes de Documentos de Termo. Agora temos
    preparou o conjunto de dados relevante e pronto para criar os modelos de dados para Mineração de Texto no SQL Server.

Modelo de Mineração de Associação

Vejamos quais são os termos comuns usados. Para isso, usaremos a regra de mineração de associação. o
    A exibição da fonte de dados a seguir é usada para a mineração da regra de associação.

Preparando o conjunto de dados para Mineração de Texto no SQL Server para técnica de Associação.

Como já existe uma chave estrangeira definida entre a tabela Cinema e DocumentTerms, não há necessidade de definir o
    relacionamento na modelagem de SSAS.

Nesse conjunto de dados, o Cinema é selecionado como a tabela de casos, enquanto a tabela documentterms é selecionada como a tabela aninhada
    mesa.

Tabelas Chossing Case e Aninhadas

A seguir, estão as configurações das colunas Chave, Entrada e Previsão.

Configuração das colunas Chave, Entrada e Previsão

Vejamos os resultados da regra associada após o processamento do modelo de mineração de dados.

Mineração de regra de associação na mineração de texto no SQL Server

A captura de tela acima mostra que, quando a vida útil e o caractere do texto existem, a classe é positiva, com uma probabilidade de 63,5%.

Mineração de regra de associação na mineração de texto

O diagrama acima mostra o diagrama de relacionamento para a classe positiva.

Classificação Modelo de Mineração

Para o modelo de classificação, examinaremos a tabela TermDocumentIncidenceMatrix. Nesta modelagem,
    variável de classificação é classe, pos ou neg. Como está na tabela Cinema, precisamos criar uma exibição. Por esta
    modelo de classificação, usaremos uma visualização combinada com duas tabelas TermDocumentIncidenceMatrix e
    Cinema, como mostrado no script abaixo.

Essa visualização é adicionada à visualização da fonte de dados.

Visualização Vw_Cinema.

Como fizemos na medição de precisão, criaremos quatro modelos para classificação: Árvores de Decisão, Naive Bayes,
    Rede neural e regressão logística, como mostrado abaixo. Em todos esses modelos, a coluna de classificação ou previsão
    é a classe

Implementação de modelos de Árvores de Decisão, Naive Bayes, Rede Neural e Regressão Logística.

Observe que todos os termos terão um tipo de dados contínuo e melhor se pudermos convertê-los em um tipo de dados discreto.

Vejamos alguns modelos de classificação e o seguinte é o modelo para árvores de decisão.

Modelo de árvore de decisão para mineração de texto no SQL Server.

Vejamos as precisões desses modelos a partir da matriz de confusão, conforme apresentado abaixo.

Matriz de confusão para modelos selecionados.

Vamos calcular a precisão de cada modelo.

Algoritmo

Precisão

Árvores de decisão

56,00%

Base Naïve

57,83%

Rede neural

60,67%

Regressão logística

61,33%

Para esse conjunto de dados, a regressão logística é um algoritmo melhor.

Conclusão

Neste último artigo da série, discutimos a mineração de texto no SQL Server. Usamos as ferramentas SSIS e SSAS no
    Família Microsoft BI. O SSIS é usado para extrair termos e realizar pesquisas de termos. No SSAS, usamos técnicas de associação e classificação para realizar a mineração de texto.

Índice

Dinesh Asanka
Últimas mensagens de Dinesh Asanka (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br