2011-03-14 12 views
8

Necesito dividir texto en oraciones. Actualmente estoy jugando con la herramienta de detección de oraciones de OpenNLP. También he oído hablar de las herramientas NLTK y Stanford CoreNLP. ¿Cuál es la herramienta de detección de oraciones en inglés más precisa que existe? No necesito demasiadas funciones NLP, solo una buena herramienta para dividir/detectar oraciones.¿Cuál es la herramienta de código abierto más precisa para la división de oraciones?

También he oído hablar de Lucene ... pero puede ser demasiado. Pero si tiene un módulo de detección de oraciones kick-ass, entonces lo usaré.

+1

Para Perl, [Lingua :: EN :: Sentence] (http://search.cpan.org/~shlomoy/Lingua-EN-Sentence-0.25/lib/Lingua/EN/Sentence.pm)? – Konerak

Respuesta

1

cheque LingPipe aplicación http://alias-i.com/lingpipe/docs/api/com/aliasi/sentences/IndoEuropeanSentenceModel.html

Su modelo bastante potente y fácil de implementar - comprobar reglas pre/post pocos (también conocido como expresiones regulares) en cualquier posible división frase y eso es todo. Lo encontré trabajando mejor que uno en GATE y OpenNLP.

Hay otro proyecto de código abierto que apoyan este modelo heurístico como ejemplo, http://code.google.com/p/graph-expression/wiki/SentenceSplitting

+0

Su tarifa de licencia es bastante considerable, y si uso la licencia libre de regalías, requieren: "Los datos procesados ​​deben estar disponibles gratuitamente". – samxli

+0

Luego puede verificar mi expresión de gráfico de proyecto que actualmente es GPL, pero estoy pensando en cambiar a LGPL en caso de que encuentre otros commiters. – yura

+0

Acabo de revisar su proyecto. Lo probaré mañana :). Eché un vistazo a NLTK hoy y a Lingua :: EN :: Sentence en CPAN. NLTK estaba bien, tenía algunas imprecisiones. Lingua :: EN tuvo dificultades para reconocer las listas ordenadas como un fragmento. Permite definiciones de abreviaturas adicionales pero no puede reconocer "1.", "2.", etc. – samxli

-4

Perl es un lenguaje de procesamiento de texto que es un recurso excelente y sencillo para la minería de textos. No tiene ningún problema en dividir oraciones.

www.perl.org

+1

¿Existen ciertos modelos de división de oraciones disponibles para perl? Para diferentes dominios, las oraciones se pueden definir de manera diferente. Además, necesita poder manejar abreviaturas y espaciado doble después de períodos, etc. – samxli

+0

Perl es un lenguaje de procesamiento de patrones de procesamiento de textos. Se pueden manejar las abreviaturas y los problemas de espaciado. –

+0

Esta respuesta no es de la calidad de las otras que mencionan NLTK, LingPipe u otras herramientas NLP específicas. La división de oraciones es más difícil que solo la coincidencia de expresiones regulares. No recomiendo reinventar la rueda. –

2

NLTK incluye una implementación de la tokenizer Punkt descrito en this paper. No sé si es lo mejor, pero es muy bueno, liviano y fácil de usar, y es gratis.

Cuestiones relacionadas