Nlp 你如何解释这些日期?
我需要解释相对日期字符串,如:Nlp 你如何解释这些日期?,nlp,survey,Nlp,Survey,我需要解释相对日期字符串,如: 上周五 本周二 下周三 “最后一个星期五”表格很简单(以最近一个星期五为例,不是今天),但是“这个”和“下一个”呢?“这个星期三”会是昨天的星期四吗?在某些情况下,“这个”和“下一个”星期五是同一天,而在另一些情况下是相隔一周吗 p、 鉴于我的目标受众是美国人,我主要对该术语的美式英语白话用法感兴趣,而对其他非美式英语(例如en-gb)用法稍感兴趣,因此如果你不是美国人,请说明你来自何方 我目前的想法是: 最后一个X:不包括今天的最近一个X 此X:不包括
- 上周五
- 本周二
- 下周三
p、 鉴于我的目标受众是美国人,我主要对该术语的美式英语白话用法感兴趣,而对其他非美式英语(例如
en-gb
)用法稍感兴趣,因此如果你不是美国人,请说明你来自何方
我目前的想法是:
- 最后一个X:不包括今天的最近一个X
- 此X:不包括今天的下一个X
- 下一个X:下一周的X(一周的开始有点随意)
(一定要选中allow relative)这个星期二是今天之后的下一个星期二,因此在星期二,下一个星期二还有一周
同样,“下周三”也是如此。我想你需要看看这个问题。。。如果它说“你什么时候做X?那么‘本周二’显然意味着下周二。如果它说“你什么时候做X?”?那么“本周二”是指前一个周二 上周五=今天之前的第一个周五
下周三=今天之后的第一个周三* 这个星期二是个问题。这是个问题,因为人们用它来表达不同的意思。对一些人来说,这意味着本周的星期二,即使它已经过去了。对其他人来说,这意味着今天之后的下一个星期二 类似地,有些人用“下周三”来表示下周的星期三。在南方,我们经常说“星期三星期”,作为“从星期三开始的一周”的缩写。您将看到所有这些术语的使用方式存在地区差异(上周五除外) 问题是,我们都可以争论正确的语法用法,而有些人是对的。然而,这并不能改变这样一个事实,即人们在日常使用中的含义是不同的,通常按地区而定。这对你来说仍然是个问题 理想情况下,你需要一个学习计划。它会猜出他们的意思,并提出一个他们可以纠正的答案。随着时间的推移,你可以“了解”你的用户,无论是整体还是整体(也许是按地区),并更准确地猜测他们语言的正确解释。很可能你永远也无法超越让他们以某种方式手动推翻你的决定的能力。“本周二”将是本周的周二,除非是周六。我听到很多人把“这个星期二”称为下星期的星期二,即星期六
“下星期三”可能是下一个星期三,而不是本周。这指的是:当前日期、与名称匹配的一周的第二天,或者如果我们超过了所述日期,则指下一周的指定日期。如果按照列出的顺序应用,则根据这些规则定义周的哪一天都有意义 下一个(这个选择有点随意,但我个人的选择)指的是在当前日期之后的一周中的指定日期 如果我们将本周定义为星期日,即星期三,则以下情况适用: 本周三将是当天。
下周三就是下星期了 如果我们将本周定义为周日结束,并且是周二,则以下情况适用: 本周三将是第二天(本周的周三)。
下周三将是从现在起的8天(下周的星期三) 如果我们将本周定义为周日,即周四,则以下情况适用: 本周三将是下周的周三
下个星期三将是下个星期的星期三 < P>不幸的是,我认为“最后”和“下一个”都是模棱两可的。 我相信如果是周六,很少有人会把昨天称为“上周五”。下一个也一样。不过,周日大多数人会称之为“上周五” 下一个更模糊,它什么时候从“下周五”转换到“本周五”
如果我被要求对此进行编码,我会将其放入某种表格中,以便用户可以对其进行调整。我位于美国,在每天的谈话中,这就是我们如何使用这些短语:
- “本周二”是指声明发表后最快出现的周二。不包括今天
- “下一个周二”指本周二之后的周二
- 当一些人说“下周五见”时,他们真正的意思是“下周五后见”/“下周五见”。其他人(包括我自己)会从字面上解释它。我会添加视觉确认以消除混淆。还有,今天是星期三。如果有人走过来问我上周二做了什么,我会意识到他们可能在谈论昨天或大约8天前
顺便说一句,我是美国人。根据我的经验,在美式英语中,“this”总是指一天中的下一件事。如果是星期一,“本周三”是指后天。通常,如果是星期一,“这个星期二”被优先称为“明天”——我不记得有人在星期一说过“这个星期二”,除非他们认为现在是星期天
如果我在周三说“下周三”,我指的是从今天开始的一周。然而,如果我在周二说“下周三”,我可能指的是从明天开始的一周,或者我可能指的是明天——这取决于上下文,因此相当“软”。大多数美国佬会把这理解为从明天开始的一周。我想。无论如何,我会的 根据该网站的说法,这是不明确的: 如果
#!/usr/bin/perl
use strict;
use warnings;
use Date::Manip;
my @dates = (
'today',
'Tuesday',
'this Tuesday',
'next Tuesday',
'previous Tuesday',
'Friday',
'this Friday',
'first Tuesday of August 2009',
'first Monday of 1900',
);
print for map {
my $date = UnixDate($_, "%A, %B %d, %Y");
sprintf( "%-30s : %-30s\n", $_, $date || 'stumped' );
} @dates;
C:\Temp> d
today : Wednesday, August 12, 2009
Tuesday : Tuesday, August 11, 2009
this Tuesday : stumped
next Tuesday : Tuesday, August 18, 2009
previous Tuesday : Tuesday, August 11, 2009
Friday : Friday, August 14, 2009
this Friday : stumped
first Tuesday of August 2009 : Tuesday, August 04, 2009
first Monday of 1900 : Monday, January 01, 1900