Pergunta

Estou trabalhando em um projeto no momento em que preciso escolher as frases mais comuns em um enorme corpo de texto. Por exemplo, digamos que temos três frases como as seguintes:

  • O cachorro pulou sobre a mulher.
  • O cachorro pulou No carro.
  • O cachorro pulou subindo as escadas.

Do exemplo acima, eu gostaria de extrair "O cachorro pulou"Como é a frase mais comum no texto. No começo, pensei:" Oh, vamos usar um gráfico direcionado [com nós repetidos] ":

Gráfico direcionado http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png

EDITAR: Desculpas, cometi um erro ao fazer este diagrama "sobre", "em" e "up", todos deveriam vincular a "o".

Eu ia manter uma contagem de quantas vezes ocorreu uma palavra em cada objeto de nó ("o" seria 6; "cachorro" e "pular", 3; etc.), mas apesar de muitos outros problemas, o principal surgiu quando surgiu quando surgiram Adicionamos mais alguns exemplos como (por favor, ignore a gramática ruim :-)):

  • Cachorro pulou para cima e para baixo.
  • O cachorro pulou como se nenhum cachorro tivesse pulado antes.
  • O cachorro pulou alegremente.

Agora temos um problema desde "cão"Começaria um novo nó raiz (no mesmo nível que" o ") e não identificaríamos"cachorro pulou"Como agora sendo a frase mais comum. Então agora estou pensando que talvez eu possa usar um gráfico não direcionado para mapear as relações entre todas as palavras e, eventualmente, escolher as frases comuns, mas não tenho certeza de como isso vai funcionar, À medida que você perde o relacionamento importante da ordem entre as palavras.

Portanto, alguém tem idéias gerais sobre como identificar frases comuns em um grande corpo de texto e qual estrutura de dados eu usaria.

Obrigado, Ben

Foi útil?

Solução

Confira esta pergunta relacionada: Quais técnicas/ferramentas existem para descobrir frases comuns em pedaços de texto? Também relacionado a o mais longo problema de substring de substring.

Eu já publiquei isso antes, mas eu uso R Para todas as minhas tarefas de mineração de dados e é adequado para esse tipo de análise. Em particular, veja o tm pacote. Aqui estão alguns links relevantes:

De maneira mais geral, há um grande número de pacotes de mineração de texto na visão de processamento de linguagem natural em cran.

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