Pesquisando banco de dados de nomes de entidades (faculdades, cidades, personalidades, países…)

StackOverflow https://stackoverflow.com/questions/1535402

Pergunta

Para um projeto de pesquisa de aplicativos corporativos no qual eu e outra pessoa estamos trabalhando, pretendemos remover determinado conteúdo da página para manter as mensagens postadas universais (ou seja, não ofensivas e essencialmente anônimas).No momento, queremos pegar uma mensagem que um usuário postou em um quadro de mensagens e remover qualquer tipo de nome, nome de faculdade ou instituição e palavrões (e, se possível mais tarde, gostaríamos de remover nomes comerciais).

Existe algum banco de dados ao qual podemos nos conectar e com o qual podemos executar a limpeza de nossas mensagens para verificar os valores no banco de dados a fim de reconhecê-los?

Foi útil?

Solução

A questão parece implicar um banco de dados online que seria consultado durante o processamento de mensagens.Questões operacionais (confiabilidade de tais serviços, atraso no tempo de resposta, etc.), bem como questões de integridade (necessidade de consultar vários bancos de dados porque nenhum deles cobrirá 100% das necessidades lexicais do projeto) tornam esta abordagem online/em tempo real impraticável.Existem no entanto muitos bancos de dados disponíveis para download e que permitiria que você construísse seu próprio banco de dados local de "palavras importantes".

Um bom lugar para começar pode ser WordNet, onde você provavelmente usaria todos os "instância"palavras como palavras que normalmente precisam ser removidas das mensagens, à medida que você as anonimiza/limpa.(Talvez você também queira manter o "não instância"palavras em uma tabela/lista separada de palavras" com maior probabilidade de estar ok ").Esta lista por si só provavelmente poderia suportar honrosamente uma versão "0.9" do seu aplicativo.

Você eventualmente vai querer estender este banco de dados lexical de "palavrões", no entanto, por exemplo, para incluir todas as siglas de universidades (CMU, UCSD, DU, MIT, UNC e outras), nomes de equipes esportivas (Celtics, Bruins, Bruins, Red Sox...) e dependendo do domínio de suas mensagens, nomes adicionais de figuras públicas (o Wordnet tem vários, como George Bush ou Robert De Niro, mas faltam pessoas menos famosas ou pessoas que ficaram famosas mais recentemente:por exemplo, Barack Obama)

Para complementar o Wordnet, dois tipos distintos de fontes vêm à mente:

  • bancos de dados online tradicionais
  • ontologias e folksonomias

Exemplos do primeiro são "Cidades/Estado por CEP" no USPS.Exemplos deste último são várias “listas” compiladas por acadêmicos, organizações ou vários indivíduos.É impossível fornecer uma lista exaustiva de qualquer um desses tipos de fontes, mas o seguinte deve ajudar:

  • DAML.ORG Catálogo de ontologias
  • Regiões e estados dos EUA exemplo de uma ontologia no formato DAML
  • Projeto de diretório aberto Diretório de código aberto (atenção, fica confuso rapidamente)
  • FonteWatch.org exemplo de uma "lista de listas:pessoal do jornalismo/política"
  • Palavras-chave do mecanismo de pesquisa:"Lista de listas", ou também use três ou quatro das palavras que você esperaria encontrar na lista que procura.

Em casos mais simples, pode-se simplesmente baixar listas e afins, ou também “recortar e colar”.As ontologias serão "sobrecarregadas" com atributos adicionais que você precisará analisar (no futuro você poderá realmente desejar esses atributos e usar as ontologias de uma forma mais tradicional, por enquanto, capturar as entidades lexicais é tudo o que é necessário ).

Esta tarefa de compilação de banco de dados lexical pode parecer assustadora.Mas o Regra 80-20, afirma que 20% das "palavras quentes" representarão 80% das citações nas mensagens e, portanto, com um esforço relativamente pequeno, você deverá ser capaz de produzir um sistema que cubra mais de 90% dos seus casos de uso.

Olhando para o futuro: Além do banco de dados de “palavras quentes”
Existem muitas maneiras de abordar esta tarefa, utilizando diversas técnicas e conceitos de Processamento de linguagem natural (PNL).À medida que seu projeto ganha sofisticação, você pode querer aprender sobre alguns desses conceitos e possivelmente implementá-los.Por exemplo, um simples etiquetador de PDV vem à mente, pois pode ajudar [em parte] a discriminar entre, digamos, vários usos do token "SCREW" à medida que seu aplicativo descarta palavras ofensivas.("O conselho de administração quer parafuso os alunos" vs.“A placa deverá ser fixada com no mínimo 4 parafusos por jarda".

Antes mesmo de precisar dessas técnicas formais de PNL, você pode usar algumas regras baseadas em padrões para lidar com casos comuns associados ao(s) domínio(s) em relação ao tipo de mensagens que o projeto visa.Por exemplo, você pode considerar o seguinte:
- (palavra) Universidade Estadual
- Senador (Word_Starting_with_Capital letter)
- Palavras que misturam letras e números (muitas vezes são usadas para escrever nomes incorretamente e contornar o tipo de filtros que seus projetos desejam implementar)

Outra ferramenta que pode ser útil, principalmente no início, será um sistema que colete informações estatísticas sobre o corpus da mensagem:frequência das palavras, palavras mais comuns, bigramas mais comuns (duas palavras consecutivas) etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top