【发布时间】:2021-02-18 22:03:12
【问题描述】:
将人类输入到 Date() 对象的日期(即我正在从事的使用 ML 文本提取器的项目)转换为最简单的方法是什么。
这似乎是一个很简单的问题,但我找不到万无一失的解决方案。这是因为输入“2021 年 2 月 20 日”到“20 年 1 月 1 日”等日期的人以及使用“2021 年 1 月 3 日”等不同格式的人之间的格式差异很大。
有没有人知道的预构建包?
编辑:经过一些挖掘和试验,我发现的唯一解决方案是使用 moment.js(感谢 cWerning 的建议,以及其他提出其他想法的人)并输入多个模板,如下所示:
moment(**date**,["YYYY/MM/DD","DD/MM/YYYY",etc... with other formats]
编辑:另一个对我有用的解决方案是一个名为 Chrono 的 GitHub 项目,它进行自然语言处理,这正是我最初寻找的。p>
【问题讨论】:
-
在处理约会时帮自己一个忙,与npmjs.com/package/moment合作
-
另外,如果人类正在输入它..您可以控制他们输入它的格式(而不是有一个空白输入表单,有几个带有月、日和年选项的选择标签)然后你用标准化的东西制作数据
-
如果您尝试从任意文本中提取日期,我认为这基本上是不可能的,除非您的机器学习足够聪明(除其他外)确定输入文本的人是否是美国人(mm /dd/yy) 或欧洲 (dd/mm/yy)。
-
@cWerning 谢谢你的建议。我发现 moment.js 提供了添加多个自定义“模板”来识别日期格式的能力。 (遍历它们,直到找到有效日期)-TheBombSquad(不能提及多个)也感谢您的建议。这听起来对其他情况很有用,但在我的情况下,我无法控制它是如何进入的。-DanielBeck 是的。虽然我在 cWerning 的帮助下找到的解决方案有效,但它有点不可行,所以也许未来更高级的 ML 模型可能会有所帮助。无论如何,谢谢。
标签: javascript node.js date