從CNN視角看自然語言處理上的應(yīng)用

姓名:米芃? 學(xué)號:16040520018

【嵌牛鼻子】卷積神經(jīng)網(wǎng)絡(luò)? 自然語言? 池化層? 激活函數(shù)

【嵌牛導(dǎo)讀】卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network)最早是應(yīng)用在計(jì)算機(jī)視覺當(dāng)中俭缓,而如今CNN也早已應(yīng)用于自然語言處理滤否。

本文主要包括了對如下幾塊內(nèi)容的講解渔肩,第一部分是對于常見的語言模型在進(jìn)行文本表示時(shí)遇到的問題以及引入卷積神經(jīng)網(wǎng)絡(luò)的意義定踱,第二部分是對于卷積神經(jīng)網(wǎng)絡(luò)模塊的介紹,第三部分主要是介紹一些卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于自然語言處理中的論文痪欲,第四部分主要是對這一篇綜述進(jìn)行總結(jié)庸疾。

【嵌牛提問】CNN與自然語言處理有何關(guān)系吸申,如何應(yīng)用锦聊。

【嵌牛正文】

引例

我們首先來看這么一個(gè)問題歹嘹,假設(shè)我們需要對句子做情感上的分類。

i hate this movie.

i love this moive.

傳統(tǒng)的詞袋模型或者連續(xù)詞袋模型都可以通過構(gòu)建一個(gè)全連接的神經(jīng)網(wǎng)絡(luò)對句子進(jìn)行情感標(biāo)簽的分類孔庭,但是這樣存在一個(gè)問題尺上,我們通過激活函數(shù)可以讓某些結(jié)點(diǎn)激活(例如一個(gè)句子里”not”,”hate”這樣的較強(qiáng)的特征詞),但是由于在這樣網(wǎng)絡(luò)構(gòu)建里圆到,句子中詞語的順序被忽略怎抛,也許同樣兩個(gè)句子都出現(xiàn)了not和hate但是一個(gè)句子(I do not hate this movie)表示的是good的情感,另一個(gè)句子(I hate this movie and will not choose it)表示的是bad的情感芽淡。其實(shí)很重要的一點(diǎn)是在剛才上述模型中我們無法捕獲像not hate這樣由連續(xù)兩個(gè)詞所構(gòu)成的關(guān)鍵特征的詞的含義马绝。

在語言模型里n-gram模型是可以用來解決,想法其實(shí)就是將連續(xù)的兩個(gè)詞作為一個(gè)整體納入到模型中挣菲,這樣確實(shí)能夠解決我們剛才提出的問題富稻,加入bi-gram,tri-gram可以讓我們捕捉到例如“don’t love”白胀,“not the best”椭赋。但是問題又來了,如果我們使用多元模型纹笼,實(shí)際訓(xùn)練時(shí)的參數(shù)是一個(gè)非常大的問題纹份,因?yàn)榧僭O(shè)你有20000個(gè)詞,加入bi-gram實(shí)際上你就要有400000000個(gè)詞廷痘,這樣參數(shù)訓(xùn)練顯然是爆炸的蔓涧。另外一點(diǎn),相似的詞語在這樣的模型中不能共享例如參數(shù)權(quán)重等笋额,這樣就會(huì)導(dǎo)致相似詞無法獲得交互信息元暴。

卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的認(rèn)識

利用卷積神經(jīng)網(wǎng)絡(luò)實(shí)際上是可以解決上述的兩個(gè)問題。在講卷積神經(jīng)網(wǎng)絡(luò)前兄猩,我們先來看兩個(gè)簡單的例子茉盏。

圖片發(fā)自簡書App

假設(shè)我去識別出左邊這個(gè)方框里的貓,實(shí)際上在一張圖片中貓所處的位置并不重要枢冤,它在左邊鸠姨,在右邊,還是在底部淹真,其實(shí)對于貓來說讶迁,它的特征是不變的,我需要在這一部分位置學(xué)習(xí)的特征也能用在另一部分位置上核蘸,所以對于這個(gè)圖像上的所有位置巍糯,我們都能使用同樣的學(xué)習(xí)特征啸驯。而在右邊的例子中,假設(shè)一句話中是談?wù)撠堖涞乃盥停堖溥@個(gè)詞的意義是否會(huì)隨它在第一句話還是第二句話而發(fā)生改變呢罚斗,大部分情況是不變的,所以我們當(dāng)我們使用一個(gè)文本網(wǎng)絡(luò)時(shí)宅楞,網(wǎng)絡(luò)能夠?qū)W習(xí)到什么是貓咪并且可以重復(fù)使用针姿,而不是每一次見到它就要重新學(xué)習(xí)。

接下來我們先來介紹卷積神經(jīng)網(wǎng)絡(luò)中各個(gè)重要的環(huán)節(jié)咱筛。

卷積

所以這里我們首先去理解卷積神經(jīng)網(wǎng)絡(luò)中卷積的運(yùn)算搓幌。這里我們以圖像作為輸入。比較容易理解卷積的方法是把卷積想象成作用于矩陣的一個(gè)滑動(dòng)窗口函數(shù)迅箩。如下面這張圖的表示溉愁。

圖片發(fā)自簡書App

滑動(dòng)窗口又稱作卷積核、濾波器或是特征檢測器饲趋。圖中使用3x3的卷積核拐揭,將卷積核與矩陣對應(yīng)的部分逐元素相乘,然后求和奕塑。對于卷積的運(yùn)算可以看下面這幅圖的解釋堂污。

圖片發(fā)自簡書App

在不改變卷積核權(quán)重的情況下,就像拿著一只刷子一樣對整個(gè)圖水平垂直滑動(dòng)進(jìn)行卷積運(yùn)算龄砰,這樣輸出就是經(jīng)過卷積運(yùn)算后的輸出層盟猖。這里有一個(gè)對卷積操作的動(dòng)畫演示,可以加深對其的理解(CS231n Convolutional Neural Networks for Visual Recognition)

什么是卷積神經(jīng)網(wǎng)絡(luò)

卷積神經(jīng)網(wǎng)絡(luò)其實(shí)就是多層卷積運(yùn)算换棚,然后對每層的卷積輸出用非線性激活函數(shù)做轉(zhuǎn)換(后面會(huì)講到)式镐。卷積過程中每塊局部的輸入?yún)^(qū)域與輸出的一個(gè)神經(jīng)元相連接。對每一層應(yīng)用不同的卷積核固蚤,每一種卷積核其實(shí)可以理解為對圖片的一種特征進(jìn)行提取娘汞,然后將多種特征進(jìn)行匯總,以下面這幅圖為例夕玩,原始的input為一幅圖片你弦,第一層卷積過后輸出層變?yōu)?@28*28,所以這里的卷積核實(shí)際上用了6個(gè)燎孟,6個(gè)卷積核代表了對這一張?jiān)紙D片的六種不同角度的特征提惹葑鳌(例如提取圖片左上方的邊緣線條,右下方的邊緣線條等等)揩页。feature map實(shí)際上的含義就是特征通道(或者理解為一個(gè)圖片的不同特征)领迈,也可以說就是輸出層的深度,這里就是6,然后后面每一次做卷積操作是都是要對所有的特征通道進(jìn)行卷積操作以便提取出更高級的特征狸捅。這里也涉及到池化層,在下一小節(jié)進(jìn)行講解累提。在訓(xùn)練階段尘喝,卷積神經(jīng)網(wǎng)絡(luò)會(huì)基于你想完成的任務(wù)自動(dòng)學(xué)習(xí)卷積核的權(quán)重值。

圖片發(fā)自簡書App

例如斋陪,在上面這幅圖中朽褪,第一層CNN模型也許學(xué)會(huì)從原始像素點(diǎn)中檢測到一些邊緣線條,然后根據(jù)邊緣線條在第二層檢測出一些簡單的形狀(例如橫線條无虚,左彎曲線條缔赠,豎線條等),然后基于這些形狀檢測出更高級的特征友题,比如一個(gè)A字母的上半部分等嗤堰。最后一層則是利用這些組合的高級特征進(jìn)行分類。

卷積神經(jīng)網(wǎng)絡(luò)中的卷積計(jì)算實(shí)際上體現(xiàn)了:位置不變性和組合性度宦。位置不變性是因?yàn)榫矸e核是在全圖范圍內(nèi)平移踢匣,所以并不用關(guān)心貓究竟在圖片的什么位置。組合性是指每個(gè)卷積核對一小塊局部區(qū)域的低級特征組合形成更高級的特征表示戈抄。當(dāng)然這兩點(diǎn)對于句子的建模也是很多的幫助离唬,我們會(huì)在后面的例子中提到。

卷積是如何應(yīng)用到自然語言處理中

在圖像中卷積核通常是對圖像的一小塊區(qū)域進(jìn)行計(jì)算划鸽,而在文本中输莺,一句話所構(gòu)成的詞向量作為輸入。每一行代表一個(gè)詞的詞向量裸诽,所以在處理文本時(shí)嫂用,卷積核通常覆蓋上下幾行的詞,所以此時(shí)卷積核的寬度與輸入的寬度相同崭捍,通過這樣的方式尸折,我們就能夠捕捉到多個(gè)連續(xù)詞之間的特征,并且能夠在同一類特征計(jì)算時(shí)中共享權(quán)重殷蛇。下面這張圖很好地詮釋了剛才的講解实夹。

圖片發(fā)自簡書App


圖片引用自《A Sensitivity Analysis of (and Practitioners’ Guide to) ConvolutionalNeural Networks for Sentence Classification》Ye Zhang, Byron Wallace

池化層

卷積神經(jīng)網(wǎng)絡(luò)的一個(gè)重要概念就是池化層,一般是在卷積層之后粒梦。池化層對輸入做降采樣亮航。池化的過程實(shí)際上是對卷積層分區(qū)域求最大值或者對每個(gè)卷積層求最大值。例如匀们,下圖就是2x2窗口的最大值池化(在自然語言處理中缴淋,我們通常對整個(gè)輸出做池化,每個(gè)卷積層只有一個(gè)輸出值)。

圖片來自于http://cs231n.github.io/convolutional-networks/#pool

為什么要進(jìn)行池化操作重抖?

池化首先是可以輸出一個(gè)固定大小的矩陣露氮,這對于自然語言處理當(dāng)中輸入句子的長度不一有非常大的作用。例如钟沛,如果你用了200個(gè)卷積核畔规,并對每個(gè)輸出使用最大池化,那么無論卷積核的尺寸是多大恨统,也無論輸入數(shù)據(jù)的維度或者單詞個(gè)數(shù)如何變化叁扫,你都將得到一個(gè)200維的輸出。這讓你可以應(yīng)對不同長度的句子和不同大小的卷積核畜埋,但總是得到一個(gè)相同維度的輸出結(jié)果莫绣,用作最后的分類。

另外池化層在降低數(shù)據(jù)維度的同時(shí)還能夠保留顯著的特征悠鞍。每一種卷積核都是用來檢測一種特定的特征对室。在以句子分類中,每一種卷積核可以用來檢測某一種含義的詞組狞玛,如果這種類型的含義的詞語出現(xiàn)了软驰,該卷積核的輸出值就會(huì)非常大,通過池化過程就能夠盡可能地將該信息保留下來心肪。

關(guān)于池化層幾種池化方式會(huì)在下面的內(nèi)容里講解锭亏。

激活函數(shù)

有關(guān)激活函數(shù)很多細(xì)節(jié)的講述在最后的總結(jié)會(huì)提到。

卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在NLP的應(yīng)用

首先我們來介紹第一篇論文《Natural Language Processing (almost) from Scratch》硬鞍,該論文主要是針對原來那種man-made 的輸入特征和人工特征慧瘤,利用神經(jīng)網(wǎng)絡(luò)的方法自動(dòng)抽取出文本句子更高級的特征用來處理自然語言處理里的各項(xiàng)任務(wù),例如本文中輸入是一個(gè)句子序列固该,輸出是對句子中各個(gè)詞的詞性的預(yù)測锅减。該文提出了兩種方法,一種是滑動(dòng)窗口的方法(window approach)伐坏,另一種就是將整個(gè)句子作為輸入(sentence approach)的方法怔匣,兩種方法就分別對應(yīng)著局部和全局的特征。模型結(jié)構(gòu)如下圖所示:

window approach

sentence approach

window approach 是根據(jù)某一個(gè)單詞以及其附近固定長度范圍內(nèi)的單詞對應(yīng)的詞向量來為單詞預(yù)測標(biāo)簽桦沉。需要注意的是每瞒,當(dāng)處理到一個(gè)句子的開始或者結(jié)尾的單詞的時(shí)候,其前后窗口或許不包含單詞纯露,這時(shí)候我們需要填充技術(shù)剿骨,為前面或者后面填充象征開始或者結(jié)束的符號。

實(shí)際上基于窗口的方法已經(jīng)可以解決很多常見的任務(wù)埠褪,但是如果一個(gè)單詞如果非常依賴上下文的單詞浓利,且當(dāng)時(shí)這個(gè)單詞并不在窗口中挤庇,這時(shí)就需要sentence approach,這里所使用的卷積操作與卷積神經(jīng)網(wǎng)絡(luò)中的卷積操作基本相同贷掖。這里需要對句子中的每一個(gè)單詞進(jìn)行一次卷積操作嫡秕,這里池化過程選擇最大池化,這里認(rèn)為句子中大部分的詞語對該單詞的意義不會(huì)有影響苹威。

剛才這篇論文實(shí)際上是在池化層中直接選擇了最大池化淘菩,接下來的這篇論文《A Convolutional Neural Network for Modelling Sentences》對句子級別特征的池化過程進(jìn)行了改進(jìn)并且提出了DCNN動(dòng)態(tài)卷積網(wǎng)絡(luò)(Dynamic Convolutional Neural Network),在介紹該論文前首先先來介紹一下常見的幾種池化方式屠升。

Max-pooling最為常見,最大池化是取整個(gè)區(qū)域的最大值作為特征狭郑,在自然語言處理中常用于分類問題腹暖,希望觀察到的特征是強(qiáng)特征,以便可以區(qū)分出是哪一個(gè)類別翰萨。Average-pooling通常是用于主題模型脏答,常常是一個(gè)句子不止一個(gè)主題標(biāo)簽,如果是使用Max-pooling的話信息過少亩鬼,所以使用Average的話可以廣泛反映這個(gè)區(qū)域的特征殖告。最后兩個(gè)K-max pooling是選取一個(gè)區(qū)域的前k個(gè)大的特征。Dynamic pooling是根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)動(dòng)態(tài)調(diào)整取特征的個(gè)數(shù)雳锋。最后兩個(gè)的組合選取黄绩,就是該篇論文的亮點(diǎn)。

該論文的亮點(diǎn)首先對句子語義建模玷过,在底層通過組合鄰近的詞語信息爽丹,逐步向上傳遞,上層則又組合新的語義信息辛蚊,從而使得句子中相離較遠(yuǎn)的詞語也有交互行為(或者某種語義聯(lián)系)粤蝎。從直觀上來看,這個(gè)模型能夠通過詞語的組合袋马,再通過池化層提取出句子中重要的語義信息初澎。

另一個(gè)亮點(diǎn)就是在池化過程中,該模型采用動(dòng)態(tài)k-Max池化虑凛,這里池化的結(jié)果不是返回一個(gè)最大值碑宴,而是返回k組最大值,這些最大值是原輸入的一個(gè)子序列卧檐。池化中的參數(shù)k可以是一個(gè)動(dòng)態(tài)函數(shù)墓懂,具體的值依賴于輸入或者網(wǎng)絡(luò)的其他參數(shù)。該模型的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示:

圖片發(fā)自簡書App

這里重點(diǎn)介紹k-max池化和動(dòng)態(tài)k-max池化霉囚。K-max的好處在于捕仔,既提取除了句子中不止一個(gè)重要信息,同時(shí)保留了它們的順序。同時(shí)榜跌,這里取k的個(gè)數(shù)是動(dòng)態(tài)變化的闪唆,具體的動(dòng)態(tài)函數(shù)如下。

這里需要注意的是s代表的是句子長度钓葫,L代表總的卷積層的個(gè)數(shù)悄蕾,l代表的是當(dāng)前是在幾個(gè)卷積層,所以可以看出這里的k是隨著句子的長度和網(wǎng)絡(luò)深度而改變础浮,我們的直觀的感受也能看出初始的句子層提取較多的特征帆调,而到后面提取的特征將會(huì)逐漸變少,同時(shí)由于? 代表最頂層的卷積層需要提取的個(gè)數(shù)豆同。

這里的網(wǎng)絡(luò)結(jié)構(gòu)大多與通常的卷積網(wǎng)絡(luò)層番刊,但需要注意的是這里有一個(gè)Folding層(折疊操作層)。這里考慮相鄰的兩行之間的某種聯(lián)系影锈,將兩行的詞向量相加芹务。

該模型亮點(diǎn)很多,總結(jié)如下鸭廷,首先它保留了句子中詞序和詞語之間的相對位置枣抱,同時(shí)考慮了句子中相隔較遠(yuǎn)的詞語之間的語義信息,通過動(dòng)態(tài)k-max pooling較好地保留句子中多個(gè)重要信息且根據(jù)句子長度動(dòng)態(tài)變化特征抽取的個(gè)數(shù)辆床。

剛才這篇論文是對池化過程進(jìn)行改進(jìn)佳晶,接下來的兩篇論文是對卷積層進(jìn)行了改進(jìn)。第三篇論文是《Neural Machine Translation in Linear Time》佛吓,該論文提出了擴(kuò)張卷積神經(jīng)網(wǎng)絡(luò)(Dilated Convolution)應(yīng)用于機(jī)器翻譯領(lǐng)域宵晚。Dilated convolution實(shí)際上要解決的問題是池化層的池化會(huì)損失很多信息(無論該信息是有用還是無用)。Dilated convolution的主要貢獻(xiàn)就是维雇,如何在去掉池化操作的同時(shí)淤刃,而不降低網(wǎng)絡(luò)的感受野。下圖理解起來更加容易吱型,卷積的輸入像素的間距由1-2-4-8逸贾,雖然沒有池化層,但是隨著層數(shù)越深覆蓋的原始輸入信息依舊在增加津滞。也就是我們通常卷積核與輸入的一個(gè)區(qū)域的維度大小保持一致铝侵,但是去掉池化層后,我們隨著深度增加触徐,卷積核的所能覆蓋的輸入?yún)^(qū)域擴(kuò)展一倍咪鲜。

在該模型中,句子建模時(shí)輸入是以句子的字符級別開始的撞鹉,之后隨著卷積核所能覆蓋的范圍擴(kuò)展疟丙,不斷地去交互信息颖侄,同時(shí)還能夠保證原始的輸入信息不被丟失。

之前的論文中主要是對卷積層和池化層從本身結(jié)構(gòu)上進(jìn)行改造享郊,下面的這篇論文主要考慮到了本身句子已有依存句法樹信息览祖,將其融入到句子的建模中來。論文《Dependency-based Convolutional Neural Networks for Sentence Embedding》便是提出這一想法炊琉,模型的想法是展蒂,不僅僅是利用句子中相鄰的詞信息作為特征信息,一個(gè)依存句法樹的實(shí)際上將句子的語義信息關(guān)系真正地提取出來苔咪,由于整個(gè)卷積的過程锰悼,句子的語序關(guān)系仍然會(huì)丟失,通過將依存句法樹中父子節(jié)點(diǎn)的語序信息和兄弟語序信息一起作為輸入团赏,可以更加有效地抽取句子的特征松捉。

最后要介紹的一篇論文是有關(guān)于句子匹配(Sentence Matching)的問題,基礎(chǔ)問題仍然是句子建模馆里。首先,文中提出了一種基于CNN的句子建模網(wǎng)絡(luò)可柿,卷積的作用是從句子中提取出局部的語義組合信息鸠踪,而多個(gè)Feature Map則是從多種角度進(jìn)行提取,也就是保證提取的語義組合的多樣性复斥。分別單獨(dú)地對兩個(gè)句子進(jìn)行建模(使用上文中的句子模型)营密,從而得到兩個(gè)相同且固定長度的向量,然后目锭,將這兩個(gè)向量作為一個(gè)多層感知機(jī)(MLP)的輸入评汰,最后計(jì)算匹配的分?jǐn)?shù)。

這個(gè)模型比較簡單痢虹,但是有一個(gè)較大的缺點(diǎn)被去,兩個(gè)句子在建模過程中是完全獨(dú)立的,沒有任何交互行為奖唯,一直到最后生成抽象的向量表示后才有交互行為惨缆,這樣做使得句子在抽象建模的過程中會(huì)喪失很多語義細(xì)節(jié),因此丰捷,推出了第二種模型結(jié)構(gòu)坯墨。

這種結(jié)構(gòu)提前了兩個(gè)句子間的交互行為,第一層中,首先取一個(gè)固定的卷積窗口

病往,然后遍歷中所有組合的二維矩陣進(jìn)行卷積捣染,每一個(gè)二維矩陣輸出一個(gè)值,構(gòu)成Layer-2停巷,然后進(jìn)行2×2的Max-pooling耍攘,后續(xù)的卷積層均是傳統(tǒng)的二維卷積操作榕栏。

總結(jié)/Q&A

本篇綜述中具體介紹了卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)以及應(yīng)用于自然語言處理中的場景,最后再做一個(gè)簡單地歸納總結(jié)少漆。

還有一些有關(guān)卷積神經(jīng)網(wǎng)絡(luò)細(xì)節(jié)上的問題與答案臼膏,與大家分享。

卷積層和池化層有什么區(qū)別示损?

首先可以從結(jié)構(gòu)上可以看出渗磅,卷積之后輸出層的維度減小,深度變深检访。但池化層深度不變始鱼。同時(shí)池化可以把很多數(shù)據(jù)用最大值或者平均值代替。目的是降低數(shù)據(jù)量脆贵。降低訓(xùn)練的參數(shù)医清。對于輸入層,當(dāng)其中像素在鄰域發(fā)生微小位移時(shí)卖氨,池化層的輸出是不變的会烙,從而能提升魯棒性。而卷積則是把數(shù)據(jù)通過一個(gè)卷積核變化成特征筒捺,便于后面的分離柏腻。

采用寬卷積的好處有什么?

通過將輸入邊角的值納入到滑窗中心進(jìn)行計(jì)算系吭,以便損失更少的信息五嫂。

卷積輸出的深度與哪個(gè)部件的個(gè)數(shù)相同?

輸出深度(通道)與卷積核(過濾器)的個(gè)數(shù)相等肯尺。

激活函數(shù)通常放在卷積神經(jīng)網(wǎng)絡(luò)的那個(gè)操作之后沃缘?

通常放在卷積層之后。

為什么激活函數(shù)通常都是采用非線性的函數(shù)?

如果網(wǎng)絡(luò)中都采用線性函數(shù)的組合,那么線性的組合還是線性螟凭,那么使用多次線性組合就等同于使用了一次線性函數(shù)惕耕。因此采用非線性函數(shù)可以來逼近任意函數(shù)。

非線性激活函數(shù)中sigmod函數(shù)存在哪些不足?

Sigmod函數(shù)存在飽和狀態(tài),尤其是值過大時(shí),當(dāng)進(jìn)入飽和狀態(tài)時(shí)讥巡,進(jìn)行梯度下降計(jì)算時(shí),很容易出現(xiàn)梯度消失的情況舔哪,求導(dǎo)的精確值不能保證欢顷。

ReLU和SoftPlus激活函數(shù)有哪些優(yōu)勢?

與sigmod相比捉蚤,不存在指數(shù)計(jì)算抬驴,求導(dǎo)計(jì)算量變小炼七,同時(shí)緩解了過擬合的情況,一部分輸出為0布持,減少了參數(shù)的相互依存豌拙。




摘自微信公眾號“人工智能頭條”――從CNN視角看自然語言上的應(yīng)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市题暖,隨后出現(xiàn)的幾起案子按傅,更是在濱河造成了極大的恐慌,老刑警劉巖胧卤,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唯绍,死亡現(xiàn)場離奇詭異,居然都是意外死亡枝誊,警方通過查閱死者的電腦和手機(jī)况芒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叶撒,“玉大人绝骚,你說我怎么就攤上這事§艄唬” “怎么了皮壁?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哪审。 經(jīng)常有香客問我,道長虑瀑,這世上最難降的妖魔是什么湿滓? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮舌狗,結(jié)果婚禮上叽奥,老公的妹妹穿的比我還像新娘。我一直安慰自己痛侍,他們只是感情好朝氓,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著主届,像睡著了一般赵哲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上君丁,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天枫夺,我揣著相機(jī)與錄音,去河邊找鬼绘闷。 笑死橡庞,一個(gè)胖子當(dāng)著我的面吹牛较坛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扒最,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼丑勤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吧趣?” 一聲冷哼從身側(cè)響起法竞,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎再菊,沒想到半個(gè)月后爪喘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纠拔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年秉剑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稠诲。...
    茶點(diǎn)故事閱讀 38,697評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡侦鹏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出臀叙,到底是詐尸還是另有隱情略水,我是刑警寧澤,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布劝萤,位于F島的核電站渊涝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏床嫌。R本人自食惡果不足惜跨释,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望厌处。 院中可真熱鬧鳖谈,春花似錦、人聲如沸阔涉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瑰排。三九已至贯要,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間椭住,已是汗流浹背郭毕。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留函荣,地道東北人显押。 一個(gè)月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓扳肛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親乘碑。 傳聞我的和親對象是個(gè)殘疾皇子挖息,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,587評論 2 350

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