“我想下周二去游泳” 我想用机器学习我想去游泳的日期。是否有任何方法或库可以
提取“下周二”
并计算确切的日期?
“我想下周二去游泳” 我想用机器学习我想去游泳的日期。是否有任何方法或库可以
提取“下周二”
并计算确切的日期?
有一个名为dateparser的 Python 库,它可以接受多种格式,包括像“下周二”这样的相对日期,并返回精确的datetime表示。
一个好的解决方案即服务可以使用Microsoft LUIS。在 LUIS 中,您可以使用预构建的 datetimeV2 实体来识别日期、时间、日期范围和持续时间。要了解有关此预建实体的更多信息,请参阅文档。
我将列出解决您问题的可能方法:
A- 天真的方法
如果您使用的是 python,您将需要re和calendar包。
优点:
缺点:
B- 分类
使用正面和负面示例创建字符串的基本事实,并将其输入分类器以从这些示例中学习。
您需要首先解析文本作为预处理步骤(但大多数方法都是这种情况,不是吗?)
优点:
缺点:
nlp)C- 以苹果的方式去做
查看有关Apple 数据检测器的一些信息
这个问题有两个部分。
要解决第一个问题,您可以使用名为Named Entity Recognition的东西。查找日期的问题实际上是更一般的NER 问题的子问题。不过,您可以尝试令人敬畏的Spacy NER Finder。
import spacy
nlp = spacy.load('en_core_web_sm')
doc = nlp(u'I want to go swimming next Tuesday')
for ent in doc.ents:
print(ent.text , ent.label_)
下周二 DATE
代码在文本中查找所有命名实体。如果您获得一种以上的实体,您可以过滤掉您的相关 DATE 实体
第二个问题稍微简单一些,一旦你有了 DATE 实体,它就只取决于你的 Python 能力了。您可以通过以下方式进行: