Accept blank caracters in token representation of texts
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
- le caractère double quote
- token commençant par
- doublement des caractères
Context
- Khiops version: V11
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 '_'.