jieba分詞詳解

引言

“結(jié)巴”分詞是一個(gè)Python 中文分詞組件,參見https://github.com/fxsjy/jieba
可以對(duì)中文文本進(jìn)行分詞、詞性標(biāo)注、關(guān)鍵詞抽取等功能筷畦,并且支持自定義詞典。

本文包括以下內(nèi)容:
1刺洒、jieba分詞包的安裝
2鳖宾、jieba分詞的使用教程
3、jieba分詞的工作原理與工作流程
4作媚、jieba分詞所涉及到的HMM攘滩、TextRank、TF-IDF等算法介紹

安裝

可以直接使用pip來進(jìn)行安裝:
sudo pip install jieba
或者
sudo pip3 install jieba

簡(jiǎn)單使用

分詞

對(duì)一句話進(jìn)行分詞
import jieba

text = "征戰(zhàn)四海只為今日一勝纸泡,我不會(huì)再敗了漂问。"
# jieba.cut直接得到generator形式的分詞結(jié)果
seg = jieba.cut(text)  
print(' '.join(seg)) 

# 也可以使用jieba.lcut得到list的分詞結(jié)果
seg = jieba.lcut(text)
print(seg)
征戰(zhàn) 四海 只 為 今日 一勝 , 我 不會(huì) 再敗 了 女揭。
['征戰(zhàn)', '四海', '只', '為', '今日', '一勝', '蚤假,', '我', '不會(huì)', '再敗', '了', '。']
命令行進(jìn)行分詞
python -m jieba input.txt > output.txt

詞性分析

import jieba.posseg as posseg

text = "征戰(zhàn)四海只為今日一勝吧兔,我不會(huì)再敗了磷仰。"
# generator形式形如pair(‘word’, ‘pos’)的結(jié)果
seg = posseg.cut(text)  
print([se for se in seg]) 

# list形式的結(jié)果
seg = posseg.lcut(text)
print(seg)
[pair('征戰(zhàn)', 'v'), pair('四海', 'ns'), pair('只', 'd'), pair('為', 'p'), pair('今日', 't'), pair('一', 'm'), pair('勝', 'v'), pair(',', 'x'), pair('我', 'r'), pair('不會(huì)', 'v'), pair('再敗', 'v'), pair('了', 'ul'), pair('境蔼。', 'x')]
[pair('征戰(zhàn)', 'v'), pair('四海', 'ns'), pair('只', 'd'), pair('為', 'p'), pair('今日', 't'), pair('一', 'm'), pair('勝', 'v'), pair('灶平,', 'x'), pair('我', 'r'), pair('不會(huì)', 'v'), pair('再敗', 'v'), pair('了', 'ul'), pair('。', 'x')]

關(guān)鍵詞抽取

關(guān)鍵詞抽取有兩種算法箍土,基于TF-IDF和基于TextRank:

import jieba.analyse as analyse
text = "征戰(zhàn)四海只為今日一勝逢享,我不會(huì)再敗了。"
# TF-IDF
tf_result = analyse.extract_tags(text, topK=5) # topK指定數(shù)量吴藻,默認(rèn)20
print(tf_result)
# TextRank
tr_result = analyse.textrank(text, topK=5) # topK指定數(shù)量瞒爬,默認(rèn)20
print(tr_result)
['一勝', '再敗', '征戰(zhàn)', '四海', '今日']
['一勝', '再敗', '征戰(zhàn)', '四海', '今日']

完整用法

分詞

jieba分詞有三種不同的分詞模式:精確模式、全模式和搜索引擎模式

jieba.cut(sentence,cut_all=False,HMM=True) # 精確模式
jieba.cut(sentence,cut_all=True,HMM=True) # 全模式
jieba.cut_for_search (sentence, HMM=True) # 搜索引擎模式

對(duì)應(yīng)的,函數(shù)前加l即是對(duì)應(yīng)得到list結(jié)果的函數(shù):

jieba.lcut(sentence,cut_all=False,HMM=True) # 精確模式
jieba.lcut(sentence,cut_all=True,HMM=True) # 全模式
jieba.lcut_for_search (sentence, HMM=True) # 搜索引擎模式
sentence = "征戰(zhàn)四海只為今日一勝侧但,我不會(huì)再敗了矢空。"
#---------------result----------------
'今天天氣 真 好' # 精確模式
'今天 今天天氣 天天 天氣 真好' # 全模式
'今天 天天 天氣 今天天氣 真 好' # 搜索引擎模式

精確模式是最常用的分詞方法,全模式會(huì)將句子中所有可能的詞都列舉出來禀横,搜索引擎模式則適用于搜索引擎使用屁药。具體的差別可在下一節(jié)工作流程的分析中詳述。

在上述每個(gè)函數(shù)中燕侠,都有名為HMM的參數(shù)者祖。這一項(xiàng)表示是否在分詞過程中利用HMM進(jìn)行新詞發(fā)現(xiàn)。關(guān)于HMM绢彤,本文附錄中將簡(jiǎn)述相關(guān)知識(shí)。

另外分詞支持自定義字典蜓耻,詞典格式和 dict.txt 一樣茫舶,一個(gè)詞占一行;每一行分三部分:詞語刹淌、詞頻(可省略)饶氏、詞性(可省略),用空格隔開有勾,順序不可顛倒疹启。
具體使用方法為:

jieba.load_userdict(file_name)  # 載入自定義詞典
jieba.add_word(word, freq=None, tag=None) # 在程序中動(dòng)態(tài)修改詞典
jieba.del_word(word) 
jieba.suggest_freq(segment, tune=True) # 調(diào)節(jié)單個(gè)詞語的詞頻,使其能/不能被分詞開

關(guān)鍵詞抽取

關(guān)鍵詞抽取的兩個(gè)函數(shù)的完整參數(shù)為:

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=(), withFlag=False)
# topK 表示返回最大權(quán)重關(guān)鍵詞的個(gè)數(shù)蔼卡,None表示全部
# withWeight表示是否返回權(quán)重喊崖,是的話返回(word,weight)的list
# allowPOS僅包括指定詞性的詞,默認(rèn)為空即不篩選雇逞。
jieba.analyse.textrank(self, sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'), withFlag=False)
# 與TF-IDF方法相似荤懂,但是注意allowPOS有默認(rèn)值,即會(huì)默認(rèn)過濾某些詞性塘砸。

并行分詞

可以通過

jieba.enable_parallel(4) # 開啟并行分詞模式节仿,參數(shù)為并行進(jìn)程數(shù),默認(rèn)全部
jieba.disable_parallel() # 關(guān)閉并行分詞模式

來打開或關(guān)閉并行分詞功能掉蔬。
個(gè)人感覺一般用不到廊宪,大文件分詞需要手動(dòng)實(shí)現(xiàn)多進(jìn)程并行,句子分詞也不至于用這個(gè)女轿。

代碼研讀與工作流程分析

整體工作流程

jieba分詞主要通過詞典來進(jìn)行分詞及詞性標(biāo)注箭启,兩者使用了一個(gè)相同的詞典。正因如此谈喳,分詞的結(jié)果優(yōu)劣將很大程度上取決于詞典册烈,雖然使用了HMM來進(jìn)行新詞發(fā)現(xiàn)。
jieba分詞包整體的工作流程如下圖所示:


整體工作流程

下面將根據(jù)源碼詳細(xì)地分析各個(gè)模塊的工作流程。

在之后幾節(jié)中赏僧,我們?cè)?strong>藍(lán)色的方框中示范了關(guān)鍵步驟的輸出樣例或詞典文件的格式樣例大猛。在本節(jié)中都采用類似的表示方式。

分詞

jieba分詞中淀零,首先通過對(duì)照典生成句子的有向無環(huán)圖挽绩,再根據(jù)選擇的模式不同,根據(jù)詞典尋找最短路徑后對(duì)句子進(jìn)行截取或直接對(duì)句子進(jìn)行截取驾中。對(duì)于未登陸詞(不在詞典中的詞)使用HMM進(jìn)行新詞發(fā)現(xiàn)唉堪。

a.精確模式與全模式

b.搜索引擎模式

a圖中演示了分詞的主要過程,但是其中只演示了被切分出來的一個(gè)子字符串的分詞操作過程肩民,在實(shí)際操作流程中唠亚,將對(duì)每一個(gè)子字符串都分別進(jìn)行圖中的處理,最后將切分的分詞結(jié)果與非漢字部分依次連接起來持痰,作為最終的分詞結(jié)果灶搜。
如果開啟了HMM,那么將會(huì)連起來不在詞典中出現(xiàn)的連續(xù)單字進(jìn)行新詞發(fā)現(xiàn)工窍。比如例子中的“真好啊”割卖,詞典中沒有這個(gè)詞,所以會(huì)拿去HMM模型中進(jìn)行新詞發(fā)現(xiàn)患雏;但是如果原句是“今天天氣真好”鹏溯,基于詞典切分為“今天天”“”“”,詞典中有“真好”一詞淹仑,但是因?yàn)轭l率小所以未被選擇為最佳路徑丙挽,所以“”“”兩個(gè)字不會(huì)被拿去做新詞發(fā)現(xiàn)(即便其通過HMM的結(jié)果將會(huì)是“真好”),最終分詞結(jié)果將是“今天天氣”“”“”攻人。

詞典的格式應(yīng)為
word1 freq1 word_type1
word2 freq2 word_type2

其中自定義用戶詞典中詞性word_type可以省略取试。
詞典在其他模塊的流程中可能也會(huì)用到,為方便敘述怀吻,后續(xù)的流程圖中將會(huì)省略詞典的初始化部分瞬浓。

圖b演示了搜索引擎模式的工作流程,它會(huì)在精確模式分詞的基礎(chǔ)上蓬坡,將長(zhǎng)詞再次進(jìn)行切分猿棉。

HMM與新詞發(fā)現(xiàn)

在這里我們假定讀者已經(jīng)了解HMM相關(guān)知識(shí),如果沒有可先行閱讀下一章內(nèi)容中的HMM相關(guān)部分或者跳過本節(jié)屑咳。

在jieba分詞中萨赁,將字在詞中的位置B、M兆龙、E杖爽、S作為隱藏狀態(tài),字是觀測(cè)狀態(tài),使用了詞典文件分別存儲(chǔ)字之間的表現(xiàn)概率矩陣(finalseg/prob_emit.py)慰安、初始概率向量(finalseg/prob_start.py)和轉(zhuǎn)移概率矩陣(finalseg/prob_trans.py)腋寨。這就是一個(gè)標(biāo)準(zhǔn)的解碼問題,根據(jù)概率再利用viterbi算法對(duì)最大可能的隱藏狀態(tài)進(jìn)行求解化焕。

HMM工作流程

上圖簡(jiǎn)單示范了jieba分詞中新詞發(fā)現(xiàn)模塊的工作流程萄窜,其具體計(jì)算過程可參考附錄內(nèi)容,為求頁面整齊撒桨,這里不再累述查刻。
在最后時(shí)刻,即“啊”對(duì)應(yīng)的時(shí)刻里凤类,最大概率的為S穗泵,而
,那么隱藏狀態(tài)序列即為(BES)谜疤,對(duì)應(yīng)于漢字“真好啊”——即“真好”是一個(gè)詞火欧,“啊”字單字成詞。

詞性分析

詞性分析部分與分詞模塊用了同一個(gè)基礎(chǔ)的分詞器茎截,對(duì)于詞典詞的詞性,將直接從詞典中提取赶盔,但是對(duì)于新詞企锌,詞性分析部分有一個(gè)專屬的新詞及其詞性的發(fā)現(xiàn)模塊
用于詞性標(biāo)注的HMM模型與用于分詞的HMM模型相似于未,同樣將文字序列視為可見狀態(tài)撕攒,但是隱藏狀態(tài)不再是單單的詞的位置(B/E/M/S),而變成了詞的位置與詞性的組合烘浦,如(B,v)(B,n)(S,n)等等抖坪。因此其初始概率向量、轉(zhuǎn)移概率矩陣和表現(xiàn)概率矩陣和上一節(jié)中所用的相比都要龐大的多闷叉,但是其本質(zhì)以及運(yùn)算步驟都沒有變化擦俐。
具體的工作流程如下圖所示。

a.詞性標(biāo)注工作流程

b.用于HMM的概率詞典示意圖

關(guān)鍵詞提取

jieba分詞中有兩種不同的用于關(guān)鍵詞抽取的算法握侧,分別為TextRank和TF-IDF蚯瞧。實(shí)現(xiàn)流程比較簡(jiǎn)單,其核心在于算法本身品擎。下面簡(jiǎn)單地畫出實(shí)現(xiàn)流程埋合,具體的算法可以參閱下一章內(nèi)容。


關(guān)鍵詞提取實(shí)現(xiàn)流程示意圖

TextRank方法默認(rèn)篩選詞性萄传,而TF-IDF方法模型不進(jìn)行詞性篩選甚颂。

【附錄】

在本章中,將會(huì)簡(jiǎn)單介紹相關(guān)的算法知識(shí),主要包括用于新詞發(fā)現(xiàn)的隱馬爾科夫模型維特比算法振诬、用于關(guān)鍵詞提取的TextRankTF-IDF算法蹭睡。

HMM

HMM即隱馬爾科夫模型,是一種基于馬爾科夫假設(shè)的統(tǒng)計(jì)模型贷揽。之所以為“隱”棠笑,是因?yàn)橄噍^于馬爾科夫過程HMM有著未知的參數(shù)。在世界上禽绪,能看到的往往都是表象蓖救,而事物的真正狀態(tài)往往都隱含在表象之下,并且與表象有一定的關(guān)聯(lián)關(guān)系印屁。

此處我們假設(shè)讀者已經(jīng)對(duì)機(jī)器學(xué)習(xí)或統(tǒng)計(jì)模型等相關(guān)內(nèi)容有了一個(gè)大致的了解循捺,我們利用各種模型的目的在于對(duì)于給定的輸入X,能夠預(yù)測(cè)出類別Y雄人。生成模型通過學(xué)習(xí)聯(lián)合概率分布P(X,Y)从橘,然后通過貝葉斯定理求解條件概率
HMM屬于生成模型的有向圖PGM,通過聯(lián)合概率建模:

其中础钠,S恰力、O分別表示狀態(tài)序列與觀測(cè)序列。

HMM的解碼問題為

定義在時(shí)刻t狀態(tài)為s的所有單個(gè)路徑st1中的概率最大值為
則有:
此式即為用于HMM解碼問題的Viterbi算法的遞推式旗吁。

如果讀者還對(duì)這部分內(nèi)容心存疑問踩萎,不妨先往下閱讀很钓,下面我們將以一個(gè)比較簡(jiǎn)單的例子對(duì)HMM及解碼算法進(jìn)行實(shí)際說明與演示香府,在讀完下一小節(jié)之后再回來看這些式子,或許能夠恍然大悟码倦。

下面以一個(gè)簡(jiǎn)單的例子來進(jìn)行闡述:
假設(shè)小明有一個(gè)網(wǎng)友小紅企孩,小紅每天都會(huì)在朋友圈說明自己今天做了什么,并且假設(shè)其僅受當(dāng)天天氣的影響袁稽,而當(dāng)天的天氣也只受前一天天氣的影響勿璃。
于小明而言,小紅每天做了什么是可見狀態(tài)运提,而小紅那里的天氣如何就是隱藏狀態(tài)蝗柔,這就構(gòu)成了一個(gè)HMM模型。一個(gè)HMM模型需要有五個(gè)要素:隱藏狀態(tài)集民泵、觀測(cè)集癣丧、轉(zhuǎn)移概率、觀測(cè)概率和初始狀態(tài)概率栈妆。

我們定義隱藏狀態(tài)集為N胁编,N中包括了所有有可能出現(xiàn)的隱藏狀態(tài)厢钧,在本例中我們認(rèn)為

定義觀測(cè)集為M,M中包括了所有可能出現(xiàn)在觀測(cè)中的表現(xiàn)狀態(tài)嬉橙,在本例中我們假設(shè)

接下來定義觀測(cè)概率矩陣:

其中早直,

即在第j個(gè)隱藏狀態(tài)時(shí),表現(xiàn)為i表現(xiàn)狀態(tài)的概率市框。式中的n和m表示隱藏狀態(tài)集和觀測(cè)集中的數(shù)量霞扬。
本例中在不同的天氣下,小紅要做不同事情的概率也不同枫振,觀測(cè)概率以表格的形式呈現(xiàn)如下:


HMM中還定義了轉(zhuǎn)移概率矩陣:

其中

表示第i個(gè)隱藏狀態(tài)轉(zhuǎn)移為第j個(gè)隱藏狀態(tài)的概率喻圃。
本例中我們認(rèn)定,其轉(zhuǎn)移概率如下圖所示:

除此之外粪滤,還需要一個(gè)初始狀態(tài)概率向量π斧拍,它表示了觀測(cè)開始時(shí),即t=0時(shí)杖小,隱藏狀態(tài)的概率值肆汹。本例中我們指定π={0,0,1}

至此予权,一個(gè)完整的隱馬爾科夫模型已經(jīng)定義完畢了昂勉。

HMM一般由三類問題:
概率計(jì)算問題,即給定A,B,π和隱藏狀態(tài)序列扫腺,計(jì)算觀測(cè)序列的概率硼啤;
預(yù)測(cè)問題,也成解碼問題斧账,已知A,B,π和觀測(cè)序列,求最優(yōu)可能對(duì)應(yīng)的狀態(tài)序列煞肾;
學(xué)習(xí)問題咧织,已知觀測(cè)序列,估計(jì)模型的A,B,π參數(shù)籍救,使得在該模型下觀測(cè)序列的概率最大习绢,即用極大似然估計(jì)的方法估計(jì)參數(shù)。

在jieba分詞中所用的是解碼問題蝙昙,所以此處對(duì)預(yù)測(cè)問題和學(xué)習(xí)問題不做深入探討闪萄,在下一小節(jié)中我們將繼續(xù)以本節(jié)中的例子為例,對(duì)解碼問題進(jìn)行求解奇颠。

Viterbi算法

在jieba分詞中败去,采用了HMM進(jìn)行新詞發(fā)現(xiàn),它將每一個(gè)字表示為B/M/E/S分別代表出現(xiàn)在詞頭烈拒、詞中圆裕、詞尾以及單字成詞广鳍。將B/M/E/S作為HMM的隱藏狀態(tài),而連續(xù)的各個(gè)單字作為觀測(cè)狀態(tài)吓妆,其任務(wù)即為利用觀測(cè)狀態(tài)預(yù)測(cè)隱藏狀態(tài)赊时,并且其模型的A,B,π概率已經(jīng)給出在文件中,所以這是一個(gè)標(biāo)準(zhǔn)的解碼問題行拢。在jieba分詞中采用了Viterbi算法來進(jìn)行求解祖秒。

Viterbi算法的基本思想是:如果最佳路徑經(jīng)過一個(gè)點(diǎn),那么起始點(diǎn)到這個(gè)點(diǎn)的路徑一定是最短路徑舟奠,否則用起始點(diǎn)到這點(diǎn)更短的一條路徑代替這段竭缝,就會(huì)得到更短的路徑,這顯然是矛盾的鸭栖;從起始點(diǎn)到結(jié)束點(diǎn)的路徑歌馍,必然要經(jīng)過第n個(gè)時(shí)刻,假如第n個(gè)時(shí)刻有k個(gè)狀態(tài)晕鹊,那么最終路徑一定經(jīng)過起始點(diǎn)到時(shí)刻n中k個(gè)狀態(tài)里最短路徑的點(diǎn)松却。
將時(shí)刻t隱藏狀態(tài)為i所有可能的狀態(tài)轉(zhuǎn)移路徑i1到i2的狀態(tài)最大值記為


我們可以據(jù)此由初始時(shí)刻依次向后推出每一個(gè)時(shí)刻的最大概率隱藏狀態(tài)颤介。

下面我們繼續(xù)以上一節(jié)中的例子來對(duì)viterbi算法進(jìn)行闡述:
小明不知道小紅是哪里人袜啃,他只能通過小紅每天的活動(dòng)來推斷那里的天氣摹菠。
假設(shè)連續(xù)三天榕吼,小紅的活動(dòng)依次為:“睡覺-打游戲-逛街”定血,我們將據(jù)此計(jì)算最有可能的天氣情況血崭。

我們需要得到三種天氣在第一天對(duì)應(yīng)的可能出現(xiàn)“睡覺”的可能性本股,考慮到初始概率向量:

現(xiàn)在開始遞推三個(gè)隱藏狀態(tài)(天氣)在第二天時(shí)對(duì)應(yīng)的各自可見狀態(tài)(打游戲):

在上式中混狠,
表示能使得
最大的前一時(shí)刻的隱藏狀態(tài)屑墨,比如

表示第一天為雨天能夠使得第二天為晴天的概率最大(也就是說如果第二天是晴天在最短路徑上的話躁锁,第一天是雨天也一定在最短路徑上,參見上文中Viterbi算法的基本思想)

下面繼續(xù)遞推第三天(逛街)的隱藏狀態(tài):

此時(shí)已經(jīng)到了最后的時(shí)刻卵史,我們開始回溯战转。

此時(shí)的最大概率為
由于
從而得到最終最有可能的隱藏狀態(tài)序列為:(雨天,雨天以躯,晴天)槐秧。

其計(jì)算過程示意圖如下圖所示。



在圖中忧设,線條上方的數(shù)字表示轉(zhuǎn)移概率(或初始概率)刁标,隱藏狀態(tài)點(diǎn)框內(nèi)的數(shù)字表示表現(xiàn)概率,隱藏狀態(tài)點(diǎn)框上方的數(shù)字表示此隱藏狀態(tài)點(diǎn)的最大聯(lián)合概率址晕,即
膀懈,指向隱藏節(jié)點(diǎn)i的紅色的線條表示使得節(jié)點(diǎn)i處聯(lián)合概率最大的路徑,加粗的紅色線條表示能使最終時(shí)刻聯(lián)合概率最大(即

)的路徑谨垃。

TF-IDF

TF-IDF(詞頻-逆文本頻率)是一種用以評(píng)估字詞在文檔中重要程度的統(tǒng)計(jì)方法吏砂。它的核心思想是撵儿,如果某個(gè)詞在一篇文章中出現(xiàn)的頻率即TF高,并且在其他文檔中出現(xiàn)的很少狐血,則認(rèn)為這個(gè)詞有很好的類別區(qū)分能力淀歇。


其中:

式中,分子為i詞在j文檔中出現(xiàn)的次數(shù)匈织,分母為j文檔中所有字詞出現(xiàn)的次數(shù)之和浪默。
式中分子為語料庫(kù)中的文件總數(shù),分母為包含該詞的文件數(shù)目缀匕。
jieba分詞中逆文檔頻率直接由詞典讀入纳决。

TextRank

TextRank是一種用以關(guān)鍵詞提取的算法,因?yàn)槭腔赑ageRank的乡小,所以先介紹PageRank阔加。
PageRank通過互聯(lián)網(wǎng)中的超鏈接關(guān)系確定一個(gè)網(wǎng)頁的排名,其公式是通過一種投票的思想來設(shè)計(jì)的:如果我們計(jì)算網(wǎng)頁A的PageRank值满钟,那么我們需要知道哪些網(wǎng)頁鏈接到A胜榔,即首先得到A的入鏈,然后通過入鏈給網(wǎng)頁A進(jìn)行投票來計(jì)算A的PR值湃番。其公式為:



其中:


要計(jì)算PR值的網(wǎng)頁

鏈接到Vi的網(wǎng)頁夭织,即它的入鏈

Vj的PR值

所有入鏈的集合

網(wǎng)頁j中鏈接存在的鏈接指向的網(wǎng)頁的集合

其個(gè)數(shù)

d為阻尼系數(shù),取值范圍為0-1吠撮,代表從一定點(diǎn)指向其他任意點(diǎn)的概率尊惰,一般取值0.85。
將上式多次迭代即可直到收斂即可得到結(jié)果泥兰。

TextRank算法基于PageRank的思想弄屡,利用投票機(jī)制對(duì)文本中重要成分進(jìn)行排序。如果兩個(gè)詞在一個(gè)固定大小的窗口內(nèi)共同出現(xiàn)過鞋诗,則認(rèn)為兩個(gè)詞之間存在連線琢岩。

TextRank算法的得分定義為:
公式1

公式與PageRank的基本相同。多次迭代直至收斂师脂,即可得到結(jié)果。
在jieba分詞中江锨,TextRank設(shè)定的詞窗口大小為5吃警,將公式1迭代10次的結(jié)果作為最終權(quán)重的結(jié)果,而不一定迭代至收斂啄育。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酌心,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子挑豌,更是在濱河造成了極大的恐慌安券,老刑警劉巖墩崩,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異侯勉,居然都是意外死亡鹦筹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門址貌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铐拐,“玉大人,你說我怎么就攤上這事练对”轶” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵螟凭,是天一觀的道長(zhǎng)虚青。 經(jīng)常有香客問我,道長(zhǎng)螺男,這世上最難降的妖魔是什么棒厘? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮烟号,結(jié)果婚禮上绊谭,老公的妹妹穿的比我還像新娘。我一直安慰自己汪拥,他們只是感情好达传,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迫筑,像睡著了一般宪赶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脯燃,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天搂妻,我揣著相機(jī)與錄音,去河邊找鬼辕棚。 笑死欲主,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的逝嚎。 我是一名探鬼主播扁瓢,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼补君!你這毒婦竟也來了引几?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤挽铁,失蹤者是張志新(化名)和其女友劉穎伟桅,沒想到半個(gè)月后敞掘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡楣铁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年玖雁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片民褂。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡茄菊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赊堪,到底是詐尸還是另有隱情面殖,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布哭廉,位于F島的核電站脊僚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏遵绰。R本人自食惡果不足惜辽幌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望椿访。 院中可真熱鬧乌企,春花似錦、人聲如沸成玫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哭当。三九已至猪腕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钦勘,已是汗流浹背陋葡。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留彻采,地道東北人腐缤。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像肛响,于是被迫代替她去往敵國(guó)和親岭粤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354