Apoio a Isaac Díaz Pardo .GAL - Dominio galego XA!

GND3.0

Imaxe ó chou

Chámalle arte

Pantallazo

Frase lapidaria

Non penso que isto vaia mellorar. Pero como non loitemos, farase peor.

— León Gieco

SentenceSplitter

| |

SentenceSplitter.py: Python module to split text chunks into ortographic sentences, version 1.6. The code is at the bottom of this page.

SentenceSplitter.py: Módulo de Python pra partir textos en frases ortográficas, vesión 1.6. Tedes o código ó final da páxina.

Contén unha clase SentenceSplitter que parte parágrafos en frases empregando unha expresión regular para a detección e discriminación de marcas de puntuación, así como unha lista de abreviaturas que non deberían de disparar o particionado.

Básicamente, é unha modificación do SentenceSplitter.py orixinal que Mickel Grönroos escribiu no 2004. Incorpora algunhas melloras:

  • Métodos para recuperar e cambiar a expresión regular empregada pra face-la partición de frases
  • Un modo (activado por defacto) que ignora as letras maíusculas individuais que van seguidas dun punto, (porque raramente aparecen ó final da frase, pero sí en abreviaturas).

Problemas coñecidos

  • Non pode xestionar correctamente citas (entre aspas: ") que conteñan múltiples frases, por exemplo: "Isto é unha cita. Ten dúas frases."
  • Devolve cadeas baleiras cando recibe liñas baleiras. Isto pódese considerar un erro ou unha característica. :o)
  • Ten problemas ca localización, que posiblemente son causa do meu mal entender do xeito en que Python traballa con codecs multilingüísticos. Este erro está alto na lista de cousas por arranxar, porque é gordo.

Instalación

...Por lle chamar dalgún xeito.

  • O módulo precisa estar nalgunha das rutas nas que Python busca librarías. Normalmente, o mais doado é copialo no directorio dende o que ides lanzar Python.
  • Tede en conta que o módulo tal e como o descarregades de aquí é un .txt. Precisaredes renomealo (sacarlle o .txt do final) pra que sexa un .py de verdade.
  • Por suposto, ides precisar Python instalado. No GNU/Linux posiblemente xa vos veña por defacto. Para o Windows podedes descargar un intérprete dende a páxina indicada.

Exemplo de uso

Python 2.4.4 (#2, Oct 20 2006, 00:57:46)
[GCC 4.1.2 20061007 (prerelease) (Debian 4.1.1-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import SentenceSplitter
>>> ss = SentenceSplitter.SentenceSplitter()
>>> ss.setAbbreviations(['Mr.', 'Sr.'])
>>> ss.getCapState()
False
>>> ss.switchCapState()
>>> ss.split("'No!', said Mr. Jones B. Smith when the reactor reached 99.9 percent of its capacity. Desperatedly, he struck the controls, trying to turn off the switch. Could they be saved? Most probaby not. But one never knows! Perhaps some miracle could come in their aid.")
["'No!', said Mr. Jones B. Smith when the reactor reached 99.9 percent of its capacity.", 'Desperatedly, he struck the controls, trying to turn off the switch.', 'Could they be saved?', 'Most probaby not.', 'But one never knows!', 'Perhaps some miracle could come in their aid.']
>>> ss.split("Mrs. Whiteley had a very strange son.")
['Mrs.', 'Whiteley had a very strange son.']
>>> abbreviations = ss.getAbbreviations()
>>> abbreviations += ['Mrs.']
>>> abbreviations
['Mr.', 'Sr.', 'A.', 'B.', 'C.', 'D.', 'E.', 'F.', 'G.', 'H.', 'I.', 'J.', 'K.', 'L.', 'M.', 'N.', 'O.', 'P.', 'Q.', 'R.', 'S.', 'T.', 'U.', 'V.', 'W.', 'X.', 'Y.', 'Z.', 'Mrs.']
>>> ss.setAbbreviations(abbreviations)
>>> ss.split("Mrs. Whiteley had a very strange son.")
['Mrs. Whiteley had a very strange son.']
>>> help(SentenceSplitter)

AdxuntoTamaño
SentenceSplitter.py.txt9.85 KB

Enviar novo comentario.

O contido deste campo é privado e non se amosará publicamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de liñas e de párrafos.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
Máis información sobre opcións de formato
Captcha Image: you will need to recognize the text in it.
Escrebe as letras/números que se amoxan na imaxe de enriba. Deste xeito podo saber que és unha persoa de verdade, e non un robot de SPAM.
deseñado polo Gatonegro | vitaminado polo Drupal | Contidos liberados, salvo onde se indique o contrario, baixo da licenza Creative Commons Attribución-CompartirIgoal | Sindicar RSS
Creative Commons Atribución-CompartirIgoal Inkscape GIMP Firefox GNU Galiza
Drupal Debian Chuza! CiberIrmandade da Fala