que técnicas de machine / deep learning / nlp são usadas para classificar determinadas palavras como nome, número de celular, endereço, email, estado, município, cidade etc.

9

Estou tentando gerar um modelo inteligente que pode digitalizar um conjunto de palavras ou seqüências de caracteres e classificá-los como nomes, números de celular, endereços, cidades, estados, países e outras entidades usando aprendizado de máquina ou aprendizado profundo.

Eu tinha procurado abordagens, mas infelizmente não encontrei nenhuma abordagem a seguir. Eu tentei com o modelo de saco de palavras e incorporação de palavras de luvas para prever se uma string é nome ou cidade etc.

Mas não obtive sucesso com o modelo de saco de palavras e com o GloVe existem muitos nomes que não são abordados no exemplo de incorporação: - lauren está presente no Glove e laurena não está

Eu encontrei este post aqui , que tinha uma resposta razoável, mas não consegui abordar o problema usado para resolver esse problema além do fato de que a PNL e o SVM foram usados ​​para resolvê-lo.

Todas as sugestões são apreciadas

Obrigado e cumprimentos, Sai Charan Adurthi.

Sai Charan Adurthi
fonte
4
Não é uma resposta, mas isso é chamado de reconhecimento de entidade nomeada. A pesquisa com esses termos pode gerar informações úteis.
kbrose
Obrigado @kbrose, analisará as técnicas de reconhecimento de entidades nomeadas.
Sai Charan Adurthi 16/03/19

Respostas:

1

Você pode aplicar gramas de caracteres. Intuitivamente, pode haver uma enorme diferença no conjunto de caracteres entre um número de telefone e um endereço de email. e depois passe o vetor de grama de caracteres para o SVM para fazer uma previsão. Você pode implementar isso usando o sklearn usando os extratores de recursos abaixo.

  1. TfIdfVectorizer (analisador = 'caractere')

  2. CountVectorizer (analisador = 'caractere')

Validação cruzada no intervalo de ngram e nas variáveis ​​de folga do SVM para ajustar seu modelo.

karthikbharadwaj
fonte
Obrigado! @karthikbharadwaj. Eu estou trabalhando atualmente usando R, vai olhar para sklearn e ver se funciona ..
Sai Charan Adurthi
@Sai Charan Adurthi - Por favor, vote se você achou útil e aceite as respostas se você achou útil.
precisa saber é o seguinte
certeza, vai certamente fazê-lo uma vez que eu verificá-lo em Python ...
Sai Charan Adurthi
0

A aplicação de rótulos categóricos comuns a palavras geralmente é chamada de reconhecimento de entidade nomeada (NER) .

O NER pode ser feito por regras estáticas (por exemplo, expressões regulares) ou regras aprendidas (por exemplo, árvores de decisão). Essas regras geralmente são quebradiças e não generalizam. Os campos aleatórios condicionais (CRF) costumam ser uma solução melhor porque são capazes de modelar os estados latentes dos idiomas. O desempenho atual de ponta no NER é feito com uma combinação de modelos de Aprendizado Profundo .

O Stanford Named Entity Recognizer e spaCy são pacotes para executar o NER.

Brian Spiering
fonte
Obrigado Dr. Brain! .. mas, eu quero construir um modelo que use apenas uma única palavra ou uma palavra de strings e preveja se é um nome, endereço, etc. Eu tentei o NER usando o openNLP do Apache em R. Não consegui iniciar. Naquele parágrafo de palavras necessário para usar a gramática e partes do discurso, quero ter um modelo que possa até entender coisas como códigos postais, códigos postais e códigos de estado. Estou indo com a abordagem correta aqui, Dr. Brain?
Sai Charan Adurthi
Você não deve pensar em ter um único modelo geral. Você deve construir um modelo para cada tipo de elemento. Por exemplo, a maioria dos códigos postais pode ser encontrada com uma expressão regular. Além disso, o contexto é o rei, um modelo com uma única palavra fará um mau trabalho na previsão de NER. É melhor ter grandes seções de texto.
Brian Spiering
Olá, @Dr. Cérebro, eu havia experimentado o pacote text2vec para R, havia usado os embates com o Glove Word para verificar quão semelhantes são as palavras. Ex: tenho dados de trem de 1000 linhas com categorias como nome, cidade, estado, país etc., dados de teste com valores diferentes. Usei o text2vec para construir o TCM para os dois trens, testar os valores dos dados, ajustar o modelo das luvas aos TCMs e verificar a semelhança de cada palavra nos dados de teste para treinar os dados por categoria usando a função de similaridade do cosseno. Mas não consegui obter boa precisão e sua variável sempre que gero modelos de luvas e verifico a similaridade.
Sai Charan Adurthi
Obrigado, Dr.Brian, funciona se eu usar frases para obter o contexto e usar NERs. Mas quero fazer isso usando apenas palavras e ver se algum modelo pode aprender padrões com as palavras.
Sai Charan Adurthi
Oi Brain, eu tinha usado o Apache Open NLP para usar modelos NER pré-treinados. E sim, funciona com palavras também.
Sai Charan Adurthi 27/08/19