Extrair Texto de Forma Dinâmica?

Olá pessoal, tudo bem?

Não sei mais o que faço hehe. Já tentei de várias formas mas infelizmente não deu muito certo. Bom vamos ao problema.

Eu preciso que um sistema extraia textos de forma inteligente. Eu consigo localizar o texto que eu preciso usando REGEX, mas eu preciso que ele “corte” o texto da forma certa, pegando a frase certa e enviando para o usuário. O texto é textplain e por isso não consigo pegar os parágrafos corretamente e mesmo assim, não existe garantia que o texto vai vir com parágrafos corretos.

Alguém tem alguma ideia ou existe algum framework pra ajudar nisso?

Dê exemplos pra gente te ajudar melhor.

Beleza, vou tentar algo aqui:

Rede de computadores ou Rede de dados, na informática e na telecomunicação é um conjunto de de dois ou mais dispositivos eletrônicos de computação (ou módulos processadores ou nós da rede) interligados por um sistema de comunicação digital (ou link de dados), guiados por um conjunto de regras (protocolo de rede) para compartilhar entre si informação, serviços e, recursos físicos e lógicos.[1] Estes podem ser do tipo: dados, impressoras, mensagens (e-mails), entre outros. As conexões podem ser estabelecidas usando mídia de cabo ou mídia sem fio. Os dispositivos integrantes de uma rede de computadores, que roteiam e terminam os dados, são denominados de “nós de rede" (ponto de conexão), que podem incluir hosts, como: computadores pessoais, telefones, servidores, e também hardware de rede. Dois desses dispositivos podem ser ditos em “rede” quando um dispositivo é capaz de trocar informações com o outro dispositivo,[1] quer eles tenham ou não uma conexão direta entre si.

Eu preciso extrair a frase completa que possui computadores e/ou servidores. Seria basicamente isso, então o algoritmo teria que pegar pelo menos a frase “Os dispositivos integrantes de uma rede de computadores, que roteiam e terminam os dados, são denominados de “nós de rede” (ponto de conexão), que podem incluir hosts, como: computadores pessoais, telefones, servidores, e também hardware de rede"

Montei um exemplo meio toscão (apenas para dá um norte):

obs.: O delimitador da frase é o . (ponto)

String termo = "computadores";
String texto = "Rede de computadores ou Rede de dados, na informática e na telecomunicação é um conjunto de de dois ou mais dispositivos eletrônicos de computação (ou módulos processadores ou nós da rede) interligados por um sistema de comunicação digital (ou link de dados), guiados por um conjunto de regras (protocolo de rede) para compartilhar entre si informação, serviços e, recursos físicos e lógicos.[1] Estes podem ser do tipo: dados, impressoras, mensagens (e-mails), entre outros. As conexões podem ser estabelecidas usando mídia de cabo ou mídia sem fio. Os dispositivos integrantes de uma rede de computadores, que roteiam e terminam os dados, são denominados de “nós de rede\" (ponto de conexão), que podem incluir hosts, como: computadores pessoais, telefones, servidores, e também hardware de rede. Dois desses dispositivos podem ser ditos em “rede” quando um dispositivo é capaz de trocar informações com o outro dispositivo,[1] quer eles tenham ou não uma conexão direta entre si.";
String[] trechos = texto.split("[\\.]");

List<String> filtrado = Stream.of(trechos).filter(t -> t.indexOf(termo) >= 0).collect(Collectors.toList());
System.out.printf("Foram encontrados %d frases para o termo \"%s\" %n", filtrado.size(), termo);
filtrado.forEach(t -> System.out.println("> " + t.trim()));

Olá Lucas, valeu pela resposta. É mais ou menos assim mesmo que estou tentando fazer, porém ele não é muito preciso, porque o texto pode ter um ponto, mas o sentido da frase ainda precisa continuar pegando sabe? Eu só consigo pensar em Machine Learning mas eu não queria ir para esse lado.

Para tratar esse aspecto, o buraco eh bem mais embaixo (bem, bem, bem mais no fundo mesmo). Talvez haja algum serviço de terceiro que vc consiga usar como Google ou IBM (Watson), por exemplo.