精华内容
下载资源
问答
  • 日期提取器可帮助您从文本中提取日期 安装 pip3 install date-extractor 用 from date_extractor import extract_dates text = "I arrived in that city on January 4, 1937" dates = extract_dates ( text ) # ...
  • 概要会扫描文本,用户数据或几乎所有内容,以查找可能感兴趣的数据,电话号码,日期,位置,电子邮件,时间,词组频率和总体情绪。 该项目正在积极开发。 许多方法并不是找到信息的最有效或最准确的方法,但是...
  • * 从文本内容中提取日期时间 * @param text 包含日期时间的文本(格式:yyyy年MM月dd日HH:mm) * @return 日期时间字符串(yyyy-MM-dd HH:mm) */ public static String getDateTimeFromT

    需求


    需要从文本文件中提取中时间及日期

    代码

    “`java
    /**
    * 从文本内容中提取日期时间
    * @param text 包含日期时间的文本(格式:yyyy年MM月dd日HH:mm)
    * @return 日期时间字符串(yyyy-MM-dd HH:mm)
    */
    public static String getDateTimeFromText(String text){
    if (null == text){
    return “”;
    }

        Pattern p = Pattern.compile("(\\d{4})年(\\d{2})月(\\d{2})日(\\d{2}:\\d{2})");
        Matcher m = p.matcher(text);
    
        if (m.find() && 4 == m.groupCount()){
            return m.group(1) + "-" + m.group(2) + "-" + m.group(3) + " " + m.group(4); 
        } else {
            return "";
        }
    }
    

    “`java

    展开全文
  • 这里构造的日期和时间提取器尝试适配上面两种日/月的表示顺序,并检查以确保是有效的日期 import re from datetime import date import datetime # 美国日期的正则表达式 us = r'((([01]?\d)[-/]([0123]?\d))([-/]...

    在美国,2017 年圣诞节的表示是“12/25/17”,而在欧洲,同一个日子却表示为“25/12/17”。这里构造的日期和时间提取器尝试适配上面两种日/月的表示顺序,并检查以确保是有效的日期

    import re
    from datetime import date
    import datetime
    
    # 美国日期的正则表达式
    us = r'((([01]?\d)[-/]([0123]?\d))([-/]([0123]\d)\d\d)?)'
    mdy = re.findall(us, 'Santa came 12/25/2017. An elf appeared 12/12.')
    print(mdy)
    
    # 结构化提取的日期
    # lstrip() 方法用于截掉字符串左边的空格或指定字符
    dates = [{'mdy': x[0], 'md': x[1], 'm': int(x[2]), 'd': int(x[3]),
                 'y': int(x[4].lstrip('/') or 0), 'c': int(x[5] or 0)} for x in mdy]
    print(dates)
    
    # 基本的上下文管理
    # 使用在内存的结构化数据的上下文中最近读取到的年份来
    # 填充任何缺失的数字字段
    for i, d in enumerate(dates):
        for k, v in d.items():
            if not v:
                d[k] = dates[max(i - 1, 0)][k]
    
    print(dates)
    datetimes = [date(d['y'], d['m'], d['d']) for d in dates]
    print(datetimes)
    
    
    # 欧洲日期的正则表达式
    eu = r'((([0123]?\d)[-/]([01]?\d))([-/]([0123]\d)?\d\d)?)'
    dmy = re.findall(eu, 'Alan Mathison Turing OBE FRS (23/6/1912-7/6/1954) was an English computer scientist.')
    print(dmy)
    dmy = re.findall(eu, 'Alan Mathison Turing OBE FRS (23/6/12-7/6/54) was an English computer scientist.')
    print(dmy)
    
    # 综合提取
    # 识别年份
    # 两位数表示的年份,30-99 = 1930-1999
    yr_19xx = (r'\b(?P<yr_19xx>' +
               '|'.join('{}'.format(i) for i in range(30, 100)) +
               r')\b')
    # 一位或者两位数表示的年份,01-30 = 2001-2030
    # 02d 格式一个整数( d )到最小宽度2( 2 )的字段,左侧填充零(前导 0 )
    yr_20xx = (r'\b(?P<yr_20xx>' +
               '|'.join('{:02d}'.format(i) for i in range(10)) + '|' +
               '|'.join('{}'.format(i) for i in range(10, 30)) +
               r')\b')
    # 3 位数或者 4 位数表示的年份的前几位数字,如“123 A.D.”中的“1”
    # 或者“2018”中的“20”
    yr_cent = r'\b(?P<yr_cent>' + '|'.join('{}'.format(i) for i in range(1, 40)) + r')'
    # 位数或者 4 位数表示的年份的后两位数字,如“123 A.D.”中的“23”
    # 或者“2018”中的“18”
    yr_ccxx = r'(?P<yr_ccxx>' + '|'.join('{:02d}'.format(i) for i in range(0, 100)) + r')\b'
    yr_xxxx = r'\b(?P<yr_xxxx>(' + yr_cent + ')(' + yr_ccxx + r'))\b'
    yr = (r'\b(?P<yr>' +
          yr_19xx + '|' + yr_20xx + '|' + yr_xxxx +
          r')\b')
    # finditer()函数实现每次只返回一个,并且返回所在的位置
    groups = list(re.finditer(yr, "0, 17, 2000, 01, '08, 99, 1984, 2030/1970 85 47 `66"))
    full_years = [g['yr'] for g in groups]
    print(full_years)
    
    # 用正则表达式识别月份名称
    mon_words = 'January February March April May June July August September October November December'
    mon = (r'\b(?P<mon>' + '|'.join('{}|{}|{}|{}|{:02d}'.format(m, m[:4], m[:3], i + 1, i + 1) for i, m in enumerate(mon_words.split())) + r')\b')
    print(re.findall(mon, 'January has 31 days, February the 2nd month of 12, has 28, except in a Leap Year.'))
    
    # 组合信息提取正则表达式
    day = r'(?P<day>' + '|'.join('{:02d}|{}'.format(i, i) for i in range(1, 32)) + r')\b'
    eu = (r'\b(' + day.replace('<day', '<eu_day') + r')\b[-,/ ]{0,2}\b(' + mon.replace('<mon', '<eu_mon') + r')\b[-,/ ]{0,2}\b(' + yr.replace('<yr', '<eu_yr') + r')\b')
    us = (r'\b(' + mon.replace('<mon', '<us_mon') + r')\b[-,/ ]{0,2}\b(' + day.replace('<day', '<us_day') + r')\b[-,/ ]{0,2}\b(' + yr.replace('<yr', '<us_yr') + r')\b')
    date_pattern = r'\b(' + eu + '|' + us + r')\b'
    print(list(re.finditer(date_pattern, '31 Oct, 1970 25/12/2017')))
    
    # 验证日期
    dates = []
    es_groups = list(re.finditer(date_pattern, "0, 12/25/2017, 2000, 01, '08, 99, 1984, 31/10/1970, 85 47 `66"))
    for g in es_groups:
        month_num = (g['us_mon'] or g['eu_mon']).strip()
        try:
            month_num = int(month_num)
        except ValueError:
            month_num = [w[:len(month_num)] for w in mon_words].index(month_num) + 1
        date = datetime.date(int(g['us_yr'] or g['eu_yr']), month_num, int(g['us_day'] or g['eu_day']))
        dates.append(date)
    print("dates:", dates)
    
    
    展开全文
  • 主要介绍了python自动提取文本中的时间(包含中文日期),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 假如文本:str="2016-08-10周三21:47:29包裹正在等待揽收 2016-08-11周四15:52:09【连云港市】圆通速递 江苏省连云港市赣榆县收件员 已揽件 15:53:38【连云港市】江苏...请问:使用js怎么将str日期都检索出来?谢谢
  • 构建项目运行 mvn clean install 要终止应用程序,请向进程发送... 用于从文本文档中提取句子。 已成功用于古腾堡计划文本。 使用启发式算法。 介绍 使用启发式算法从文本文档中提取句子。 建造 有一个 eclipse 项目
  • NLP 学习:从文本中提取时间

    千次阅读 2019-09-24 05:45:29
    ♚作者:jclian,喜欢算法,热爱分享,希望能结交更多志同道合的朋友,一起学习Python的道路上走得更远!  我们的日常生活和工作,从文本中提取时间是一项非常基...

    640?wx_fmt=jpeg


    作者:jclian,喜欢算法,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远!  

    在我们的日常生活和工作中,从文本中提取时间是一项非常基础却重要的工作,因此,本文将介绍如何从文本中有效地提取时间。

    6月28日,杭州市统计局权威公布《2019年5月月报》,杭州市医保参保人数达到1006万,相比于2月份的989万,三个月暴涨16万人参保,傲视新一线城市。

    我们可以从文本有提取6月28日2019年5月2月份这三个有效时间。cws.model和词性标注pos.model这两个模型文件。

    # -*- coding: utf-8 -*-
    
    import os
    from pyltp import Segmentor
    from pyltp import Postagger
    
    class LTP(object):
        def __init__(self):
            cws_model_path = os.path.join(os.path.dirname(__file__), 'cws.model')  # 分词模型路径,模型名称为`cws.model`
            pos_model_path = os.path.join(os.path.dirname(__file__), 'pos.model')  # 词性标注模型路径,模型名称为`pos.model`
            self.segmentor = Segmentor()  # 初始化实例
            self.segmentor.load(cws_model_path) # 加载模型
            self.postagger = Postagger()  # 初始化实例
            self.postagger.load(pos_model_path)  # 加载模型
    
        # 分词
        def segment(self, text):
            words = list(self.segmentor.segment(text))
            return words
    
        # 词性标注
        def postag(self, words):
            postags = list(self.postagger.postag(words))
            return postags
    
        # 获取文本中的时间
        def get_time(self, text):
    
            # 开始分词及词性标注
            words = self.segment(text)
            postags = self.postag(words)
    
            time_lst = []
    
            i = 0
            for tag, word in zip(postags, words):
                if tag == 'nt':
                    j = i
                    while postags[j] == 'nt' or words[j] in ['至', '到']:
                        j += 1
                    time_lst.append(''.join(words[i:j]))
                i += 1
    
            # 去重子字符串的情形
            remove_lst = []
            for i in time_lst:
                for j in time_lst:
                    if i != j and i in j:
                        remove_lst.append(i)
    
            text_time_lst = []
            for item in time_lst:
                if item not in remove_lst:
                    text_time_lst.append(item)
    
            # print(text_time_lst)
            return text_time_lst
    
        # 释放模型
        def free_ltp(self):
            self.segmentor.release()
            self.postagger.release()
    
    if __name__ == '__main__':
        ltp = LTP()
    
        # 输入文本
        sent = '6月28日,杭州市统计局权威公布《2019年5月月报》,杭州市医保参保人数达到1006万,相比于2月份的989万,三个月暴涨16万人参保,傲视新一线城市。'
        time_lst = ltp.get_time(sent)
        ltp.free_ltp()
    
        # 输出文本中提取的时间
        print('提取时间: %s' % str(time_lst))
    

    接着,我们测试几个例子。

    输入文本为:

    今天,央行举行了2019年6月份金融统计数据解读吹风会,发布了2019年6月份金融统计数据并就当前的一些热点问题进行了解读和回应。

    文本中提取的时间为:

    提取时间: ['今天', '2019年6月份', '2019年6月份', '当前']
    

    输入文本为:

    2006年,上海的国内生产总值达到10296.97亿元,是中国内地第一个GDP突破万亿元的城市。2008年,北京GDP破万亿。两年后,广州GDP超过万亿。2011年,深圳、天津、苏州、重庆4城的GDP也进入了万亿行列。武汉、成都在2014年跻身“万亿俱乐部”,杭州、南京和青岛、无锡和长沙的GDP依次在2015年、2016年和2017年过万亿。宁波和郑州则成为2018年万亿俱乐部的新成员。

    文本中提取的时间为:

    提取时间: ['2006年', '2008年', '2011年', '2014年', '2015年', '2016年', '2018年']
    

    输入文本为:

    此后,6月28日、7月9日和7月11日下午,武威市政协、市人大、市政府分别召开坚决全面彻底肃清火荣贵流毒和影响专题民主生活会。

    文本中提取的时间为:

    提取时间: ['此后', '6月28日', '7月9日', '7月11日下午']
    

    输入文本为:

    姜保红出生于1974年4月,她于2016年11月至2018年9月任武威市副市长,履新时,武威市的一把手正是火荣贵。

    文本中提取的时间为:

    
      

    本次分享到此结束,欢迎大家批评指正。

    展开全文
  • NLP入门(十一)从文本中提取时间

    千次阅读 2019-07-14 19:43:13
      我们的日常生活和工作,从文本中提取时间是一项非常基础却重要的工作,因此,本文将介绍如何从文本中有效地提取时间。   举个简单的例子,我们需要从下面的文本中提取时间: 6月28日,杭州市统计局权威...

      在我们的日常生活和工作中,从文本中提取时间是一项非常基础却重要的工作,因此,本文将介绍如何从文本中有效地提取时间。
      举个简单的例子,我们需要从下面的文本中提取时间:

    6月28日,杭州市统计局权威公布《2019年5月月报》,杭州市医保参保人数达到1006万,相比于2月份的989万,三个月暴涨16万人参保,傲视新一线城市。

    我们可以从文本有提取6月28日2019年5月2月份这三个有效时间。
      通常情况下,较好的解决思路是利用深度学习模型来识别文本中的时间,通过一定数量的标记文本和合适的模型。本文尝试利用现有的NLP工具来解决如何从文本中提取时间。
      本文使用的工具为哈工大的pyltp,可以在Python的第三方模块中找到,实现下载好分词模型cws.model和词性标注pos.model这两个模型文件。
      话不多说,我们直接上Python代码,如下:

    # -*- coding: utf-8 -*-
    
    import os
    from pyltp import Segmentor
    from pyltp import Postagger
    
    class LTP(object):
        def __init__(self):
            cws_model_path = os.path.join(os.path.dirname(__file__), 'cws.model')  # 分词模型路径,模型名称为`cws.model`
            pos_model_path = os.path.join(os.path.dirname(__file__), 'pos.model')  # 词性标注模型路径,模型名称为`pos.model`
            self.segmentor = Segmentor()  # 初始化实例
            self.segmentor.load(cws_model_path) # 加载模型
            self.postagger = Postagger()  # 初始化实例
            self.postagger.load(pos_model_path)  # 加载模型
    
        # 分词
        def segment(self, text):
            words = list(self.segmentor.segment(text))
            return words
    
        # 词性标注
        def postag(self, words):
            postags = list(self.postagger.postag(words))
            return postags
    
        # 获取文本中的时间
        def get_time(self, text):
    
            # 开始分词及词性标注
            words = self.segment(text)
            postags = self.postag(words)
    
            time_lst = []
    
            i = 0
            for tag, word in zip(postags, words):
                if tag == 'nt':
                    j = i
                    while postags[j] == 'nt' or words[j] in ['至', '到']:
                        j += 1
                    time_lst.append(''.join(words[i:j]))
                i += 1
    
            # 去重子字符串的情形
            remove_lst = []
            for i in time_lst:
                for j in time_lst:
                    if i != j and i in j:
                        remove_lst.append(i)
    
            text_time_lst = []
            for item in time_lst:
                if item not in remove_lst:
                    text_time_lst.append(item)
    
            # print(text_time_lst)
            return text_time_lst
    
        # 释放模型
        def free_ltp(self):
            self.segmentor.release()
            self.postagger.release()
    
    if __name__ == '__main__':
        ltp = LTP()
    
        # 输入文本
        sent = '6月28日,杭州市统计局权威公布《2019年5月月报》,杭州市医保参保人数达到1006万,相比于2月份的989万,三个月暴涨16万人参保,傲视新一线城市。'
        time_lst = ltp.get_time(sent)
        ltp.free_ltp()
    
        # 输出文本中提取的时间
        print('提取时间: %s' % str(time_lst))
    

      接着,我们测试几个例子。

    输入文本为:

    今天,央行举行了2019年6月份金融统计数据解读吹风会,发布了2019年6月份金融统计数据并就当前的一些热点问题进行了解读和回应。

    文本中提取的时间为:

    提取时间: ['今天', '2019年6月份', '2019年6月份', '当前']
    

    输入文本为:

    2006年,上海的国内生产总值达到10296.97亿元,是中国内地第一个GDP突破万亿元的城市。2008年,北京GDP破万亿。两年后,广州GDP超过万亿。2011年,深圳、天津、苏州、重庆4城的GDP也进入了万亿行列。武汉、成都在2014年跻身“万亿俱乐部”,杭州、南京和青岛、无锡和长沙的GDP依次在2015年、2016年和2017年过万亿。宁波和郑州则成为2018年万亿俱乐部的新成员。

    文本中提取的时间为:

    提取时间: ['2006年', '2008年', '2011年', '2014年', '2015年', '2016年', '2018年']
    

    输入文本为:

    此后,6月28日、7月9日和7月11日下午,武威市政协、市人大、市政府分别召开坚决全面彻底肃清火荣贵流毒和影响专题民主生活会。

    文本中提取的时间为:

    提取时间: ['此后', '6月28日', '7月9日', '7月11日下午']
    

    输入文本为:

    姜保红出生于1974年4月,她于2016年11月至2018年9月任武威市副市长,履新时,武威市的一把手正是火荣贵。

    文本中提取的时间为:

    提取时间: ['1974年4月', '2016年11月至2018年9月']
    

      本次分享到此结束,欢迎大家批评指正。

    注意:不妨了解下笔者的微信公众号: Python爬虫与算法(微信号为:easy_web_scrape), 欢迎大家关注~

    展开全文
  • 正则表达式提取文本日期

    千次阅读 2012-11-22 16:26:00
    接到需求,将数据库里面的一些标题数据含有日期的给提取出来,利用提取的时间和当前时间来计算时间间隔,本像利用sql 的patindex等函数来提取,发现sql来写比较繁琐,后用正则表达式结合C#实现,本文主要记录正则...
  • 一个data文件夹存在多个指定格式的TXT文本文件,可以按照人员和数据的日期提取自己所需要的数据,更改源码可以实现不同格式的数据的提取。 注意事项: 1、开发环境为Visual Studio 2010,使用.net 2.0开发 ...
  • Xponents是一组信息提取库,包括提取和规范化地理实体,日期/时间模式,关键字/分类法和各种模式。 例如,如图1所示: 图1.通用标记和编码范例。 文本 提取实体 归一化的名义输出 “博伊西,身份证很有趣!” ...
  • 还是年报问询函的研究,需要从问询函文本中提取交易所要求回复的日期,同时还需要从公司回复的文本中提取公司实际上回复的日期。因此需要对两类文本分别进行分析。 解决思路 通过观察,发现问询函含有交易所要求...
  • 一个data文件夹存在多个指定格式的TXT文本文件,可以按照人员和数据的日期提取自己所需要的数据,更改源码可以实现不同格式的数据的提取。注意事项:1、开发环境为Visual Studio 2010,使用.net 2.0开发
  • python文本时间提取

    千次阅读 2020-05-29 14:19:48
    = word: return check_time_valid(word1) else: return word1 time_extract对句子进行解析,提取其中所有能表示日期时间的词,并进行上下文拼接,如词性标注完后出现“今天/t 住/v 到/v 明天/t 下午/t 3/m点/m”,...
  • NLTK学习笔记(七):文本信息提取

    千次阅读 2017-06-19 22:13:48
    命名实体识别和信息提取 如何构建一个系统,用于从非结构化的文本中提取结构化的信息和数据?哪些方法使用这类行为?哪些语料库适合这项工作?是否可以训练和评估模型? 信息提取,特别是结构化信息提取,可以类比...
  • 3. 如果你想让某列按日期范围导出数据,就能按某列的日期范围导出数据; 4. 如果你想按某列的数值大小范围导出数据,就能按某列的数值范围导出数据; 5. 如果你想按某列文本前缀包含什么内容,就能按设定的前缀...
  • 想从中提取出年月201605.我写了一个正则表达式是这样的@"^\d{6}$"不知道怎么匹配 不了,文件名不定是这么个长度的,可能就是前面一串字符,中间一段日期数字,最后 是.bin.bz2,求大神帮忙写个给我,谢谢。 然后...
  • 利用java从docx文档中提取文本内容

    千次阅读 2018-06-18 21:26:30
    利用java从docx文档中提取文本内容 使用Apache的第三方jar包,地址为https://poi.apache.org/ docx文档内容如图: 目录结构: 每个文件夹的名称为日期加上来源,例如:20180618医院,每个docx文档的名称是被...
  • 提取日期中的年月日及其他格式 提取年:datepart(yy,getdate()) 提取月:datepart(mm,getdate()) 提取日:datepart(dd,getdate()) 提取日期格式: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM ...
  • 我正在与必读的数据驱动的意见书合作(发布日期待定)。 我对 Eatiht 和更多内容提取器进行了基准测试; 你可以按照 . 阅读对 Eatiht 进行基准测试的文章,以及其他一些用 Python 编写的内容提取器。 关注我 :) ###...
  • jieba分词,连接数据库,分析数据库文本,并提取时间、地点、目标,整个完整流程/
  • JAVA正则提取字符串日期

    千次阅读 2021-04-01 23:22:06
    我们解析字符串的时候,有这么一个需求,需要提取字符日期,例如:"开奖日期:2021年3月28日 兑奖截止日期:2021年5月26日" 输入样例: 开奖日期:2021年3月28日 兑奖截止日期:2021年5月26日 输出样例:...
  • Python日期实体提取

    千次阅读 2019-12-04 21:16:44
    用户的语音发送给后台进行请求时已经转换成中文文本,然而由于语音转换工具的识别问题,许多日期类的数据并不是严格的数字,会出现诸如“六月12”“2016年八月”“20160812”“后天下午”等形式。 例如“我要今天...
  • 提取日期前的处理 处理文本数据的日期格式统一化 text = "2015年8月31日,衢州元立金属制品有限公司仓储公司(以下简称元立仓储公司)成品仓库发生一起物体打击事故,造成直接经济损失95万元。" text1 = "2015/12/...
  • 程序来解析任何输入文本提取它包含的每个日期并计算日期日期必须是精确的,包括日、月和年。 示例文本 : Maven·李·明斯基数学系谱项目; 2014 年 5 月 20 日,Marvin Lee Minsky AI 谱系项目。 {重印...
  • 本博文将一个文本中的金额信息利用正则式和分句的方式提取出来。对于一个文本而言文本内容包含的信息多种多样,往往我们感兴趣的关键信息都只是简单的几个字符或者一个简单的句子,基于这样的应用场景对于一个上万字...
  • 数据格式 old.txt 2695350881|20190204|00250990da50|2553358|714165|0|0|0|0|1549323678|0|\N|0|0|0 ...按日期提取(可指定多少行,可指定多个日期) # 查看某个日期记录的行数 grep 20190204 old.txt ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,369
精华内容 21,347
关键字:

在文本中提取日期