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.
fonte
Respostas:
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.
TfIdfVectorizer (analisador = 'caractere')
CountVectorizer (analisador = 'caractere')
Validação cruzada no intervalo de ngram e nas variáveis de folga do SVM para ajustar seu modelo.
fonte
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.
fonte