圖譜問答在小米小愛中的實(shí)踐探索

image.png
分享嘉賓:代文博士 小米 高級算法工程師
編輯整理:何雨婷 湖北工業(yè)大學(xué)
出品平臺:DataFunTalk

導(dǎo)讀:今天的介紹會圍繞以下三點(diǎn)展開:

  • 小愛同學(xué)應(yīng)用場景

  • 信息抽取

  • 圖譜問答

01:小愛同學(xué)應(yīng)用場景介紹

首先和大家介紹一下小愛同學(xué)的應(yīng)用場景。通過小愛同學(xué),可以方便快捷的訪問小米的各種智能硬件設(shè)備,包括掃地機(jī)器人、電視、空調(diào)等。小愛同學(xué)主要包括內(nèi)容、信息查詢、互動、控制、生活服務(wù)、基礎(chǔ)工具這六大方面的服務(wù)。今天要分享的智能問答,主要解決的是有客觀事實(shí)性答案的這一類query,主要是為了滿足用戶信息查詢類的需求。

下圖是智能問答的框架,主要由數(shù)據(jù)層、知識層、語義層、邏輯層、業(yè)務(wù)層、設(shè)備層組成。在知識層,本文將分享信息抽取的相關(guān)工作。邏輯層主要包括圖譜問答、檢索問答和文檔問答,今天主要分享圖譜問答。在業(yè)務(wù)層,基于問答模塊,可以在詞典、古詩、人物、星座、菜譜等不同的功能垂域來進(jìn)行業(yè)務(wù)層的開發(fā)。最后,針對不同的智能硬件,我們在設(shè)備層上進(jìn)行相應(yīng)的適配,來滿足用戶在不同終端的需求。

image.png

目前,小米的知識圖譜實(shí)體量是數(shù)十億,三元組spo量超百億,這些知識囊括了書籍、本地生活、字詞、古詩、房產(chǎn)等不同領(lǐng)域的信息。

02信息抽取

image.png

信息抽取是指從非結(jié)構(gòu)化的自然語言文本中提取結(jié)構(gòu)化的知識,如實(shí)體、關(guān)系、事件等。關(guān)系抽取會預(yù)先定義好一個schema,然后抽取所有滿足schema約束的SPO三元組。事件抽取也是先預(yù)先定義好事件類型和論元角色,再從輸入的自然語言文本當(dāng)中識別事件類型,以及這個事件類型對應(yīng)的一些事件要素。這里舉一個關(guān)系抽取的例子,“王雪純是87版《紅樓夢》中晴雯的配音者,她是《正大綜藝》的主持人”,我們需要去識別出來subject是王雪純,predicate是配音,object是人物,配音的人物是晴雯。這里的object是一個復(fù)合類型,需要同時識別出來配音的角色是誰,屬于哪部影視作品。

這里介紹的方案,是我們參加“2021語言與智能技術(shù)競賽:多形態(tài)信息抽取任務(wù)”的亞軍方案。我們主要從關(guān)系抽取和事件抽取兩個方面介紹信息抽取。

1. 關(guān)系抽取

①難點(diǎn)

image.png

在關(guān)系抽取中,除了復(fù)雜o值之外,還有spo重疊這種比較常見的難點(diǎn),如s和o兩個實(shí)體分別相同。例如,吳京是戰(zhàn)狼的主演,同時吳京也是戰(zhàn)狼的導(dǎo)演。此時吳京和戰(zhàn)狼這兩個實(shí)體,在這兩種關(guān)系中都是相同的。spo重疊還有另外一種形式是,s和o當(dāng)中,其中一個實(shí)體是相同的。

②解決框架

image.png

解決框架主要由多模型粗召回和推理模型細(xì)打分兩部分組成。

  • 多模型粗召回——SPO模型
    image.png

SPO模型:首先通過指針網(wǎng)絡(luò)的方式抽取s,然后根據(jù)s在schema當(dāng)中對應(yīng)的p,再通過指針網(wǎng)絡(luò)的方式找到每一個p在文本當(dāng)中對應(yīng)的o的文本片段。上圖所示為SPO模型的大體框架圖,輸入文本后,首先通過編碼層對語義信息進(jìn)行表示,再通過解碼網(wǎng)絡(luò)找到其中的subject,然后將這個subject和輸入文本連接起來,再在schema中獲取其涉及到的所有謂詞,通過指針網(wǎng)絡(luò)來找到每個謂詞下是否存在對應(yīng)的片段,從而找到這個p和o的結(jié)果。對于復(fù)雜o值,我們對當(dāng)中各個槽位都分開來分別處理,并且結(jié)合位置距離來選擇最優(yōu)的匹配,最終將復(fù)雜o值各個槽位得到的文本結(jié)果組合起來作為這個復(fù)雜o值的結(jié)果。

  • 多模型粗召回——PSO模型
    image.png

PSO模型:與SPO模型比較類似。我們首先通過分類模型來識別句子中描述的關(guān)系類型,再通過指針網(wǎng)絡(luò)來抽取這個關(guān)系類型對應(yīng)的subject和object。類似我們也可以對復(fù)雜o值的各個槽位分別處理,同時利用位置距離來選擇最優(yōu)的匹配。

  • 推理模型細(xì)打分
image.png

通過SPO模型和PSO模型,得到一些三元組關(guān)系的候選隊(duì)列,還有一個精排的細(xì)打分模型。將召回的spo三元組和原始的句子拼接在一起,建模成一個語義相似度的任務(wù),來衡量識別出來的spo三元組和輸入文本之間的語義相似度,從而進(jìn)行細(xì)打分。我們可以設(shè)定一些閾值,選出置信度較高的一些spo三元組作為最終的抽取結(jié)果。

2. 事件抽取

①事件抽取——主要方法

image.png

事件抽取的方法流派主要有三種:

第一種是流水線的方式,將事件類型和事件要素的抽取作為流水線串連起來,首先去預(yù)測事件類型,得到結(jié)果之后,再基于事件類型去預(yù)測事件的角色和事件的論元等相關(guān)要素的結(jié)果。另外基于觸發(fā)詞這種方式,流水線的模式是先抽取觸發(fā)詞,第二步再基于觸發(fā)詞去抽取對應(yīng)的事件要素。

第二種是聯(lián)合的模型,將前述的事件類型預(yù)測和事件要素抽取聯(lián)合起來進(jìn)行多任務(wù)學(xué)習(xí)。為了讓多個子任務(wù)同時達(dá)到最優(yōu),收斂過程相對較難一些。

第三種是端到端的方法,我們對標(biāo)簽組合進(jìn)行了一些調(diào)整,將事件類型和事件角色名組合起來,構(gòu)成一個新的標(biāo)簽組合。通過BIO標(biāo)注后可以一步到位地識別文本中包含的事件類型,和這個事件類型下每個角色的取值。因?yàn)槭侵苯油ㄟ^序列標(biāo)注的方式抽取得到兩個結(jié)果,所以事件類型的分?jǐn)?shù)我們無法得知,因此存在多種事件類型時處理不夠好。

如果事件類型的準(zhǔn)確率較高,可以優(yōu)先選擇流水線方式,因?yàn)槭录愋捅旧碚`差小,所以誤差傳遞的影響也不大。另外基于流水線方式比較便于后續(xù)進(jìn)行分模塊的分析優(yōu)化。在文本當(dāng)中存在多個事件類型的情況下,基于流水線方式,可以把第一步事件類型預(yù)測得到的多個結(jié)果,逐一輸送給第二步要素抽取的模型,分別識別每個事件類型對應(yīng)的事件要素。它對多種事件類型的處理會更好。所以我們的選型也是采用的流水線的方式。

在模型的選擇上,常見的有指針網(wǎng)絡(luò)和序列標(biāo)注這兩種。指針網(wǎng)絡(luò)的監(jiān)督信號比較稀疏,模型不好收斂。序列標(biāo)注的缺點(diǎn)是處理不了overlap的問題。

由于任務(wù)中overlap占比少,序列標(biāo)注模型的準(zhǔn)確率受overlap的影響并不大。另外也可以通過一些規(guī)則來部分地解決overlap的問題。同時序列標(biāo)注的訓(xùn)練更容易、效果也更好。所以在事件抽取任務(wù)中我們選擇了序列標(biāo)注模型。

②事件抽取——事件類型和觸發(fā)詞識別聯(lián)合模型

在事件抽取任務(wù)中,有的研究者基于事件類型做要素的抽取,有的研究者基于事件觸發(fā)詞做要素的抽取。在這里我們提出事件類型和觸發(fā)詞的聯(lián)合識別模型。我們發(fā)現(xiàn)事件類型和觸發(fā)詞實(shí)際上是相互影響的,比如“訂婚”這個事件類型,觸發(fā)詞不可能是“婚外情”。相反地,如果給的觸發(fā)詞是“婚期已定”,它對應(yīng)的事件類型不可能是“出軌”。所以我們是通過聯(lián)合模型來同時對事件類型和事件觸發(fā)詞進(jìn)行學(xué)習(xí),以進(jìn)一步提升預(yù)測的準(zhǔn)確率。

如下圖所示,首先通過一個共享的編碼層來對語義信息進(jìn)行表示,輸出層中,事件類型預(yù)測采用的是線性輸出層,事件觸發(fā)詞識別采用的是一個CRF的輸出層。


image.png

在識別得到事件類型和事件觸發(fā)詞之后,我們設(shè)計了并行模型進(jìn)行要素抽取。第一個模型基于事件類型,第二個模型基于事件觸發(fā)詞。在基于事件類型的抽取模型當(dāng)中,我們將第一步識別得到的事件類型,連接到輸入的文本之前,再通過序列標(biāo)注的方式來抽取對應(yīng)的事件要素。


image.png

基于這種方式,我們發(fā)現(xiàn)結(jié)果會有一些欠召回的情形。比如上圖右框中的例子,實(shí)際上這個句子中存在一個明顯的觸發(fā)詞“懷孕”。但是事件類型預(yù)測模型就發(fā)生了欠召,沒能識別出它的事件類型。這時候如果是基于事件觸發(fā)詞來對這個事件要素進(jìn)行抽取,則可以和基于事件類型的模型進(jìn)行互補(bǔ)。

第二種方式,基于事件觸發(fā)詞的要素抽取。首先利用抽取得到觸發(fā)詞,然后計算每個token到觸發(fā)詞的距離,將距離映射為向量表示,級聯(lián)到語義的向量上,再接CRF層預(yù)測事件要素。

image.png

將這兩種方式抽取的事件要素進(jìn)行投票組合,得到最終的抽取結(jié)果。基于信息抽取模型得到的結(jié)構(gòu)化知識,可以補(bǔ)充到知識圖譜中,作為下游圖譜問答的數(shù)據(jù)基礎(chǔ)。

03圖譜問答

**1. **基于文法解析的方法****

如下圖,對用戶query進(jìn)行解析,從模板庫中找到與用戶query匹配的模板,再通過這個模板把用戶非結(jié)構(gòu)的query解析成為結(jié)構(gòu)化的查詢語句,進(jìn)而從圖譜中去查找得到答案。這個過程是比較簡單的,但主要的問題在于如何高效快速的獲取大批量的模板。一方面可以從線上高頻query進(jìn)行擴(kuò)展補(bǔ)充,這是從業(yè)務(wù)出發(fā)的一種方式,能夠盡快滿足用戶需求。第二種,可以通過挖掘的方式來自動化地獲取。

image.png

2.跨垂域粗粒度的槽位抽取方法

該方法的泛化性能會相對更好。它的基模型是意圖識別和槽位抽取的聯(lián)合模型。通過這個聯(lián)合模型,對用戶query的意圖和槽位同時進(jìn)行識別,從而回答用戶的問題。這種方式不依賴模板,所以泛化性更好。

image.png

通過這種方式進(jìn)行垂域建設(shè)有一些缺陷。比如建設(shè)好一個古詩垂域,它包含查朝代、查上下句等功能點(diǎn),包含詩人、詩名、體裁等槽位,在這個意圖和槽位體系之下,挖掘一些樣本進(jìn)行模型訓(xùn)練、線上部署,以回答用戶在線上的問題。如果又需要建設(shè)一個新的垂域,比如數(shù)學(xué)定理垂域,這個垂域不僅是一個新的垂域,而且也是一個低資源垂域,那么我們不得不把古詩垂域建設(shè)的過程再重復(fù)一遍,而且小垂域的訓(xùn)練樣本獲取也比較困難。

所以我們提出了一個跨垂域粗粒度的意圖識別和槽位抽取方法。具體來說,是將不同垂域涉及到的槽位根據(jù)概念圖譜來進(jìn)行抽象,比如詩人和提出者都屬于人物,那么我就可以將詩人和提出者定義為人物這樣一個槽位。詩名和定理名,可以認(rèn)為都是作品名。除了合并的槽位之外,各個垂域還有一些特有的槽位,我們將它們直接保留下來。與此同時,也把細(xì)粒度的意圖直接上升到粗粒度的意圖。這樣就可以聯(lián)合不同垂域的樣本,訓(xùn)練一個跨垂域粗粒度的模型。在這種跨垂域的模型中,定理垂域就可以利用古詩垂域的訓(xùn)練樣本,實(shí)現(xiàn)領(lǐng)域知識的遷移。

在模型訓(xùn)練好之后,就可以在線上預(yù)測用戶query的意圖和槽位,最后通過映射關(guān)系,將粗粒度的槽位和意圖映射到細(xì)粒度的意圖和槽位之上,用于進(jìn)行下一步的解析。

3. 基于路徑檢索的方法

基于路徑檢索的方式,不需要對用戶query進(jìn)行解析,而是先檢索候選的路徑,然后從中進(jìn)行篩選找到正確的解析路徑。這里主要介紹我們參加“CCKS2021生活服務(wù)領(lǐng)域知識圖譜問答評測”的冠軍方案。

image.png

這次評測任務(wù)的難點(diǎn)在帶約束復(fù)雜query的問答,比如“北京故宮博物院附近2公里有哪些好玩?”或者“故宮附近5km內(nèi)便宜的酒店是多少錢?”。

image.png

主要涉及兩類約束,第一類約束是過濾約束,第二類約束是排序約束。對于這種帶約束的復(fù)雜query,我們需要做特殊的處理。

整體來講,我們采用的技術(shù)方案的流程為:第一步識別實(shí)體和屬性值,第二步進(jìn)行路徑的挖掘,第三步進(jìn)行匹配打分,第四步進(jìn)行路徑排序,最終根據(jù)最優(yōu)路徑從圖譜中查詢答案。

第一步我們需要從query當(dāng)中找到這個問題涉及到的一些實(shí)體、屬性值、數(shù)值,主要采用三類方式:

①基于AC算法的字面匹配,識別query中涉及到的字面值。

image.png

②模糊匹配。實(shí)際上用戶query中有一些實(shí)體提及mention和圖譜中實(shí)體名稱并不完全一樣。這時我們需要進(jìn)行模糊匹配。通過建立倒排索引來找到和mention比較相關(guān)的候選實(shí)體,計算每個候選實(shí)體的編輯距離,來對候選實(shí)體進(jìn)行排序。

③基于NER模型,來找到query當(dāng)中可能涉及到的實(shí)體片段。

實(shí)體、屬性值抽取是基礎(chǔ)的一步,也是比較關(guān)鍵的一步,需要抽取到query中關(guān)鍵的語義信息。如果沒有抽取到,后面路徑無論如何擴(kuò)展,都不能找到正確路徑。

第二步,基于抽取得到的實(shí)體和屬性值,進(jìn)行路徑的挖掘。路徑挖掘主要包括兩個步驟,首先是基礎(chǔ)的路徑擴(kuò)展,接著是對復(fù)雜query進(jìn)行約束掛載。

路徑擴(kuò)展,是以query中的抽取得到的實(shí)體為出發(fā)點(diǎn),通過新增三元組來擴(kuò)展路徑。中間節(jié)點(diǎn)可以繼續(xù)作為起始節(jié)點(diǎn)來新增三元組。同時我們可以將找到的不同路徑,在中間節(jié)點(diǎn)相同的情況下進(jìn)行組合,形成語義信息更豐富的一條路徑。通過這種路徑擴(kuò)展和組合,盡可能多地挖掘候選路徑,最大可能的將query對應(yīng)的正確解析路徑包含在候選隊(duì)列當(dāng)中。

image.png

約束掛載如上圖所示。“離天壇最近的酒店人均800以下酒店是哪一家”,首先通過路徑擴(kuò)展得到上圖最上方所示的路徑,然后進(jìn)一步約束CVT節(jié)點(diǎn)對應(yīng)的距離值,同時對酒店實(shí)體X的價格約束為小于800。通過上圖方式,我們將約束可以看作一種特殊的三元組。比如要求價格小于800塊錢,那么“小于”作為謂詞,“800”就是作為object值。對于排序約束,將“排序”作為謂詞,然后“降序”作為object。將約束信息統(tǒng)一處理成三元組是為了下一步路徑匹配的需要。

image.png

我們總結(jié)了可以加約束信息的常見屬性,比如平均價格、酒店入住時間、押金、距離值、房屋面積等。在路徑擴(kuò)展過程中,如果發(fā)現(xiàn)某一個屬性的取值是數(shù)值時,就可以對它進(jìn)行約束掛載,從而表達(dá)出query中的復(fù)雜語義信息。

下一步是路徑匹配。需要在候選路徑中找到最有可能的路徑。具體方法為:將路徑表達(dá)成文本的形式,把它建模成一個語義匹配的任務(wù)。路徑的文本表示,這里介紹三種方式:第一種方式是設(shè)計一個模板將路徑表示為一句話;第二種方式是把這個路徑中的subject、predicate以及答案節(jié)點(diǎn)拼接起來;第三種方式和第二種方式相似,但是把中間節(jié)點(diǎn)通過[UNK]字符保留下來。通過實(shí)驗(yàn)對比,這三種方式的匹配效果差異不大。選擇任意一種方式皆可。

image.png

經(jīng)過路徑匹配排序之后,可以得到語義上和用戶query最接近的候選路徑,進(jìn)一步還可以結(jié)合一些業(yè)務(wù)特征對候選路徑進(jìn)行重排序,最后從圖譜中查找正確答案。

在評測結(jié)束之后,我們將這個方案在業(yè)務(wù)中進(jìn)行了落地,落地時為了追求性能和效果的平衡,落地方案和前面稍有差別。在實(shí)體和屬性值抽取時,通過實(shí)體鏈接來找到query當(dāng)中的核心的實(shí)體。在路徑挖掘時,自研了一套路徑檢索和路徑挖掘的方式,能夠提高路徑挖掘的性能。得到候選路徑后,我們會對候選路徑的規(guī)模進(jìn)行約束,比如取前20條候選路徑進(jìn)行語義匹配。最終輸出排名第一的候選路徑,從圖譜中查找正確答案返回用戶。

image.png

這里簡單介紹一下我們自研的路徑檢索工具。我們將圖譜里的實(shí)體和關(guān)系,進(jìn)行整型id的映射,然后通過一個節(jié)點(diǎn)索引表來記錄每個實(shí)體對應(yīng)的SPO三元組,比如劉德華所對應(yīng)的三元組的終止節(jié)點(diǎn)在661,也就是說找劉德華的三元組時,可以快速地在數(shù)據(jù)存儲表中的第0位到第661位進(jìn)行查找,這里的查找可以通過二分法進(jìn)一步加速。通過這種方式使檢索耗時大大減少,內(nèi)存的占用也會非常的小。

最后我們列舉了幾個圖譜問答的示意效果圖。圖譜問答的結(jié)果更適應(yīng)結(jié)構(gòu)化展示的需求,能滿足精品化的產(chǎn)品需求,為用戶提供更好的使用體驗(yàn)。

image.png

04問答環(huán)節(jié)

Q:路徑的設(shè)定是否能通過神經(jīng)網(wǎng)絡(luò)模型去訓(xùn)練獲得,還是都需要人工去制定路徑規(guī)則模板,有沒有一些高效的方法去獲取路徑和規(guī)則的方法?

A:神經(jīng)網(wǎng)絡(luò)方法可以用于獲取路徑,有一些研究論文這么去做了。但是在產(chǎn)品中我們目前采用的還是人工定義的方式,一是因?yàn)檫@些人工定義的模板實(shí)際上可以覆蓋線上絕大部分的真實(shí)需求,二是因?yàn)橥ㄟ^人工模板挖掘路徑,耗時很小,更能適應(yīng)線上性能的要求。

Q:關(guān)系抽取spo模型,對復(fù)雜o解析只需要考慮位置距離匹配嗎?還需要考慮標(biāo)簽本身的概率嗎?

A:在關(guān)系抽取里面,我們采用的是指針網(wǎng)絡(luò)模型,它的優(yōu)點(diǎn)是可以解決overlap問題,但缺點(diǎn)是解碼時可能有多個index候選,因此需要通過一些策略來選擇index,比如我們使用的位置距離特征。也可以采用其他的特征進(jìn)行選擇。

Q:事件要素抽取模型,對每個事件類型預(yù)測角色的時候,是把schema定義全部角色都用CRF預(yù)測出來?還是最后根據(jù)事件類型保留相關(guān)的角色?

A:在抽取事件要素時,并沒有限定于第一步預(yù)測的事件類型,而是把所有可能的事件角色都抽取出來,然后再用第一步預(yù)測的事件類型進(jìn)行篩選。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內(nèi)容