2011-06-21 14 views
12

Estoy tratando de encontrar un recurso que pueda usarse para conectar idiomas (o más probablemente guiones) a bloques de caracteres Unicode. Tal recurso se usaría para buscar preguntas como "¿Qué bloques Unicode se usan en francés?" o "¿Qué idiomas usan el bloque de 0A80-0AFF (http://unicodinator.com/#Block-Gujarati)?" ¿Conoces ese recurso?¿Cómo puedo relacionar bloques Unicode con Idiomas/Scripts?

Hubiera esperado poder encontrar esta información fácilmente en unicode.org. Pude encontrar rápidamente una gran tabla que relaciona los códigos de país con los idiomas (http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/territory_language_information.html). Pero he pasado bastante tiempo hurgando sin suerte para encontrar algo que relacione bloques Unicode con idiomas. Es posible que tenga un problema de terminología que me impide conectar los puntos aquí ...

No soy exigente sobre qué significa exactamente "lenguaje" (código de configuración regional de Java o código ISO 639 o lo que sea) en este caso . También entiendo que puede que no haya respuestas exactas porque, por ejemplo, un documento árabe puede contener texto en latín y de otro tipo además de caracteres de los bloques árabes (http://unicodinator.com/#Block-Arabic, http://unicodinator.com/#Block-Arabic_Supplement). Pero seguramente debe haber alguna tabla que diga "estos lenguajes van con estos bloques" ... Tampoco soy exigente con el formato (XML, CSV, lo que sea), puedo transformar esto fácilmente en datos que puedo usar para mi aplicación . Y de nuevo, me doy cuenta de que la referencia probablemente conectaría Scripts a Blocks, no a Languages ​​(aunque los Scripts pueden asignarse a Languages).

Me doy cuenta de que esta será una tabla de muchos a muchos (dado que muchos lenguajes usan caracteres de varios bloques, y muchos bloques son utilizados por varios idiomas); Me doy cuenta de que esto no se puede responder con precisión ya que los puntos de código Unicode no son específicos del idioma; sin embargo, la pregunta "¿qué idiomas hay en este país?" (La respuesta es probablemente "la mayoría" para la mayoría de los países), pero una tabla así (http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/territory_language_information.html) todavía es posible crear, significativo y útil.

En cuanto a por qué me gustaría tal cosa: me gustaría mejorar http://unicodinator.com con calor-mapas globales de los bloques de código, y las listas de idiomas; También tengo un concepto de juego con el que estoy retocando. Más allá de eso, es probable que haya muchos otros usos que otras personas podrían tener para esto (creación de fuentes, heurística, detección de lenguaje rápida y mejor adivinación ahora que Google Translate API se va? ¿Proyectos de investigación?).

+0

¿Qué hay de bloques que pueden pertenecer a varios idiomas? –

+1

sí @Ignacio, definitivamente habrá una relación de muchos a muchos. – jlarson

+1

No creo que esto responda. Considere las palabras prestadas de otros idiomas. El inglés normalmente no tiene acentos, pero encontrará un "resumen" en cualquier diccionario de inglés. –

Respuesta

10

¡Recibí la respuesta de Unicode.org!En el subproyecto CLDR, hay documentos tales como:

para cada identificador de idioma, que se puede buscar "exemplarCharacters":

<exemplarCharacters>[\u064B \u064C \u064D \u064E \u064F \u0650 \u0651 \u0652 ء آ أ ؤ إ ئ ا ب ت ة ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي ى]</exemplarCharacters> 
<exemplarCharacters type="auxiliary">[\u200C\u200D\u200E\u200F]</exemplarCharacters> 
<exemplarCharacters type="currencySymbol" draft="contributed">[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]</exemplarCharacters> 
<exemplarCharacters type="index" draft="contributed">[ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي]</exemplarCharacters> 

O , hay esta página: http://unicode.org/repos/cldr-tmp/trunk/diff/by_type/misc.exemplarCharacters.html con lo que se parece a todos ellos. Trabajaré en la reorganización de estos datos en un langid -> blockid map de algún tipo, en el cual probablemente sabré @borrible la "Respuesta" (en lugar de hacer mía la respuesta).

+0

Para eso están los datos. Ver también: http://unicode.org/cldr/charts/supplemental/index.html –

1

No existe tal recurso y por una simple razón: las asignaciones de puntos de código Unicode son independientes del idioma. Por lo tanto, cada punto de código podría ser utilizado por múltiples idiomas.

Por supuesto, hay ciertos caracteres que se asignan directamente a un idioma, pero en general cada punto de código debe compartirse. Por lo tanto, no tiene mucho sentido crear un punto de código para las tablas de idiomas.

Si usted está buscando maneras de detectar el idioma, sin duda esto es no el camino a seguir.

+0

Nuevamente, me doy cuenta de todo esto, sin embargo, es obvio que algunos bloques se relacionan con algunos idiomas específicos o conjuntos de idiomas (árabe, cirílico, CJK ...). No para todos los bloques o puntos de código, pero al menos algunos. Así que parece razonable creer que esto debería documentarse en algún lugar – jlarson

+0

Y no, no estoy tratando de detectar el lenguaje ... – jlarson

+0

El cirílico no es un lenguaje, es un guión. El árabe es a la vez un lenguaje y un script, pero el script se usa para muchos idiomas además del árabe. Creo que su empresa general, en el mejor de los casos, buscará secuencias de comandos, no idiomas ... –

3

¿Qué le parece generar datos (aproximados) usted mismo? Un ejemplo podría ser utilizar los diferentes language wikipedias - descargar suficientes datos en cada idioma, generar una lista de los caracteres utilizados en los documentos con recuentos, y poner en un umbral para deshacerse de pequeñas instancias de texto prestado de otros idiomas. Sería aproximado, pero posiblemente sea un buen punto de partida.

+0

De hecho, voy a hacer casi exactamente eso a menos que alguien pueda señalarme algo que ya existe. – jlarson

1

No creo que los ejemplares de CLDR puedan dar resultados precisos. Puede encontrar para cada personaje su propiedad de secuencia de comandos de UCD projectScripts.txt y ScriptExtensions.txt archivos. Para obtener más leer esto (Unicode Script Property)

Después de tener el guión, puede relacionarlo con la lengua en CLDR utilizando la sección languageData del supplementalData.xml

Cuestiones relacionadas