Estou com um verdadeiro desafio: meu programa recebe um txt e uma vocabulário onde cada termo deste é comparado para ver se encontra algo no txt, caso afirmativo, o termo no texto deve ser “marcado”:
gosto muito de java
gosto muito de java
** a primeira vez, tentei usando o StringTokenizer, mas não foi legal pois eu perderia a formatação do texto original e termos compostos tb (Grupo de Java)
** na segunda vez melhorei usando o contains(), que no caso afirmativo, eu guardava o inicio com indexOf() e tamanho com length() para depois usar no replace().
aí…veio outro problema:
gosto muito de java
quando ele for fazer um contains(‘gosto’) e depois as trocas, ele vai acabar fazendo uma caquinha…
Como resolver este dilema, existe alguma solução no Java Core? Ou alguma lib?
Não sei o quão complexo deve ser o seu interpretador. Uma alternativa seria usar o ANTLR para identificar tokens numa gramática mais complexa.
Se você tivesse lido a documentação da classe StringTokenizer, vai ver que o uso dela é desaconselhada desde o Java 5, quando o método split foi adicionado. Montando uma expressão regular suficientemente complexa, talvez seja possível quebrar o texto de uma forma mais adequada para você, usando o split.
Montar o texto depois é outra tarefa. Talvez seja mais fácil faze-lo em uma segunda etapa, depois de todos os tokens identificados.
ccefetpb
Bem estou mechendo um pouco com PLN e encontrei problemas parecidos com o seu , n sei se seu projeto e muito complicado ou se vale a pena , mas existe um projete da Apache chamado Lucene que pode te ajudar .É em pratos limpos , um lib que auxilia na busca de dados de uma fonte de dados ( txt , xml e etc) não me aprofundei muito e n sei se existe o que vc esta querendo fazer mas vale a pena dar uma olhada.
C
celsowm
Valew pelas dicas galera !!! VinyGodoy vou tentar montar o texto numa segunda etapa, Ccefetpb Um amigo do mestrado tb me recomendou o lucene, estou lendo o “lucene in action” para entendê-lo melhor.
Abraços,
Celso
ccefetpb
Bem …
ao que parece eu e vc estamos fazendo algo bem parecido .
Tbm estou lendo o Lucene in Action 2nd Edition - estou atrasado inclusive - se vc quiser ( e eu me interesso ) poderiamos trocar msgs pelo gmail ou msn sobre como fazer isso ?
Estou me formando esse ano e minha ideia tem a ver com essa analise de textos e inferencia .