提取值在Python中我可以做到以下幾點:使用字符串方法格式()從字符串
who = "tim"
what = "cake"
print "{0} likes {1}".format(who, what)
產生「蒂姆喜歡蛋糕」。
但是,由於我需要使用正則表達式,反操作並不那麼簡單。我的意思是,解析一串已知結構並提取我知道它包含的部分,並將它們存儲到我的變量中。 這種提取我的執行:
import re
expression = "([a-z]*) likes ([a-z]*)"
input_line = "tim likes cake"
who, what = re.search(expression, inputline).groups()
這對參數的少量不夠整齊,但相比於我的「理想逆」的理念,以格式()這對我來說兩個主要缺點:
- 提取的參數始終爲字符串,需要將它們轉換爲帶有額外行的浮點數。格式在內部處理所需的轉換,從任何值到字符串。
- 我需要爲輸入和輸出定義不同的模板,因爲正規表達式格式爲「([az] *)likes([az] *)」的輸入模板不能重複用於數據的「導出」 ,格式化功能。
所以,我的問題是,做這樣的函數存在,因爲我們把它們打印字符串,隨後會自動解析字符串並獲得價值相同的方式幾乎相同的語法像
「{ 0}喜歡{1}」。提取物(誰,什麼,input_line =‘蒂姆喜歡蛋糕’)
我知道我可以創建我的自定義‘提取’功能,表現爲期望的,但我不希望如果已經有一個可用,就創建它。
那麼...自然語言處理? –
我認爲這簡單得多,因爲給出了模板語句並指定了要提取的信息。一種選擇是在空間中分割,並提取模板中用轉義字符標記的部分。但是,再次,我正在尋找現有的選擇,而不是自己做。 – rmhleo