前言
年味越來(lái)越淡,但我對(duì)過(guò)年的期待一直沒變。為了理想,離開家鄉(xiāng)。這一路,背上行囊,穿過(guò)人潮,千里迢迢。疲憊也好,激動(dòng)也罷,總有家鄉(xiāng)值得牽掛。
但是,所有的鄉(xiāng)愁和感傷,最好的解藥就是一張火車票。每當(dāng)萬(wàn)事俱備,總是只欠東風(fēng),我依然是被一張 5mm 厚的火車票攔在了門外。隱隱約約在我眼前出現(xiàn),然后又悄無(wú)聲息的走掉,說(shuō)的就是你,我花錢加速都搶不到的火車票。所以阿廣今天教大家如何用 Python 搶火車票!解決你的鄉(xiāng)情、愛情、友情,說(shuō)不定還有基情?
數(shù)據(jù)介紹
12306 官方部分?jǐn)?shù)據(jù)如下:
實(shí)現(xiàn)過(guò)程
注:具有自然語(yǔ)言識(shí)別處理功能
(1) 加載頭文件
fromdistutils.logimportwarnasprintfimportsysfrombosonnlpimportBosonNLPimportyamlfromos.pathimportexpanduserimportosimportcollectionsimportsubprocessimportdatetime
(2) 加載配置文件
home = expanduser("~")withopen(os.path.join(home,".ibot.yml"))asf: config = yaml.load(f) bosonnlp_token = config["token"]
(3) 解析字符串
def parse(self, query_string): """ input: 1月12號(hào) 濟(jì)南到兗州的高鐵票 output: [{'entity': [[0,3,'time'], [3,4,'location'], [5,6,'location']], # 需要理解實(shí)體出現(xiàn)的模式,這塊需要理解上下文 'tag': ['t','m','q','ns','p','ns','ude','n','n'], 'word': ['1月','12','號(hào)','濟(jì)南','到','兗州','的','硬座','票']}] """ result = self.nlp.ner(query_string)[0] words = result['word'] tags= result['tag'] entities = result['entity'] return(words,entities,tags)
(4) 獲得已識(shí)別的實(shí)體
defget_entity(self,parsed_words,index_tuple): """ 獲取已識(shí)別的實(shí)體 采用filter 參考 python cookbook部分 input: entities : 二元組 parsed_words : 解析好的詞組 """ returnparsed_words[index_tuple[0]:index_tuple[1]]
(5) 元組重新命名
defformat_entities(self,entities): """ 給元組命名 """ namedentity = collections.namedtuple('namedentity','index_begin index_end entity_name') return[namedentity(entity[0],entity[1],entity[2])forentityinentities]
(6) 獲取解析時(shí)間戳
defget_format_time(self,time_entity): """ output {'timestamp': '2018-12-20 23:30:29', 'type': 'timestamp'} """ basetime = datetime.datetime.today() result = self.nlp.convert_time( time_entity, basetime) #print(result) timestamp = result["timestamp"] returntimestamp.split(" ")[0]
查看源碼:
https://github.com/zandaoguang/MissHome
如何調(diào)用?
iquery濟(jì)南 兗州20190112ibot 本周天從濟(jì)南回老家兗州,幫我看下ibot 本周五從兗州出發(fā),打算去北京撿垃圾,幫我看下有沒有車票ib 這周六從南京回武夷山老家,幫我看下車票...
查詢結(jié)果并搶票
寫在最后
自從學(xué)了計(jì)算機(jī),每逢思鄉(xiāng)之情冉冉升起,只能通過(guò)加快敲擊鍵盤的速度來(lái)忘記此時(shí)此刻的烽火三月、家書萬(wàn)金。
盼望著,盼望著,寒假來(lái)了,春天的腳步近了。在我們童顏尚駐時(shí),過(guò)年缺少不了的部分就是走親戚,有魚肉之果腹,亦有無(wú)案牘之勞形。可后來(lái)的后來(lái),我們長(zhǎng)大了,走親戚在無(wú)形之中成了一種“煩惱”。
明生活不止眼前的茍且,還有往后余生的茍且,可礙于面子,我們依然裝作不但有詩(shī)和遠(yuǎn)方,還要有錢途的樣子。
果把過(guò)年比作愛情,那豈是:長(zhǎng)街長(zhǎng),煙花繁,你挑燈回看;短亭短,紅塵輾,我把蕭再嘆?通俗點(diǎn)講,我愿用三生煙火,換你一張通往家鄉(xiāng)的火車票。
——致此刻遠(yuǎn)在他鄉(xiāng)奮斗的你們
-
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7360瀏覽量
87633 -
python
+關(guān)注
關(guān)注
55文章
4767瀏覽量
84375
原文標(biāo)題:春運(yùn)渡劫!Python給我搶回家的火車票
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論