Natürliche Sprachverarbeitung für Datumsauswahl

Our date picker and conversion is a powerful feature. I’d love to see us make it simpler to add a date/time to a post. A common way this is done is through natural language processing. Apps like Fantastical on iOS have used this for years for date input.

Instead of fiddling with the mouse to input a date, you could type in something like:

  • monday at 2pm which would output the date and time to your timezone
  • next friday at 10am NZST which outputs the date/time next friday in NZST
  • 11am which outputs today’s date at 11am
  • 8/9 to 8/13 which outputs a date range.

This could either replace the modal shown by clicking the calendar icon in the composer with a textbox (and an advanced button which shows the existing modal contents) or a separate modal launched by a keyboard shortcut.

9 „Gefällt mir“

This library might help with implementation: GitHub - wanasit/chrono: A natural language date parser in Javascript

That said I suspect it would be a challenge to get robust language support for this.

The current fully supported languages are en , ja , and fr ( de and pt are partially supported). Other languages from v1 ( nl and zh ) are under development.


Also, another UX pattern to consider is automatically replacing date strings in the body of a post with Discourse date/time objects. Sort of like one-boxing but for dates. E.g. if I type “next monday at 2pm” in my post, it automatically converts that to 2021-08-17T18:00:00Z.

5 „Gefällt mir“

I really like this idea!

3 „Gefällt mir“

Mir gefällt diese Idee sehr gut. Können Sie mir das UI-Mockup zeigen, wie Sie sich vorstellen, dass es funktioniert? Das fehlt hier.

Es muss vielleicht nicht einmal eine Benutzeroberfläche geben. Wenn ein Beitrag verarbeitet wurde, könnte NLP ihn verarbeiten, zum Client zurückkehren und mit einem einfachen Modal bestätigen:

1 Datum wurde gefunden. Möchten Sie es in dynamische Zeitstempel umwandeln?
- Dienstag um 14 Uhr -- > [Diskursdatum]

Oder es könnte einfacher sein. Klicken Sie auf das Kalendersymbol, und anstelle eines Datumsauswahlfelds ist es ein einfaches Textfeld.

Und ähnlich wie bei unserem Einladungsmodal könnte es eine Schaltfläche für erweiterte Steuerelemente geben, die unseren vorhandenen Datums-/Uhrzeit-/Zeitzonen-Auswähler für detailliertere Optionen anzeigt.

Ich schätze, es liegt an @j.jaffeux, das zu entscheiden. Ich bin mir nicht sicher, ob das überhaupt zu unserer aktuellen Benutzeroberfläche passt? Ich bin mir auch nicht sicher, ob normale Leute lieber tippen als klicken, besonders auf einem Smartphone?

Es ergibt Sinn im Google Kalender, weil man das tun kann, während man den Namen des Ereignisses eingibt, z. B. anstatt einzugeben

“Klempner”

tippt man

“Klempner 15:00 - 17:00 Uhr”

aber das ist einfach, weil ich ein Gerät mit Tastatur benutze.

Ich finde unsere Modalansicht sowohl auf dem Desktop als auch auf dem Mobilgerät tatsächlich mühsam zu bedienen, weshalb ich diese Funktion überhaupt erst vorgeschlagen habe. Es ist deutlich schneller, heute um 11:31 Uhr in eine Modalansicht zu tippen, als die Scrollräder zu benutzen oder in einer großen Modalansicht herumzuklicken. Die Tatsache, dass viele Kalender dies bereits tun, bedeutet, dass die Leute weniger Aufwand betreiben müssen, um es herauszufinden.

1 „Gefällt mir“

Ich stimme auf dem Desktop zu. Auf dem Smartphone stimme ich nicht zu, da das Tippen auf dem Smartphone brutal ist. Vielleicht könnte dies ein Verhalten nur für den Desktop sein?

1 „Gefällt mir“

Damit wäre ich persönlich einverstanden.

Es gibt viel Code in Daten, der dies bereits tut. Wir haben daran mit @daniel gearbeitet.

Es gibt im Grunde 3 Möglichkeiten, dies zu lösen:

  • ein besseres Modal
  • ein !Befehl
  • Textanalyse

Die Textanalyse ist großartig, aber sie löst nicht alles und wir müssen sie auch für alle Lokalisierungen zum Laufen bringen. Aber ich stimme zu, dass wir die Unterstützung für eine kleine Teilmenge aktivieren könnten. Sie ist größtenteils bereits vorhanden, ich müsste sie nur noch fertigstellen/aktivieren.

5 „Gefällt mir“