Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Python文本中提取日期/持续时间_Python_Python 3.x_Date_Text_Nlp - Fatal编程技术网

从Python文本中提取日期/持续时间

从Python文本中提取日期/持续时间,python,python-3.x,date,text,nlp,Python,Python 3.x,Date,Text,Nlp,要提取的文本和输出类似于以下内容: “每两周检查一次”-两周 “第1天和第14天检查”-第1天和第14天 “第19天和第14天很重要”-第19天,第14天 “在第11天和第14天检查”-第11天,第14天 “第一天和第十二天检查”-第一天,第十二天 我曾尝试使用SUTime库提取必要的信息,但它仅适用于第一个示例,无法从其余示例中正确提取信息。考虑到同一文本可以用多种方式编写,使用正则表达式不是很可行。这个问题还有其他解决方案吗?这是一个好问题,因为如果你真的想确保每天或每段时间都能记住,那么你

要提取的文本和输出类似于以下内容:

“每两周检查一次”-两周

“第1天和第14天检查”-第1天和第14天

“第19天和第14天很重要”-第19天,第14天

“在第11天和第14天检查”-第11天,第14天

“第一天和第十二天检查”-第一天,第十二天


我曾尝试使用SUTime库提取必要的信息,但它仅适用于第一个示例,无法从其余示例中正确提取信息。考虑到同一文本可以用多种方式编写,使用正则表达式不是很可行。这个问题还有其他解决方案吗?

这是一个好问题,因为如果你真的想确保每天或每段时间都能记住,那么你可能最终会使用机器学习,因为这样你的程序就可以被训练识别“每两周”或“每两年”之类的短语,这些不是数值。然而,我认为,对于这样的事情,采用一种不需要太多编码和工作的方法可能更明智。首先,您的程序应该根据显示的内容识别“每n天/周”和“检查n天和m天”(n和m代表任意数字)。首先,我建议使用将任何文本(如示例中的“十四”)转换为整数。您可能需要使用正则表达式来解析文本,但仅限于单词。只需使用
split()
builtin,通过分隔符将字符串拆分为单词的子字符串,就可以找到数字,这里可以使用空格。然后可以使用
isdigit()
函数查看它是否为整数,然后应用规则


我意识到这些不是一步一步的说明,而是一种选择。如果你真的想提高效率,那么自然语言或机器学习将是最好的选择,但如果你愿意,你可以使用基本的语法分析和正则表达式。

似乎需要自然语言处理。查看NLTK:。