معالجة اللغة الطبيعية لاختيار التاريخ

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 إعجابات

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 إعجابات

I really like this idea!

3 إعجابات

أنا معجب جدًا بهذه الفكرة، هل يمكنك أن تريني نموذج واجهة المستخدم الخاص بك لكيفية عملها؟ هذا هو ما ينقص هنا.

قد لا تكون هناك حاجة لواجهة مستخدم. عند معالجة منشور، يمكن لـ NLP معالجته والعودة إلى العميل والتأكيد باستخدام نافذة منبثقة بسيطة:

تم العثور على تاريخ واحد. هل ترغب في التحويل إلى طوابع زمنية ديناميكية؟
- الثلاثاء الساعة 2 مساءً --> [تاريخ الخطاب]

أو يمكن أن يكون الأمر أبسط. انقر فوق أيقونة التقويم، وبدلاً من منتقي التاريخ، يكون مربع نص بسيطًا.

وبشكل مشابه لنافذة الدعوات الخاصة بنا، يمكن أن يكون هناك زر لعناصر التحكم المتقدمة يعرض منتقي التاريخ/الوقت/المنطقة الزمنية الحالي لدينا لخيارات أكثر تفصيلاً.

أعتقد أن الأمر متروك لـ @j.jaffeux ليقرر، ولست متأكدًا مما إذا كان هذا يتناسب مع واجهة المستخدم الحالية لدينا؟ لست متأكدًا أيضًا مما إذا كان الأشخاص العاديون يرغبون في الكتابة كثيرًا مقابل النقر خاصةً على الهاتف الذكي؟

يبدو الأمر منطقيًا في تقويم Google لأنه يمكنك القيام بذلك أثناء كتابة اسم الحدث، على سبيل المثال، بدلاً من كتابة

“سباك”

تكتب

“سباك من 3 مساءً إلى 5 مساءً”

ولكن هذا سهل لأنني على جهاز مزود بلوحة مفاتيح.

في الواقع، أجد أن النافذة المنبثقة الخاصة بنا مملة للاستخدام على كل من سطح المكتب والجوال، ولهذا السبب اقترحت هذه الميزة في المقام الأول. إنه أسرع بكثير كتابة اليوم في الساعة 11:31 صباحًا في نافذة منبثقة بدلاً من استخدام العجلات الدوارة أو النقر حول نافذة منبثقة كبيرة. حقيقة أن العديد من التقويمات تفعل ذلك بالفعل تجعل الأمر أقل عبئًا ذهنيًا على الأشخاص لفهمه.

إعجاب واحد (1)

أوافق على سطح المكتب. لا أوافق على الهاتف الذكي، لأن الكتابة على الهاتف الذكي وحشية. ربما يمكن أن يكون هذا سلوكًا مخصصًا لسطح المكتب فقط؟

إعجاب واحد (1)

أنا شخصياً سأكون بخير مع ذلك.

هناك الكثير من التعليمات البرمجية في التواريخ التي تقوم بالفعل بهذا، لقد عملنا على هذا مع @daniel

هناك 3 طرق أساسية لحل هذا:

  • نافذة منبثقة أفضل
  • أمر !command ما
  • تحليل النص

تحليل النص رائع، ولكنه لا يحل كل شيء، وعلينا أيضًا جعله يعمل لجميع اللغات. لكنني أتفق على أنه يمكننا تمكين دعم مجموعة فرعية صغيرة. إنه موجود بالفعل في الغالب، وسيتعين علي فقط الانتهاء منه/تمكينه.

5 إعجابات