time_npl_timebeginperiod

2022-11-17 14:40:59 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

文章目录
  • 作用
  • 1 准备
    • 1.1 LunarSolarConverter.py
    • 1.2 RangeTimeEnum.py
    • 1.3 StringPreHandler.py
    • 1.4 TimeNoemalizer.py
    • 1.5 TimeUnit.py
  • 2 测试
  • 3 时间的正则表达式regex.txt
  • 4、使用方法
  • 5、rake.py自动关键字提取算法
    • 5.1 枚举
    • 5.2 快速自动关键词提取算法

信息来源Coconlp

作用

用于句子中时间词的抽取和转换

代码语言:javascript复制
    res = tn.parse(target=u'过十分钟') # target为待分析语句,timeBase为基准时间默认是当前时间
    print(res)
    res = tn.parse(target=u'2013年二月二十八日下午四点三十分二十九秒', timeBase='2013-02-28 16:30:29') # target为待分析语句,timeBase为基准时间默认是当前时间
    print(res)
    res = tn.parse(target=u'我需要大概33天2分钟四秒', timeBase='2013-02-28 16:30:29') # target为待分析语句,timeBase为基准时间默认是当前时间
    print(res)
    res = tn.parse(target=u'今年儿童节晚上九点一刻') # target为待分析语句,timeBase为基准时间默认是当前时间
    print(res)
    res = tn.parse(target=u'2个小时以前') # target为待分析语句,timeBase为基准时间默认是当前时间
    print(res)
    res = tn.parse(target=u'晚上8点到上午10点之间') # target为待分析语句,timeBase为基准时间默认是当前时间
    print(res)

返回结果:

代码语言:javascript复制
    {"timedelta": "0 days, 0:10:00", "type": "timedelta"}
    {"timestamp": "2013-02-28 16:30:29", "type": "timestamp"}
    {"type": "timedelta", "timedelta": {"year": 0, "month": 1, "day": 3, "hour": 0, "minute": 2, "second": 4}}
    {"timestamp": "2018-06-01 21:15:00", "type": "timestamp"}
    {"error": "no time pattern could be extracted."}
    {"type": "timespan", "timespan": ["2018-03-16 20:00:00", "2018-03-16 10:00:00"]}

1 准备

1.1 LunarSolarConverter.py

1、阴历、阳历的初始化 2、阳历、阴历的数据表、以及额外数据(如离元旦多少天) 3、阴历、阳历的转换

1.2 RangeTimeEnum.py

枚举范围时间的默认时间点

代码语言:javascript复制
    day_break = 3  # 黎明
    early_morning = 8  # 早
    morning = 10  # 上午
    noon = 12  # 中午、午间
    afternoon = 15  # 下午、午后
    night = 18  # 晚上、傍晚
    lateNight = 20  # 晚、晚间
    midNight = 23  # 深夜

1.3 StringPreHandler.py

字符串的预处理

1、删除一字符串中所有匹配某一规则字串,清理一个字符串中的空白符和语气助词 2、将字符串中所有的用汉字表示的数字转化为用阿拉伯数字表示的数字

代码语言:javascript复制
"这里有一千两百个人,六百零五个来自中国"可以转化为"这里有1200个人,605个来自中国"
一六零加一五八可以转化为160 158

3、将[零-九]正确翻译为[0-9]

1.4 TimeNoemalizer.py

时间表达式识别

1、对一些不规范的表达做转换,如下个周末改为下周末,如中旬改为15号 2、确定一个基准时间,如系统时间作为基准,来获取当前时间,如,公告有效时间3天,即从公告发布时间延续三天。获取新的时间单元数组 3、待匹配字符串的清理空白符和语气助词以及大写数字转化的预处理 4、时间上下文: 前一个识别出来的时间会是下一个时间的上下文,用于处理:周六3点到5点这样的多个时间的识别,第二个5点应识别到是周六的。 5、过滤timeUnit中无用的识别词。无用识别词识别出的时间是1970.01.01 00:00:00(fastTime=0)

1.5 TimeUnit.py

时间语句分析 1、判断是时间点还是时间区间 2、年-规范化方法–识别时间表达式单元的年字段 3、月-规范化方法–识别时间表达式单元的月字段 4、月-日 兼容模糊写法:识别时间表达式单元的月、日字段 5、日-规范化方法:识别时间表达式单元的日字段 6、时-规范化方法:识别时间表达式单元的时字段

代码语言:javascript复制
    # * 对关键字:早(包含早上/早晨/早间),上午,中午,午间,下午,午后,晚上,傍晚,晚间,晚,pm,PM的正确时间计算
        # * 规约:
        # * 1.中午/午间0-10点视为12-22点
        # * 2.下午/午后0-11点视为12-23点
        # * 3.晚上/傍晚/晚间/晚1-11点视为13-23点,12点视为0点
        # * 4.0-11点pm/PM视为12-23点

7、分-规范化方法:识别时间表达式单元的分字段 8、特殊形式的规范化方法-识别特殊形式的时间表达式单元的各个字段 9、处理未来时间:更新timeBase使之具有上下文关联性 10、根据上下文时间补充时间信息

2 测试

代码语言:javascript复制
from  cocoNLP.config.basic.time_nlp.TimeNormalizer import TimeNormalizer # 引入包

tn = TimeNormalizer()

res = tn.parse(target=u'晚上8点到上午10点之间') # target为待分析语句,timeBase为基准时间默认是当前时间
print(res)

res = tn.parse(target=u'2013年二月二十八日下午四点三十分二十九秒', timeBase='2013-02-28 16:30:29') # target为待分析语句,timeBase为基准时间默认是当前时间
print(res)

res = tn.parse(target=u'我需要大概33天2分钟四秒', timeBase='2013-02-28 16:30:29') # target为待分析语句,timeBase为基准时间默认是当前时间
print(res)

res = tn.parse(target=u'今年儿童节晚上九点一刻') # target为待分析语句,timeBase为基准时间默认是当前时间
print(res)

res = tn.parse(target=u'三日') # target为待分析语句,timeBase为基准时间默认是当前时间
print(res)

res = tn.parse(target=u'7点4') # target为待分析语句,timeBase为基准时间默认是当前时间
print(res)

res = tn.parse(target=u'今年春分')
print(res)

测试结果

3 时间的正则表达式regex.txt

代码语言:javascript复制
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* ((前|昨|今|明|后)(天|日)?(早|晚)(晨|上|间)?)|(d 个?[年月日天][以之]?[前后])|(d 个?半?(小时|钟头|h|H))|(半个?(小时|钟头))|(d (分钟|min))|([13]刻钟)|((上|这|本|下) (周|星期)([一二三四五六七天日]|[1-7])?)|((周|星期)([一二三四五六七天日]|[1-7]))|((早|晚)?([0-2]?[0-9](点|时)半)(am|AM|pm|PM)?)|((早|晚)?(d [::]d ([::]d )*)s*(am|AM|pm|PM)?)|((早|晚)?([0-2]?[0-9](点|时)[13一三]刻)(am|AM|pm|PM)?)|((早|晚)?(d [时点](d )?分?(d 秒?)?)s*(am|AM|pm|PM)?)|(大 (前|后)天)|(([零一二三四五六七八九十百千万] |d )世)|([0-9]?[0-9]?[0-9]{2}.((10)|(11)|(12)|([1-9])).((?<!\d))([0-3][0-9]|[1-9]))|(现在)|(届时)|(这个月)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)日)|(晚些时候)|(今年)|(长期)|(以前)|(过去)|(时期)|(时代)|(当时)|(近来)|(([零一二三四五六七八九十百千万] |d )夜)|(当前)|(日(数|多|多少|好几|几|差不多|近|前|后|上|左右))|((d )点)|(今年([零一二三四五六七八九十百千万] |d ))|(d [::]d (分|))|((d ):(d ))|(d /d /d )|(未来)|((充满美丽、希望、挑战的)?未来)|(最近)|(早上)|(早(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(日前)|(新世纪)|(小时)|(([0-3][0-9]|[1-9])(日|号))|(明天)|(([0-3][0-9]|[1-9])[日号])|((数|多|多少|好几|几|差不多|近|前|后|上|左右)周)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )年)|([一二三四五六七八九十百千万几多] [天日周月年][后前左右]*)|(每[年月日天小时分秒钟] )|((d 分) (d 秒)?)|([一二三四五六七八九十] 来?[岁年])|([新?|d*]世纪末?)|((d )时)|(世纪)|(([零一二三四五六七八九十百千万] |d )岁)|(今年)|([星期周] [一二三四五六七])|(星期([零一二三四五六七八九十百千万] |d ))|(([零一二三四五六七八九十百千万] |d )年)|([本后昨当新后明今去前那这][一二三四五六七八九十]?[年月日天])|(早|早晨|早上|上午|中午|午后|下午|晚上|晚间|夜里|夜|凌晨|深夜)|(回归前后)|((d 点) (d 分)?(d 秒)?左右?)|((d )年代)|(本月(d ))|(第(d )天)|((d )岁)|((d )年(d )月)|([去今明]?[年月](底|末))|(([零一二三四五六七八九十百千万] |d )世纪)|(昨天(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(年度)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)星期)|(年底)|([下个本] 赛季)|(今年(d )月(d )日)|((d )月(d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午(d )时)|(今年晚些时候)|(两个星期)|(过去(数|多|多少|好几|几|差不多|近|前|后|上|左右)周)|(本赛季)|(半个(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(稍晚)|((d )号晚(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(今(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d )年)|(这个时候)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)个小时)|(最(数|多|多少|好几|几|差不多|近|前|后|上|左右)(数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(凌晨)|((d )年(d )月(d )日)|((d )个月)|(今天早(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(第[一二三四五六七八九十d ] 季)|(当地时间)|(今(数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )年)|(早晨)|(一段时间)|([本上]周[一二三四五六七])|(凌晨(d )点)|(去年(d )月(d )日)|(年关)|(如今)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)小时)|(当晚)|((d )日晚(d )时)|(([零一二三四五六七八九十百千万] |d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(每年(d )月(d )日)|(([零一二三四五六七八九十百千万] |d )周)|((d )月)|(农历)|(两个小时)|(本周([零一二三四五六七八九十百千万] |d ))|(长久)|(清晨)|((d )号晚)|(春节)|(星期日)|(圣诞)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)段)|(现年)|(当日)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)分钟)|(d (天|日|周|月|年)(后|前|))|((文艺复兴|巴洛克|前苏联|前一|暴力和专制|成年时期|古罗马|我们所处的敏感) 时期)|((d )[年月天])|(清早)|(两年)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(昨天(数|多|多少|好几|几|差不多|近|前|后|上|左右)午(d )时)|(([零一二三四五六七八九十百千万] |d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(今(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d ))|(圣诞节)|(学期)|(d 来?分钟)|(过去(数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(星期天)|(夜间)|((d )日凌晨)|(([零一二三四五六七八九十百千万] |d )月底)|(当天)|((d )日)|(((10)|(11)|(12)|([1-9]))月)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)(数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(今年(d )月份)|(晚(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d )时)|(连[年月日夜])|((d )年(d )月(d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|((一|二|两|三|四|五|六|七|八|九|十|百|千|万|几|多|上|d ) 个?(天|日|周|月|年)(后|前|半|))|((胜利的)日子)|(青春期)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(早(数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )点(数|多|多少|好几|几|差不多|近|前|后|上|左右))|([0-9]{4}年)|(周末)|(([零一二三四五六七八九十百千万] |d )个(数|多|多少|好几|几|差不多|近|前|后|上|左右)小时)|(([(小学)|初中?|高中?|大学?|研][一二三四五六七八九十]?(d )?)?[上下]半?学期)|(([零一二三四五六七八九十百千万] |d )时期)|(午间)|(次年)|(这时候)|(农历新年)|([春夏秋冬](天|季))|((d )天)|(元宵节)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)分)|((d )月(d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(晚(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d )时(d )分)|(傍晚)|(周([零一二三四五六七八九十百千万] |d ))|((数|多|多少|好几|几|差不多|近|前|后|上|左右)午(d )时(d )分)|(同日)|((d )年(d )月底)|((d )分钟)|((d )世纪)|(冬季)|(清明)(节)?|(立春)|(雨水)|(惊蛰)|(春分)|(谷雨)|(立夏)|(小满 )|(芒种)|(夏至)|(小暑)|(大暑)|(立秋)|(处暑)|(白露)|(秋分)|(寒露)|(霜降)|(立冬)|(小雪)|(大雪)|(冬至)|(小寒)|(大寒)|(青年节)|(教师节)|(中元节)|(端午)(节)?|(劳动节)|(7夕)(节)?|(建党节)|(建军节)|(初13)|(初14)|(初15)|(初12)|(初11)|(初9)|(初8)|(初7)|(初6)|(初5)|(初4)|(初3)|(初2)|(初1)|(情人节)|(母亲节)|(中和节)|(圣诞)(节)?|(中秋)(节)?|(春节)|(元宵)(节)?|(航海日)|(儿童节)|(国庆)(节)?|(植树节)|(元旦)|(重阳节)|(妇女节)|(记者节)|(年代)|(([零一二三四五六七八九十百千万] |d )年半)|(今年年底)|(新年)|(本周)|(当地时间星期([零一二三四五六七八九十百千万] |d ))|(([零一二三四五六七八九十百千万] |d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)岁)|(半小时)|(每周)|(([零一二三四五六七八九十百千万] |d )周年)|((重要|最后)?时刻)|(([零一二三四五六七八九十百千万] |d )期间)|(周日)|(晚(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(今后)|(([零一二三四五六七八九十百千万] |d )段时间)|(明年)|([12][09][0-9]{2}(年度?((前|昨|今|明|后)(天|日)?(早|晚)(晨|上|间)?)|(d 个?[年月日天][以之]?[前后])|(d 个?半?(小时|钟头|h|H))|(半个?(小时|钟头))|(d (分钟|min))|([13]刻钟)|((上|这|本|下) (周|星期)([一二三四五六七天日]|[1-7])?)|((周|星期)([一二三四五六七天日]|[1-7]))|((早|晚)?([0-2]?[0-9](点|时)半)(am|AM|pm|PM)?)|((早|晚)?(d [::]d ([::]d )*)s*(am|AM|pm|PM)?)|((早|晚)?([0-2]?[0-9](点|时)[13一三]刻)(am|AM|pm|PM)?)|((早|晚)?(d [时点](d )?分?(d 秒?)?)s*(am|AM|pm|PM)?)|(大 (前|后)天)|(([零一二三四五六七八九十百千万] |d )世)|([0-9]?[0-9]?[0-9]{2}.((10)|(11)|(12)|([1-9])).((?<!d))([0-3][0-9]|[1-9]))|(现在)|(届时)|(这个月)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)日)|(晚些时候)|(今年)|(长期)|(以前)|(过去)|(时期)|(时代)|(当时)|(近来)|(([零一二三四五六七八九十百千万] |d )夜)|(当前)|(日(数|多|多少|好几|几|差不多|近|前|后|上|左右))|((d )点)|(今年([零一二三四五六七八九十百千万] |d ))|(d [::]d (分|))|((d ):(d ))|(d /d /d )|(未来)|((充满美丽、希望、挑战的)?未来)|(最近)|(早上)|(早(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(日前)|(新世纪)|(小时)|(([0-3][0-9]|[1-9])(日|号))|(明天)|(d )月|(([0-3][0-9]|[1-9])[日号])|((数|多|多少|好几|几|差不多|近|前|后|上|左右)周)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )年)|([一二三四五六七八九十百千万几多] [天日周月年][后前左右]*)|(每[年月日天小时分秒钟] )|((d 分) (d 秒)?)|([一二三四五六七八九十] 来?[岁年])|([新?|d*]世纪末?)|((d )时)|(世纪)|(([零一二三四五六七八九十百千万] |d )岁)|(今年)|([星期周] [一二三四五六七])|(星期([零一二三四五六七八九十百千万] |d ))|(([零一二三四五六七八九十百千万] |d )年)|([本后昨当新后明今去前那这][一二三四五六七八九十]?[年月日天])|(早|早晨|早上|上午|中午|午后|下午|晚上|晚间|夜里|夜|凌晨|深夜)|(回归前后)|((d 点) (d 分)?(d 秒)?左右?)|((d )年代)|(本月(d ))|(第(d )天)|((d )岁)|((d )年(d )月)|([去今明]?[年月](底|末))|(([零一二三四五六七八九十百千万] |d )世纪)|(昨天(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(年度)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)星期)|(年底)|([下个本] 赛季)|(d )月(d )日|(d )月(d )|(今年(d )月(d )日)|((d )月(d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午(d )时)|(今年晚些时候)|(两个星期)|(过去(数|多|多少|好几|几|差不多|近|前|后|上|左右)周)|(本赛季)|(半个(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(稍晚)|((d )号晚(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(今(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d )年)|(这个时候)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)个小时)|(最(数|多|多少|好几|几|差不多|近|前|后|上|左右)(数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(凌晨)|((d )年(d )月(d )日)|((d )个月)|(今天早(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(第[一二三四五六七八九十d ] 季)|(当地时间)|(今(数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )年)|(早晨)|(一段时间)|([本上]周[一二三四五六七])|(凌晨(d )点)|(去年(d )月(d )日)|(年关)|(如今)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)小时)|(当晚)|((d )日晚(d )时)|(([零一二三四五六七八九十百千万] |d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(每年(d )月(d )日)|(([零一二三四五六七八九十百千万] |d )周)|((d )月)|(农历)|(两个小时)|(本周([零一二三四五六七八九十百千万] |d ))|(长久)|(清晨)|((d )号晚)|(春节)|(星期日)|(圣诞)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)段)|(现年)|(当日)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)分钟)|(d (天|日|周|月|年)(后|前|))|((文艺复兴|巴洛克|前苏联|前一|暴力和专制|成年时期|古罗马|我们所处的敏感) 时期)|((d )[年月天])|(清早)|(两年)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(昨天(数|多|多少|好几|几|差不多|近|前|后|上|左右)午(d )时)|(([零一二三四五六七八九十百千万] |d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(今(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d ))|(圣诞节)|(学期)|(d 来?分钟)|(过去(数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(星期天)|(夜间)|((d )日凌晨)|(([零一二三四五六七八九十百千万] |d )月底)|(当天)|((d )日)|(((10)|(11)|(12)|([1-9]))月)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)(数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(今年(d )月份)|(晚(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d )时)|(连[年月日夜])|((d )年(d )月(d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|((一|二|两|三|四|五|六|七|八|九|十|百|千|万|几|多|上|d ) 个?(天|日|周|月|年)(后|前|半|))|((胜利的)日子)|(青春期)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(早(数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )点(数|多|多少|好几|几|差不多|近|前|后|上|左右))|([0-9]{4}年)|(周末)|(([零一二三四五六七八九十百千万] |d )个(数|多|多少|好几|几|差不多|近|前|后|上|左右)小时)|(([(小学)|初中?|高中?|大学?|研][一二三四五六七八九十]?(d )?)?[上下]半?学期)|(([零一二三四五六七八九十百千万] |d )时期)|(午间)|(次年)|(这时候)|(农历新年)|([春夏秋冬](天|季))|((d )天)|(元宵节)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)分)|((d )月(d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(晚(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d )时(d )分)|(傍晚)|(周([零一二三四五六七八九十百千万] |d ))|((数|多|多少|好几|几|差不多|近|前|后|上|左右)午(d )时(d )分)|(同日)|((d )年(d )月底)|((d )分钟)|((d )世纪)|(冬季)|(年代)|(([零一二三四五六七八九十百千万] |d )年半)|(今年年底)|(新年)|(本周)|(当地时间星期([零一二三四五六七八九十百千万] |d ))|(([零一二三四五六七八九十百千万] |d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)岁)|(半小时)|(每周)|(([零一二三四五六七八九十百千万] |d )周年)|((重要|最后)?时刻)|(([零一二三四五六七八九十百千万] |d )期间)|(周日)|(晚(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(今后)|(([零一二三四五六七八九十百千万] |d )段时间)|(明年)|([12][09][0-9]{2}(年度?))|(([零一二三四五六七八九十百千万] |d )生)|(今天凌晨)|(过去(d )年)|(元月)|((d )月(d )日凌晨)|([前去今明后新] 年)|((d )月(d ))|(夏天)|((d )日凌晨(d )时许)|((d )月(d )日)|((d )点半)|(去年底)|(最后一[天刻])|(最(数|多|多少|好几|几|差不多|近|前|后|上|左右)(数|多|多少|好几|几|差不多|近|前|后|上|左右)个月)|(圣诞节?)|(下?个?(星期|周)(一|二|三|四|五|六|七|天))|((d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(当天(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(每年的(d )月(d )日)|((d )日晚(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(星期([零一二三四五六七八九十百千万] |d )晚)|(深夜)|(现如今)|([上中下] 午)|(第(一|二|三|四|五|六|七|八|九|十|百|千|万|几|多|d ) 个?(天|日|周|月|年))|(昨晚)|(近年)|(今天清晨)|(中旬)|(星期([零一二三四五六七八九十百千万] |d )早)|(([零一二三四五六七八九十百千万] |d )战期间)|(星期)|(昨天晚(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(较早时)|(个(数|多|多少|好几|几|差不多|近|前|后|上|左右)小时)|((民主高中|我们所处的|复仇主义和其它危害人类的灾难性疾病盛行的|快速承包电影主权的|恢复自我美德|人类审美力基础设施|饱受暴力、野蛮、流血、仇恨、嫉妒的|童年|艰苦的童年) 时代)|(元旦)|(([零一二三四五六七八九十百千万] |d )个礼拜)|(昨日)|([年月]初)|((d )年的(d )月)|(每年)|(([零一二三四五六七八九十百千万] |d )月份)|(今年(d )月(d )号)|(今年([零一二三四五六七八九十百千万] |d )月)|((d )月底)|(未来(d )年)|(第([零一二三四五六七八九十百千万] |d )季)|(d?多年)|(([零一二三四五六七八九十百千万] |d )个星期)|((d )年([零一二三四五六七八九十百千万] |d )月)|([下上中]午)|(早(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d )点)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)月)|(([零一二三四五六七八九十百千万] |d )个(数|多|多少|好几|几|差不多|近|前|后|上|左右)月)|(同([零一二三四五六七八九十百千万] |d )天)|((d )号凌晨)|(夜里)|(两个(数|多|多少|好几|几|差不多|近|前|后|上|左右)小时)|(昨天)|(罗马时代)|(目(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(([零一二三四五六七八九十百千万] |d )月)|((d )年(d )月(d )号)|(((10)|(11)|(12)|([1-9]))月份?)|([12][0-9]世纪)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )天)|(工作日)|(稍后)|((d )号(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(未来([零一二三四五六七八九十百千万] |d )年)|([0-9] [天日周月年][后前左右]*)|(([零一二三四五六七八九十百千万] |d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(最(数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )刻)|(很久)|((d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)岁)|(去年(d )月(d )号)|(两个月)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)午(d )时)|(古代)|(两天)|(d 个?(小时|星期))|((d )年半)|(较早)|(([零一二三四五六七八九十百千万] |d )个小时)|([一二三四五六七八九十] 周年)|(星期([零一二三四五六七八九十百千万] |d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(时刻)|((d 天) (d 点)?(d 分)?(d 秒)?)|((d )日([零一二三四五六七八九十百千万] |d )时)|((d )周年)|(([零一二三四五六七八九十百千万] |d )早)|(([零一二三四五六七八九十百千万] |d )日)|(去年(d )月)|(过去([零一二三四五六七八九十百千万] |d )年)|((d )个星期)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)(数|多|多少|好几|几|差不多|近|前|后|上|左右)天)|(执政期间)|([当前昨今明后春夏秋冬] 天)|(去年(d )月份)|(今(数|多|多少|好几|几|差不多|近|前|后|上|左右))|((d )周)|(两星期)|(([零一二三四五六七八九十百千万] |d )年代)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)天)|(昔日)|(两个半月)|([印尼|北京|美国]?当地时间)|(连日)|(本月(d )日)|(第([零一二三四五六七八九十百千万] |d )天)|((d )点(d )分)|([长近多]年)|((d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午(d )时)|(那时)|(冷战时代)|(([零一二三四五六七八九十百千万] |d )天)|(这个星期)|(去年)|(昨天傍晚)|(近期)|(星期([零一二三四五六七八九十百千万] |d )早些时候)|((d )([零一二三四五六七八九十百千万] |d )年)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)两个月)|((d )个小时)|(([零一二三四五六七八九十百千万] |d )个月)|(当年)|(本月)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )个月)|((d )点(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(目前)|(去年([零一二三四五六七八九十百千万] |d )月)|((d )时(d )分)|(每月)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)段时间)|((d )日晚)|(早(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d )点(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(下旬)|((d )月份)|(逐年)|(稍(数|多|多少|好几|几|差不多|近|前|后|上|左右))|((d )年)|(月底)|(这个月)|((d )年(d )个月)|(d 大寿)|(周([零一二三四五六七八九十百千万] |d )早(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(半年)|(今日)|(末日)|(昨天深夜)|(今年(d )月)|((d )月(d )号)|((d )日夜)|((早些|某个|晚间|本星期早些|前些) 时候)|(同年)|((北京|那个|更长的|最终冲突的)时间)|(每个月)|(一早)|((d )来?[岁年])|((数|多|多少|好几|几|差不多|近|前|后|上|左右)个月)|([鼠牛虎兔龙蛇马羊猴鸡狗猪]年)|(季度)|(早些时候)|(今天)|(每天)|(年半)|(午后)|((d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)个星期)|(今天(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(同[一二三四五六七八九十][年|月|天])|(Td :d :d )|(d /d /d :d :d .d )|(????-??-??Td :d :d )|(d -d -d Td :d :d )|(d /d /d  d :d :d .d )|(d -d -d |[0-9]{8})|(((d )年)?((10)|(11)|(12)|([1-9]))月(d ))|((d[.-])?((10)|(11)|(12)|([1-9]))[.-](d ))))|(([零一二三四五六七八九十百千万] |d )生)|(今天凌晨)|(过去(d )年)|(元月)|((d )月(d )日凌晨)|([前去今明后新] 年)|((d )月(d ))|(夏天)|((d )日凌晨(d )时许)|((d )月(d )日)|((d )点半)|(去年底)|(最后一[天刻])|(最(数|多|多少|好几|几|差不多|近|前|后|上|左右)(数|多|多少|好几|几|差不多|近|前|后|上|左右)个月)|(圣诞节?)|(下?个?(星期|周)(一|二|三|四|五|六|七|天))|((d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)年)|(当天(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(每年的(d )月(d )日)|((d )日晚(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(星期([零一二三四五六七八九十百千万] |d )晚)|(深夜)|(现如今)|([上中下] 午)|(第(一|二|三|四|五|六|七|八|九|十|百|千|万|几|多|d ) 个?(天|日|周|月|年))|(昨晚)|(近年)|(今天清晨)|(中旬)|(星期([零一二三四五六七八九十百千万] |d )早)|(([零一二三四五六七八九十百千万] |d )战期间)|(星期)|(昨天晚(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(较早时)|(个(数|多|多少|好几|几|差不多|近|前|后|上|左右)小时)|((民主高中|我们所处的|复仇主义和其它危害人类的灾难性疾病盛行的|快速承包电影主权的|恢复自我美德|人类审美力基础设施|饱受暴力、野蛮、流血、仇恨、嫉妒的|童年|艰苦的童年) 时代)|(元旦)|(([零一二三四五六七八九十百千万] |d )个礼拜)|(昨日)|([年月]初)|((d )年的(d )月)|(每年)|(([零一二三四五六七八九十百千万] |d )月份)|(今年(d )月(d )号)|(今年([零一二三四五六七八九十百千万] |d )月)|((d )月底)|(未来(d )年)|(第([零一二三四五六七八九十百千万] |d )季)|(d?多年)|(([零一二三四五六七八九十百千万] |d )个星期)|((d )年([零一二三四五六七八九十百千万] |d )月)|([下上中]午)|(早(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d )点)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)月)|(([零一二三四五六七八九十百千万] |d )个(数|多|多少|好几|几|差不多|近|前|后|上|左右)月)|(同([零一二三四五六七八九十百千万] |d )天)|((d )号凌晨)|(夜里)|(两个(数|多|多少|好几|几|差不多|近|前|后|上|左右)小时)|(昨天)|(罗马时代)|(目(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(([零一二三四五六七八九十百千万] |d )月)|((d )年(d )月(d )号)|(((10)|(11)|(12)|([1-9]))月份?)|([12][0-9]世纪)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )天)|(工作日)|(稍后)|((d )号(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(未来([零一二三四五六七八九十百千万] |d )年)|([0-9] [天日周月年][后前左右]*)|(([零一二三四五六七八九十百千万] |d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(最(数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )刻)|(很久)|((d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)岁)|(去年(d )月(d )号)|(两个月)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)午(d )时)|(古代)|(两天)|(d 个?(小时|星期))|((d )年半)|(较早)|(([零一二三四五六七八九十百千万] |d )个小时)|([一二三四五六七八九十] 周年)|(星期([零一二三四五六七八九十百千万] |d )(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(时刻)|((d 天) (d 点)?(d 分)?(d 秒)?)|((d )日([零一二三四五六七八九十百千万] |d )时)|((d )周年)|(([零一二三四五六七八九十百千万] |d )早)|(([零一二三四五六七八九十百千万] |d )日)|(去年(d )月)|(过去([零一二三四五六七八九十百千万] |d )年)|((d )个星期)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)(数|多|多少|好几|几|差不多|近|前|后|上|左右)天)|(执政期间)|([当前昨今明后春夏秋冬] 天)|(去年(d )月份)|(今(数|多|多少|好几|几|差不多|近|前|后|上|左右))|((d )周)|(两星期)|(([零一二三四五六七八九十百千万] |d )年代)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)天)|(昔日)|(两个半月)|([印尼|北京|美国]?当地时间)|(连日)|(本月(d )日)|(第([零一二三四五六七八九十百千万] |d )天)|((d )点(d )分)|([长近多]年)|((d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午(d )时)|(那时)|(冷战时代)|(([零一二三四五六七八九十百千万] |d )天)|(这个星期)|(去年)|(昨天傍晚)|(近期)|(星期([零一二三四五六七八九十百千万] |d )早些时候)|((d )([零一二三四五六七八九十百千万] |d )年)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)两个月)|((d )个小时)|(([零一二三四五六七八九十百千万] |d )个月)|(当年)|(本月)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)([零一二三四五六七八九十百千万] |d )个月)|((d )点(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(目前)|(去年([零一二三四五六七八九十百千万] |d )月)|((d )时(d )分)|(每月)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)段时间)|((d )日晚)|(早(数|多|多少|好几|几|差不多|近|前|后|上|左右)(d )点(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(下旬)|((d )月份)|(逐年)|(稍(数|多|多少|好几|几|差不多|近|前|后|上|左右))|((d )年)|(月底)|(这个月)|((d )年(d )个月)|(d 大寿)|(周([零一二三四五六七八九十百千万] |d )早(数|多|多少|好几|几|差不多|近|前|后|上|左右))|(半年)|(今日)|(末日)|(昨天深夜)|(今年(d )月)|((d )月(d )号)|((d )日夜)|((早些|某个|晚间|本星期早些|前些) 时候)|(同年)|((北京|那个|更长的|最终冲突的)时间)|(每个月)|(一早)|((d )来?[岁年])|((数|多|多少|好几|几|差不多|近|前|后|上|左右)个月)|([鼠牛虎兔龙蛇马羊猴鸡狗猪]年)|(季度)|(早些时候)|(今天)|(每天)|(年半)|(下*个?月)|(午后)|((d )日(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|((数|多|多少|好几|几|差不多|近|前|后|上|左右)个星期)|(d 秒)|(今天(数|多|多少|好几|几|差不多|近|前|后|上|左右)午)|(同[一二三四五六七八九十][年|月|天])|(Td :d :d )|(d /d /d :d :d .d )|(????-??-??Td :d :d )|(d -d -d Td :d :d )|(d /d /d  d :d :d .d )|(d -d -d |[0-9]{8})|(((d )年)?((10)|(11)|(12)|([1-9]))月(d ))|((d[.-])?((10)|(11)|(12)|([1-9]))[.-](d ))
*/

4、使用方法

描述:人名、地址、邮箱、手机号、手机归属地 等信息的抽取,rake短语抽取算法。 https://github.com/fighting41love/cocoNLP

例子 急寻特朗普,男孩,于2018年11月27号11时在陕西省安康市汉滨区走失。丢失发型短发,…如有线索,请迅速与警方联系:18100065143,132-6156-2938,baizhantang@sina.com.cn 和yangyangfuture at gmail dot com’

代码语言:javascript复制
from cocoNLP.extractor import extractor
from newspaper import Article
import nltk
ex = extractor()
text = '急寻特朗普,男孩,于2018年11月27号11时在陕西省安康市汉滨区走失。丢失发型短发,...如有线索,请迅速与警方联系:18100065143,132-6156-2938,baizhantang@sina.com.cn 和yangyangfuture at gmail dot com'
print('='*40)
print('1. 抽取邮箱')
print('-'*40)
emails = ex.extract_email(text)
print(emails)
print('='*40)
print('2. 抽取手机号')
print('-'*40)
cellphones = ex.extract_cellphone(text,nation='CHN')
print(cellphones)
print('='*40)
print('3. 抽取手机归属地、运营商')
print('-'*40)
cell_locs = [ex.extract_cellphone_location(cell,'CHN') for cell in cellphones]
print(cell_locs)
print('='*40)
print('4. 抽取地址信息')
print('-'*40)
locations = ex.extract_locations(text)
print(locations)
print('='*40)
print('5. 抽取时间点')
print('-'*40)
times = ex.extract_time(text)
print(times)
print('='*40)
print('6. 抽取人名')
print('-'*40)
name = ex.extract_name(text)
print(name)

结果:

5、rake.py自动关键字提取算法

5.1 枚举

代码语言:javascript复制
0:词度和词频的比例
1:词度
2:词频

5.2 快速自动关键词提取算法

1、初始化

代码语言:javascript复制
标点符号=无,
词度和词频的比例= 初始值0
最大长度=100000,
最小长度=1,

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/234197.html原文链接:https://javaforall.cn

0 人点赞