las - librerias de java y sus funciones pdf
Biblioteca de Java que encuentra límites de oraciones (2)
¿Alguien sabe de una biblioteca Java que maneja la búsqueda de límites de oraciones? Estoy pensando que sería una implementación inteligente de StringTokenizer que conoce todos los terminadores de frases que los lenguajes pueden usar.
Aquí está mi experiencia con BreakIterator:
Usando el ejemplo aquí : Tengo el siguiente japonés:
今日はパソコンを買った。高性能のマックは早い!とても快適です。
En Ascii, se ve así:
/ufeff/u4eca/u65e5/u306f/u30d1/u30bd/u30b3/u30f3/u3092/u8cb7/u3063/u305f/u3002/u9ad8/u6027/u80fd/u306e/u30de/u30c3/u30af/u306f/u65e9/u3044/uff01/u3068/u3066/u3082/u5feb/u9069/u3067/u3059/u3002
Esta es la parte de esa muestra que he cambiado: static void sentenceExamples () {
Locale currentLocale = new Locale ("ja","JP");
BreakIterator sentenceIterator =
BreakIterator.getSentenceInstance(currentLocale);
String someText = "今日はパソコンを買った。高性能のマックは早い!とても快適です。";
Cuando miro los índices de límites, veo esto:
0|13|24|32
Pero esos índices no corresponden a ningún terminador de oraciones.
Quieres ver las clases internacionalizadas de BreakIterator. Un buen punto de partida para los límites de las oraciones .
Tu escribiste:
Estoy pensando que sería una implementación inteligente de StringTokenizer que conoce todos los terminadores de frases que los lenguajes pueden usar.
Un problema básico aquí es que los terminadores de frases dependen del contexto, considere:
¿Cómo calculó el Dr. Jones 5? sin recursion?
Esto debe reconocerse como una sola oración, pero si simplemente se divide en posibles terminadores de oraciones, obtendrá tres oraciones.
Entonces este es un problema más complejo de lo que uno podría pensar al principio. Se puede abordar utilizando técnicas de aprendizaje automático. Por ejemplo, podría examinar el proyecto OpenNLP , en particular la clase SentenceDetectorME .