Part28 1三種信息標記形式的比較
下面我們來比較一下三種信息標記形式荠耽。
XML是一種用尖括號標簽表達信息的一種形式慢叨,JSON是用一種有類型的鍵值對標記信息的表達形式轩拨,YAML是用無類型的鍵值對標記信息的表達形式晕翠。
下面我們用一個例子來看一下這三種表達形式的不同:
首先,XML形式,我們這里定義一個人person,還有名字firstName陪白、lastName序厉、還有他的地址所在的城市恨搓、郵編以及他的專業(yè)常拓。如果用XML形式,我們需要對每一個信息域定義相關(guān)的標簽辉浦,并且采用嵌套的形式組織起來弄抬。我們可以看到在整個的文本信息中,其中有效信息所占的比例并不高宪郊,大多數(shù)信息被標簽占用掂恕。
我們再看一下JSON實例:
JSON通過鍵值對的形式來組織信息,我們可以為信息定義相關(guān)的標簽弛槐,fristName懊亡、lastName等等。但是無論是標簽還是后面的值乎串,鍵值之間都是要用雙引號“”來表達他的類型店枣。
最后再看一下YAML:
YAML它是用無類型鍵值對表示的。所以對于我們給出的相關(guān)的信息叹誉,它可以用很簡潔的名字來做相關(guān)的關(guān)聯(lián)鸯两,而形成這樣的鍵值對來表示。
從這三種的直觀感覺來看长豁,大家有什么感受呢钧唐?我們來深刻的比較一下這三種表達形式。
首先XML格式是最早的通用信息標記語言匠襟,嚴格意義上講钝侠,世界上信息標記的多種形式起始于XML格式。它擴展性非常好宅此,但由于存在標簽的起始和結(jié)尾部分机错,所以相當繁瑣。
JSON采用有類型的信息方式來標記信息父腕,它非常適合程序處理弱匪,比如它本身就是用JS語言擴展而來的信息標記形式,甚至JSON格式就是程序代碼的一部分,它相比XML來講,它使用鍵值對比較簡潔萧诫。但是由于需要對每一個鍵和值的信息類型做相關(guān)的考慮和定義斥难,因此它更適合程序員和程序本身對它做相關(guān)的處理,
而YAML采用無類型的鍵值對形式進行表達帘饶,是三種信息方式中文本信息也就是有效信息在所有標記信息中所占比例最高的一種形式哑诊,而且他的可讀性非常好。
在我們實際使用中及刻,Internet上的信息交互與傳遞以及信息表達镀裤,主要采用XML格式,包括我們大家都知道的HTML格式也是XML格式這個類別的缴饭。
JSON主要用在移動應(yīng)用云端和節(jié)點信息通信暑劝。什么時候用JSON格式呢?一般來講JSON格式用在程序?qū)涌谔幚淼牡胤娇怕АSON數(shù)據(jù)在經(jīng)過傳輸之后能夠作為程序代碼的一部分担猛,被程序直接運行。這樣JSON格式中對信息類型的定義才能最大的發(fā)揮作用丢氢。這是JSON格式最大的價值傅联。然而JSON標記格式有一個比較大的缺陷,就是它其中無法體現(xiàn)注釋疚察。因此當你需要在信息中表達一些需要人類關(guān)注的信息的時候蒸走。沒法通過注釋形式來增加進去。
YAML現(xiàn)在主要用于各類系統(tǒng)的配置文件之中貌嫡,因為它既適合人類可讀又適合程序解析载碌。相對來講比其他兩種方式對文本資源的有效利用率更高,應(yīng)用相對比較廣泛衅枫。
在信息發(fā)展的標記的整個過程中,這三種形式構(gòu)成了信息形成和標記的主流方式朗伶。他們的應(yīng)用沒有不同弦撩,但是都反映了信息及信息關(guān)系之間的價值。
Part29 2信息提取的一般方法
下面我們介紹信息提取的一般方法论皆。信息提取指從標記后的信息中益楼,提取所關(guān)注的內(nèi)容之前為我們講過信息標記的三種形式:XML JSON和YAML。無論哪種形式在信息標記中包含信息的一部分点晴。我們關(guān)心的是我們所要提出的信息內(nèi)容感凤。那么該怎么做呢?這里有很多種方法粒督,我們這里邊從一般意義上給出幾種方法:
比如第一種方法:我們可以完整的解析信息的標記形式陪竿,然后再提取信息中的關(guān)鍵信息。簡單說屠橄,我們用標記解析器去解析XML族跛、JSON闰挡、YAML格式。然后將其中所需要的信息提取出來礁哄。比如說BeautifulSoup庫提供了對標簽樹的遍歷长酗。我們需要解析成信息,去遍歷這棵樹就可以了桐绒。這種方法優(yōu)點是信息解析準確夺脾,你需要那部分信息就能找到這部分信息的位置,并且把信息提取出來茉继。但是缺點也非常明顯咧叭,我們再提取信息的時候過程