这是问题所在:
我有一些包含旅行信息的.csv文件,日期显示为字符串(每行一行):
我必须将字符串解析为Dates,并将它们保存到每个旅行的数组中。
问题在于我不知道该怎么做。甚至我的不诚实的老师也告诉我他们不知道该怎么做:S。我无法使用http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
找到/创建模式解析它们之后,我必须搜索两个日期之间的所有旅行。
但是怎么样?如何解析它们?这可能吗?答案 0 :(得分:1)
你属于NLP(自然语言处理)领域,在这个领域中可能或不可能是模糊的。通过快速的Google搜索,我发现Natty Date Parser可能对您有用。
有关NLP的更多理论背景,您可能对斯坦福大学课程的Natural Language Processing课程感兴趣(目前该课程尚未开放注册,但课程免费提供。
您还可以使用一组严格的正则表达式,这些表达式只匹配您的一个可能情况,并将它们从最严格的情况应用到最轻松的情况。
我要定义的第一件事来解决你的问题是你期望作为你的方法的输出,因为在某些情况下它是一个日期,在某些情况下是一个间隔,在某些其他情况下是多个间隔。
答案 1 :(得分:1)
这需要自然语言处理(NLP),请参阅维基百科的帐户: http://en.wikipedia.org/wiki/Natural_language_processing
你说的问题很难。有许多表示单个日期的方法,您的示例包括日期范围和生成日期的公式。听起来好像你有一个有限的语言子集 - 频繁使用“全部”,“从”等等。
如果您掌握了语言(即这些语言是由遵守您文档的人员生成的),那么您有可能将其正式化(尽管需要花费大量工作 - 几个月)。如果您不负责,那么每次出现新短语时,您都必须将其添加到规格中。
我建议你通过该文件并查找库存短语“All [weekdayname] s [from | between | until | before]”。或者“在[1月| 2月......]”。然后用短语替换这些。如果你发现这涵盖了所有的情况,你可以提取特定的短语“。但如果你有像下周二那样的回指,那将会更加困难。