2011-05-04 7 views
6

Estoy buscando un proyecto de ejemplo que realice la separación silábica del texto en C#. Idealmente, esto se derivaría del algoritmo de división de palabras de TeX, o similar. Actualmente estoy interesado en inglés, aunque es posible que se requieran otros idiomas en el futuro. ¿Alguien ha visto algo así? background Estoy planeando incluir esto en un proyecto MonoTouch utilizando CoreText.Hyphenation en C#

Respuesta

3

Obviamente, los algoritmos de Donald Knuth son excelentes. Aunque no hay una implementación de C# disponible, ¿ha considerado convertir otra implementación en C#? (Por ejemplo, podría convertir la implementación de Java, que es bastante cercana a C#.)

Otra opción es utilizar una implementación más simple que se puede encontrar en this answer here on StackOverflow.

+0

Gracias, Jason. Realmente estaba esperando que alguien por ahí ya haya convertido la versión de TeX a C#. Puede que tenga que ir por la ruta de convertirla yo mismo. ¿Sabes dónde puedo encontrar una versión Java descendente para empezar? – Ethan

+0

Para una implementación de Java del trabajo de Liang, puede echar un vistazo a TeXHyphenator-J: http://www.davidashen.net/texhyphj.html –

4

Encontré una implementación de C# del algoritmo de separación de palabras Knuth-Liang en https://github.com/alkozko/NHyphenator y parece funcionar bien.

Pero en la actualidad hay dos inconvenientes:

  1. que no puede cargar archivos TeX patrón de separación de palabras fuera de la caja (sin embargo, la adición de soporte para ellos parece trivial).
  2. No está claro qué tipo de licencia se aplica al código fuente.
+0

Si pudiera proporcionar algunos consejos sobre cómo convertir archivos como este http: // mirror.ctan.org/language/hyph-utf8/tex/generic/hyph-utf8/patterns/tex/hyph-el-monoton.tex en el formato que utiliza NHyphenator, para las personas que no tienen idea de cuál es el contenido del archivo de cualquiera de los dos significa, sería genial. Me encuentro queriendo usar esta biblioteca también y me temo que si empiezo a leer los detalles del algoritmo para entender el contenido del archivo, probablemente termine reimplementándolo yo mismo ... :( – NoOne

+0

Después de mirar dentro de ambos los formatos de archivo, yo -con seguridad- especularía que solo tiene que copiar el contenido de '\ hyphenation {}' al archivo 'hyph - ***. hyp.txt' y el contenido de' \ patterns {} ' al archivo 'hyph - ***. pat.txt'. Hm ... No hay mucho trabajo para construir un analizador para eso ... – NoOne