亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從日期/時間的字符串信息中提取

從日期/時間的字符串信息中提取

茅侃侃 2022-12-06 16:35:45
我有一些文本通常以以下內容開頭:“12 minutes ago - There was a meeting...”“2 hours ago - Apologies for being...”“1 day ago - It is a sunny day in London...”等等?;旧衔矣幸韵滦畔ⅲ篗inutes HoursDay (starting from today)我想將此類信息轉換為有價值的時間序列信息,以便提取這部分并從中創建一個新列(日期時間)。在我的數據集中,我有一列(日期),其中我已經有執行研究的日期(例如,今天),格式為:26/05/2020 和提交搜索的時間(例如上午 8:41 ). 因此,如果文本以“12 分鐘前”開頭,我應該:26/05/2020 - 8:29 (datetime format in Python)對于其他人:26/05/2020 - 6:4125/05/2020 - 8:41重要的是要有一些東西(字符串、數字、日期格式),我可以將其繪制為時間序列(我想看看在時間間隔方面發布了多少文本)。關于如何做到這一點的任何想法?
查看完整描述

2 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

如果格式保持簡單:<digits> <unit> ago ...用"^(\d+) (\w+) ago".


然后,一旦你('minutes', '12')將這些傳遞給timedelta它接受每個單元作為關鍵字參數timedelta(minutes=12),你將通過傳遞一個映射來做到這一點**{unit:value}


def parse(content):

    timeparts = re.search(r"^(\d+) (\w+) ago", content)

    if not timeparts:

        return None, content

    unit = timeparts.group(2).rstrip('s') + 's' # ensure ends with 's'

    #return datetime.now()-timedelta(**{unit:int(timeparts.group(1))})           # Now date

    return datetime(2020,5,26,8,0,0)-timedelta(**{unit:int(timeparts.group(1))}) # Fixed date

演示


values = ["12 minutes ago - There was a meeting...","2 hours ago - Apologies for being...","1 day ago - It is a sunny day in London..."]


for value in values:

  res = parse(value)

  print(res)



2020-05-26 07:48:00

2020-05-26 06:00:00

2020-05-25 08:00:00


查看完整回答
反對 回復 2022-12-06
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

您應該為此使用自然語言處理庫,例如spaCY或 NLTK

這是tokenization來自上面鏈接的示例,顯示了 spacY 如何分解句子:

http://img1.sycdn.imooc.com//638eff020001975606380476.jpg

查看完整回答
反對 回復 2022-12-06
  • 2 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號