khiops icon indicating copy to clipboard operation
khiops copied to clipboard

Accept blank caracters in token representation of texts

Open marcboulle opened this issue 11 months ago • 1 comments

Description

Retour béta-test V11

La tokenisation des textes dans khiops se fait selon trois options:

Type of constructed text features :
- words : text words obtained with an automatic tokenization process
- ngrams: ngrams of bytes; generic, fast, robust, but less interpretable
- tokens : text tokens whose interpretability and interest depend on the quality of the input text 
preprocessing.

The "words" automatic tokenization process uses separator or control characters as delimiters.
The obtained words are either sequences of punctuation characters or sequences of any other 
character.

The "tokens" tokenization process simply uses the blank character as delimiter.
This method assumes  that the text has been already preprocessed (eg. lemmatization).

La dernière option "tokens" permet de récupérer la tokenisation d'un tokenizer externe:

  • le tokenizer externe produit un tableau de tokens, chaines de caractères
  • on peut alors refabriquer un texte tokenisé, en concaténant les tokens, séparés par des caractères blancs
  • avec l'option "tokens", Khiops retrouve les token en parsant chaque texte

Le problème est que les tokenisers externes peuvent produire des tokens contenant des blancs.

Questions/Ideas

Il faudrait étendre le tokenizer de Khiops en acceptant des tokens contenant des blancs:

  • si token standard; le token tel quel, comme actuellement
  • si token contient des blancs: token entouré de caractères simple quote '
    • doublement des caractères ' interne au token
    • attention au traitement des erreurs
      • token commençant par ', mais non terminé par '
        • dans ce cas on va jusqu'à la fin du champ
      • token trop long
        • arrêt du parsing d'un token s'il dépasse 100 caractères?
      • procéder de façon similaire au cas des blocs sparse
        • le caractère double quote " est réservé aux champs complets
        • le caractère simple quote ' est parsing intra-champ

Context

  • Khiops version: V11

marcboulle avatar Jan 14 '25 08:01 marcboulle

Cette proposition est trop chère, trop complexe à utiliser et à développer, pour un rapport coût-bénéfice très défavorable.

On peut se contenter de donner un exemple python d'utilisation d'un tokenizer externe pour utiliser l'option "tokens" de Khiops core. Ce point est traité dans l'issue https://github.com/KhiopsML/khiops-python/issues/446, qui peut être détaillé en expliquant ce problème potentiel (tokens contenant des blancs), qui peut être traité de façon pragmatique en remplaçant les blancs par des underscore '_'.

marcboulle avatar Aug 22 '25 12:08 marcboulle