Boa Noite
Estou desenvolvendo um programa e dentro dele
preciso ler arquivos txt.
Porém ele usa outro programa para gerar sintagmas nominais
e o programa gera o txt da seguinte forma:
Etiquetando o arquivo Ogma/teste1.txt
Escrevendo no arquivo temp$.txt
N£mero de palavras analisadas 39
Extraindo sintagmas do arquivo temp$.txt
a vida
outras pessoas
os nossos objetivos e muitas vezes
o sucesso
a nossa vida
nossos objetivos e muitas vezes um simples gesto
eu preciso ler o arquivo somente apartir de “a vida” e parar em " simples gesto"
Alguma sugestão ??
abaixo o código
[code]
public static void abrirArquivo() throws FileNotFoundException
{
String linha = null;
try {
FileReader reader = new FileReader("Ogma/sintagmas.txt");
BufferedReader ler = new BufferedReader(reader);
while ((linha = ler.readLine()) != null) {
StringTokenizer st = new StringTokenizer(linha, ";" );
String dados = st.nextToken();
System.out.print(dados);
System.out.println("");
}
ler.close();
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}[/code]
Obrigado
Talvez expressões regulares resolvam o seu problema. A grosso modo, você poderia fazer algo assim:
vamos supor que eu quero verificar uma string, à procura da palavra “casa”. Eu poderia ler caractere por caractere e, a partir da letra inicial (c, neste caso), eu realizaria alguns testes, para saber se realmente se trata desta palavra.
String frase = "Maria e João têm uma casa amarela";
for (int i = 0; i < frase.length(); i++){
if (frase[i] = 'c')
if (frase[i + 1] = 'a')
if (frase[i + 2] = 's')
if (frase[i + 3] = 'a')
if (frase[i + 4] = ' ')
System.out.printf("A palavra casa começa na posição %d e termina na posicao %d\n", i, i + 4);
É claro que esse código é apenas uma ilustração, mas este é um dos critérios que podem ser usados.
Neste caso não daria certo vou explicar direito o software.
O Software vai utilizar lógica Fuzzy para comparar a resposta discursiva
de um professor e a de um aluno e julgar se a resposta do aluno esta certa
e a porcentagem.
Para isso utilizei a extração de sintagmas nominais
utilizei o programa OGMA em C e executo ele pelo java
através de linha de comando.
Porém esse software gera aqueles outros textos
fora os sintagmas nominais ou seja
a cada questões discursiva os sintagmas nominais
são diferentes.
Ficou mais claro ?
Ao meu ver regex é a melhor solução, da uma olhada aqui para ver um conteúdo mais completo: http://docs.oracle.com/javase/tutorial/essential/regex/
Se quiser algo mais prático para iniciar (se é que não conhece regex), esse link é legal: http://stackoverflow.com/questions/677038/how-to-use-regular-expressions-to-parse-html-in-java
[quote=ricardocdc]Neste caso não daria certo vou explicar direito o software.
O Software vai utilizar lógica Fuzzy para comparar a resposta discursiva
de um professor e a de um aluno e julgar se a resposta do aluno esta certa
e a porcentagem.
Para isso utilizei a extração de sintagmas nominais
utilizei o programa OGMA em C e executo ele pelo java
através de linha de comando.
Porém esse software gera aqueles outros textos
fora os sintagmas nominais ou seja
a cada questões discursiva os sintagmas nominais
são diferentes.
Ficou mais claro ?[/quote]
Respondemos juntos. É, nesse caso não sei o que é melhor.
Eu pensei em começar a ler apenas depois de
que tem antes do texto que vai ser sempre igual em todos os sintagmas
e parar de ler também em
mais não sei fazer isso.
Tipo leia apenas depois de encontrar quantidade x de " - ".
Alguma dica ?
boolean encontrei = false;
StringBuffer bf = new StringBuffer();
while((linha = reader.readLine()) != null){
if(linha.trim().matches("^\\-*$")){
if(encontrei){
break;
}else{
encontrei = true;
continue;
}
}
if(encontrei){
sb.append(linha);
}
}
to com sono hehehe, pode nao ser a melhor maneira, mas acho que funciona