Traitement du langage naturel pour le sélecteur de date

Le sélecteur de date et la fonction de conversion sont des fonctionnalités puissantes. J’aimerais beaucoup voir une simplification de l’ajout d’une date ou d’une heure à un message. Une méthode courante pour y parvenir consiste à utiliser le traitement du langage naturel. Des applications comme Fantastical sur iOS l’utilisent depuis des années pour la saisie de dates.

Au lieu de manipuler la souris pour entrer une date, vous pourriez simplement taper quelque chose comme :

  • lundi à 14h qui renverrait la date et l’heure dans votre fuseau horaire
  • vendredi prochain à 10h NZST qui renverrait la date et l’heure du vendredi prochain en NZST
  • 11h qui renverrait la date d’aujourd’hui à 11h
  • 8/9 au 8/13 qui renverrait une plage de dates.

Cela pourrait soit remplacer la fenêtre modale affichée en cliquant sur l’icône du calendrier dans l’éditeur par une zone de texte (avec un bouton « avancé » qui affiche le contenu actuel de la fenêtre modale), soit être une fenêtre modale distincte lancée par un raccourci clavier.

9 « J'aime »

Cette bibliothèque pourrait vous aider dans la mise en œuvre : GitHub - wanasit/chrono: A natural language date parser in Javascript · GitHub

Cela dit, je soupçonne qu’il serait difficile d’obtenir un support linguistique robuste pour cela.

Les langues actuellement entièrement prises en charge sont en, ja et fr (de et pt sont partiellement pris en charge). Les autres langues de la version 1 (nl et zh) sont en cours de développement.


Par ailleurs, un autre motif d’expérience utilisateur à envisager consiste à remplacer automatiquement les chaînes de dates dans le corps d’un message par des objets date/heure de Discourse. Un peu comme le « one-boxing », mais pour les dates. Par exemple, si je tape « lundi prochain à 14 h » dans mon message, cela le convertit automatiquement en 2021-08-17T18:00:00Z.

5 « J'aime »

J’adore vraiment cette idée !

3 « J'aime »

J’aime beaucoup cette idée, pouvez-vous me montrer la maquette de l’interface utilisateur de la façon dont vous voyez cela fonctionner ? C’est ce qui manque ici.

Il n’y aura peut-être même pas besoin d’interface utilisateur. Lorsqu’un message est traité, le NLP pourrait le traiter, revenir au client et confirmer avec une simple fenêtre modale :

1 date a été trouvée. Souhaitez-vous convertir en horodatages dynamiques ?
- mardi à 14h --> [date discourse]

Ou, cela pourrait être plus simple. Cliquez sur l’icône du calendrier, et au lieu d’un sélecteur de date, il s’agit d’une simple zone de texte.

Et, similaire à notre fenêtre modale d’invitations, il pourrait y avoir un bouton pour les contrôles avancés qui affiche notre sélecteur de date/heure/fuseau horaire existant pour des options plus granulaires.

C’est à @j.jaffeux de décider, je ne suis pas sûr que cela corresponde du tout à l’interface utilisateur actuelle que nous avons ? Je ne suis pas non plus sûr que les gens normaux veuillent taper autant plutôt que cliquer, surtout sur un smartphone ?

Cela a du sens dans Google Agenda car vous pouvez le faire en tapant le nom de l’événement, par exemple, au lieu de taper

« Plombier »

vous tapez

« Plombier 15h - 17h »

mais c’est facile car je suis sur un appareil avec un clavier.

Je trouve en fait que notre modal est fastidieux à utiliser, que ce soit sur ordinateur ou sur mobile, c’est pourquoi j’ai suggéré cette fonctionnalité en premier lieu. Il est beaucoup plus rapide de taper aujourd'hui à 11h31 dans une modale que d’utiliser les molettes de défilement ou de cliquer dans une grande modale. Le fait que de nombreux calendriers le fassent déjà réduit la charge mentale nécessaire pour que les gens comprennent.

1 « J'aime »

Je suis d’accord sur ordinateur. Je ne suis pas d’accord sur smartphone, car taper sur smartphone est brutal. Peut-être que cela pourrait être un comportement réservé aux ordinateurs de bureau ?

1 « J'aime »

Cela me conviendrait personnellement.

Il y a beaucoup de code dans les dates qui font déjà cela, nous avons travaillé dessus avec @daniel

Il y a essentiellement 3 façons de résoudre cela :

  • une meilleure modale
  • une commande !
  • analyse de texte

L’analyse de texte est excellente, mais elle ne résout pas tout et nous devons également la faire fonctionner pour toutes les locales. Mais je suis d’accord que nous pourrions activer la prise en charge d’un petit sous-ensemble. C’est en grande partie déjà là, il faudrait juste que je la termine/l’active.

5 « J'aime »