TraduXio icon indicating copy to clipboard operation
TraduXio copied to clipboard

Indexation des écritures idéographiques (ou logographiques)

Open benel opened this issue 11 years ago • 8 comments

Pour les langues idéographiques ou logographiques (principalement le chinois), étant donné qu'il n'y a pas de "mot" repérable par des espaces, l'indexation pour la concordance devrait se faire caractère par caractère.

Par exemple, 人人生而自由,在尊严和权利上一律平等。 devrait être indexé de la manière suivante :

人人生而自由,在尊严和权利上一律平等。
人生而自由,在尊严和权利上一律平等。
生而自由,在尊严和权利上一律平等。
而自由,在尊严和权利上一律平等。
自由,在尊严和权利上一律平等。
由,在尊严和权利上一律平等。
在尊严和权利上一律平等。
尊严和权利上一律平等。
严和权利上一律平等。
和权利上一律平等。
权利上一律平等。
利上一律平等。
上一律平等。
一律平等。
律平等。
平等。
等。

benel avatar Sep 29 '14 08:09 benel

> ko='人人生而自由,在尊严和权利上一律平等。'
> for (match in b) {i=b[match].index;m=b[match][0];console.log(ko.substr(i));}
人人生而自由,在尊严和权利上一律平等。
人生而自由,在尊严和权利上一律平等。
生而自由,在尊严和权利上一律平等。
而自由,在尊严和权利上一律平等。
自由,在尊严和权利上一律平等。
由,在尊严和权利上一律平等。
,在尊严和权利上一律平等。
在尊严和权利上一律平等。
尊严和权利上一律平等。
严和权利上一律平等。
和权利上一律平等。
权利上一律平等。
利上一律平等。
上一律平等。
一律平等。
律平等。
平等。
等。
。

Je suppute que ,et 。sont de la ponctuation... il faudrait les détecter comme tels

franck-eyraud avatar Sep 29 '14 12:09 franck-eyraud

> for (match in b) {i=b[match].index;m=b[match][0];console.log(m+":"+ko.charCodeAt(i).toString(16));}
人:4eba
人:4eba
生:751f
而:800c
自:81ea
由:7531
,:ff0c
在:5728
尊:5c0a
严:4e25
和:548c
权:6743
利:5229
上:4e0a
一:4e00
律:5f8b
平:5e73
等:7b49
。:3002

franck-eyraud avatar Sep 29 '14 12:09 franck-eyraud

Je suppute que ,et 。sont de la ponctuation...

Ce sont effectivement des ponctuations. Mais comme elles ne précèdent pas immédiatement les caractères intéressants, on n'a pas besoin de les traiter pour notre "fenêtre glissante".

benel avatar Sep 29 '14 12:09 benel

Oops, désolé. Je n'avais pas vu que ces ponctuations "contenaient" l'espace visuel qui suit.

Le motif deviendrait donc /([\u3400-\u9FFF]|[^\s'-,。]+)/` (la virgule est une virgule chinoise).

benel avatar Sep 29 '14 12:09 benel

Je doute que la liste '```\-,。 soit exhaustive Mon idée était de pouvoir capturer tous les signes.

Apparemment c'est possible dans les regexp à partir de ECMAscript6, mais il existe un adaptateur pour ECMAScript5 (est-ce que ça passe dans couchdb ?)

franck-eyraud avatar Sep 29 '14 13:09 franck-eyraud

Vu la proximité de la démonstration, afin d'éviter les effets de bord, je suis adepte de faire le minimum de modifications nécessaire à notre objectif. On pourra toujours faire du refactoring plus tard.

benel avatar Sep 29 '14 13:09 benel

Tout à fait, d'accord. J'engageais juste le débat, car ça risque d'être sur le tapis à un moment ou à un autre.

http://www.regular-expressions.info/unicode.html

franck-eyraud avatar Sep 29 '14 13:09 franck-eyraud

Bon, j'ai déjà préparé le refactoring, c'est plus fort que moi... ;)

franck-eyraud avatar Sep 29 '14 14:09 franck-eyraud