學(xué)習(xí)筆記CB009:人工神經(jīng)網(wǎng)絡(luò)模型老客、手寫數(shù)字識(shí)別、多層卷積網(wǎng)絡(luò)震叮、詞向量胧砰、word2vec

人工神經(jīng)網(wǎng)絡(luò),借鑒生物神經(jīng)網(wǎng)絡(luò)工作原理數(shù)學(xué)模型苇瓣。

由n個(gè)輸入特征得出與輸入特征幾乎相同的n個(gè)結(jié)果尉间,訓(xùn)練隱藏層得到意想不到信息。信息檢索領(lǐng)域击罪,模型訓(xùn)練合理排序模型哲嘲,輸入特征,文檔質(zhì)量外邓、文檔點(diǎn)擊歷史撤蚊、文檔前鏈數(shù)目、文檔錨文本信息损话,為找特征隱藏信息侦啸,隱藏層神經(jīng)元數(shù)目設(shè)置少于輸入特征數(shù)目,經(jīng)大量樣本訓(xùn)練能還原原始特征模型丧枪,相當(dāng)用少于輸入特征數(shù)目信息還原全部特征光涂,壓縮,可發(fā)現(xiàn)某些特征之間存在隱含相關(guān)性拧烦,或者有某種特殊關(guān)系忘闻。讓隱藏層神經(jīng)元數(shù)目多余輸入特征數(shù)目,訓(xùn)練模型可展示特征之間某種細(xì)節(jié)關(guān)聯(lián)恋博。輸出輸入一致齐佳,自編碼算法私恬。

人工神經(jīng)網(wǎng)絡(luò)模型,多層神經(jīng)元結(jié)構(gòu)建立炼吴,每一層抽象一種思維過程本鸣,經(jīng)多層思考,得出結(jié)論硅蹦。神經(jīng)網(wǎng)絡(luò)每一層有每一層專做事情荣德,每一層神經(jīng)元添加特殊約束條件。多層提取特定特征做機(jī)器學(xué)習(xí)是深度學(xué)習(xí)童芹。

卷積玷或,在一定范圍內(nèi)做平移并求平均值宛徊。卷積積分公式颅湘,對(duì)τ積分损拢,對(duì)固定x舞竿,找x附近所有變量蝉绷,求兩個(gè)函數(shù)乘積田度,并求和默怨。神經(jīng)網(wǎng)絡(luò)里面,每個(gè)神經(jīng)元計(jì)算輸出卷積公式久锥,神經(jīng)網(wǎng)絡(luò)每一層輸出一種更高級(jí)特征。自然語言异剥,較近上下文詞語之間存在一定相關(guān)性瑟由,標(biāo)點(diǎn)、特殊詞等分隔使冤寿、傳統(tǒng)自然語言處理脫離詞與詞之間關(guān)聯(lián)歹苦,丟失部分重要信息,利用卷積神經(jīng)網(wǎng)絡(luò)可以做多元(n-gram)計(jì)算督怜,不損失自然語言臨近詞相關(guān)性信息殴瘦。

自動(dòng)問答系統(tǒng)深度學(xué)習(xí)應(yīng)用RNN,利用時(shí)序建模号杠。

卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)蚪腋,二維離散卷積運(yùn)算和人工神經(jīng)網(wǎng)絡(luò)結(jié)合深度神經(jīng)網(wǎng)絡(luò)。自動(dòng)提取特征姨蟋。

手寫數(shù)字識(shí)別屉凯。http://yann.lecun.com/exdb/mnist/手寫數(shù)據(jù)集,文件是二進(jìn)制像素單位保存幾萬張圖片文件眼溶,https://github.com/warmheartli/ChatBotCourse悠砚。

多層卷積網(wǎng)絡(luò),第一層一個(gè)卷積和一個(gè)max pooling堂飞,卷積運(yùn)算“視野”5×5像素范圍灌旧,卷積使用1步長(zhǎng)绑咱、0邊距模板(保證輸入輸出同一個(gè)大小),1個(gè)輸入通道(圖片灰度枢泰,單色)羡玛,32個(gè)輸出通道(32個(gè)特征)。每張圖片28×28像素宗苍,第一次卷積輸出28×28大小稼稿。max pooling采用2×2大小模板,池化后輸出尺寸14×14讳窟,一共有32個(gè)通道让歼,一張圖片輸出是14×14×32=6272像素。第二層一個(gè)卷積和一個(gè)max pooling丽啡,輸入通道32個(gè)(對(duì)應(yīng)第一層32個(gè)特征)谋右,輸出通道64個(gè)(輸出64個(gè)特征),輸入每張大小14×14补箍,卷積層輸出14×14改执,經(jīng)過max pooling,輸出大小7×7坑雅,輸出像素7×7×64=3136辈挂。第三層一個(gè)密集連接層,一個(gè)有1024個(gè)神經(jīng)元全連接層裹粤,第二層輸出7×7×64個(gè)值作1024個(gè)神經(jīng)元輸入终蒂。神經(jīng)元激活函數(shù)為ReLu函數(shù),平滑版Softplus g(x)=log(1+e^x))遥诉。最終輸出層拇泣,第三層1024個(gè)輸出為輸入,設(shè)計(jì)一個(gè)softmax層矮锈,輸出10個(gè)概率值霉翔。

# coding:utf-8

import sys
import importlib
importlib.reload(sys)

from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf

flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_string('data_dir', './', 'Directory for storing data')

mnist = input_data.read_data_sets(FLAGS.data_dir, one_hot=True)

# 初始化生成隨機(jī)的權(quán)重(變量),避免神經(jīng)元輸出恒為0
def weight_variable(shape):
    # 以正態(tài)分布生成隨機(jī)值
    initial = tf.truncated_normal(shape, stddev=0.1)
    return tf.Variable(initial)

# 初始化生成隨機(jī)的偏置項(xiàng)(常量)苞笨,避免神經(jīng)元輸出恒為0
def bias_variable(shape):
    initial = tf.constant(0.1, shape=shape)
    return tf.Variable(initial)

# 卷積采用1步長(zhǎng)债朵,0邊距,保證輸入輸出大小相同
def conv2d(x, W):
    return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

# 池化采用2×2模板
def max_pool_2x2(x):
    return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
        strides=[1, 2, 2, 1], padding='SAME')

# 28*28=784
x = tf.placeholder(tf.float32, [None, 784])
# 輸出類別共10個(gè):0-9
y_ = tf.placeholder("float", [None,10])

# 第一層卷積權(quán)重猫缭,視野是5*5葱弟,輸入通道1個(gè),輸出通道32個(gè)
W_conv1 = weight_variable([5, 5, 1, 32])
# 第一層卷積偏置項(xiàng)有32個(gè)
b_conv1 = bias_variable([32])

# 把x變成4d向量猜丹,第二維和第三維是圖像尺寸芝加,第四維是顏色通道數(shù)1
x_image = tf.reshape(x, [-1,28,28,1])

h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
h_pool1 = max_pool_2x2(h_conv1)

# 第二層卷積權(quán)重,視野是5*5,輸入通道32個(gè)藏杖,輸出通道64個(gè)
W_conv2 = weight_variable([5, 5, 32, 64])
# 第二層卷積偏置項(xiàng)有64個(gè)
b_conv2 = bias_variable([64])

h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
h_pool2 = max_pool_2x2(h_conv2)

# 第二層池化后尺寸編程7*7将塑,第三層是全連接,輸入是64個(gè)通道蝌麸,輸出是1024個(gè)神經(jīng)元
W_fc1 = weight_variable([7 * 7 * 64, 1024])
# 第三層全連接偏置項(xiàng)有1024個(gè)
b_fc1 = bias_variable([1024])

h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*64])
h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)

# 按float做dropout点寥,以減少過擬合
keep_prob = tf.placeholder("float")
h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)

# 最后的softmax層生成10種分類
W_fc2 = weight_variable([1024, 10])
b_fc2 = bias_variable([10])

y_conv=tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2)

cross_entropy = -tf.reduce_sum(y_*tf.log(y_conv))
# Adam優(yōu)化器來做梯度最速下降
train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
correct_prediction = tf.equal(tf.argmax(y_conv,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))

sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())

for i in range(20000):
    batch = mnist.train.next_batch(50)
    if i%100 == 0:
        train_accuracy = accuracy.eval(feed_dict={
            x:batch[0], y_: batch[1], keep_prob: 1.0})
        print("step %d, training accuracy %g"%(i, train_accuracy))
    train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})

print("test accuracy %g"%accuracy.eval(feed_dict={
    x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0}))

詞向量。自然語言需要數(shù)學(xué)化才能被計(jì)算機(jī)認(rèn)識(shí)計(jì)算来吩。為每個(gè)詞分配一個(gè)編號(hào)敢辩,不能表示詞與詞關(guān)系。每一個(gè)詞對(duì)應(yīng)一個(gè)向量弟疆,詞義相近詞戚长,詞向量距離越近(歐氏距離、夾角余弦)怠苔。詞向量同廉,維度一般較低,一般是50維或100維柑司,可避免維度災(zāi)難迫肖,更容易深度學(xué)習(xí)。

語言模型表達(dá)已知前n-1個(gè)詞前提下攒驰,預(yù)測(cè)第n個(gè)詞的概率蟆湖。詞向量訓(xùn)練,無監(jiān)督學(xué)習(xí)讼育,沒有標(biāo)注數(shù)據(jù)帐姻,給n篇文章,可訓(xùn)練出詞向量奶段。基于三層神經(jīng)網(wǎng)絡(luò)構(gòu)建n-gram語言模型剥纷。最下面w是詞痹籍,上面C(w)是詞向量,詞向量一層是神經(jīng)網(wǎng)絡(luò)輸入層(第一層)晦鞋,輸入層是一個(gè)(n-1)×m矩陣蹲缠,n-1是詞向量數(shù)目,m是詞向量維度悠垛。第二層(隱藏層)是普通神經(jīng)網(wǎng)絡(luò)线定,H為權(quán)重,tanh為激活函數(shù)确买。第三層(輸出層)有|V|個(gè)節(jié)點(diǎn)斤讥,|V|是詞表大小,輸出U為權(quán)重湾趾,softmax作激活函數(shù)實(shí)現(xiàn)歸一化芭商,最終輸出某個(gè)詞概率派草。增加一個(gè)從輸入層到輸出層直連邊(線性變換),可提升模型效果铛楣,變換矩陣設(shè)為W近迁。假設(shè)C(w)是輸入x,y計(jì)算公式是y = b + Wx + Utanh(d+Hx)簸州。模型訓(xùn)練變量C鉴竭、H、U岸浑、W搏存。梯度下降法訓(xùn)練得出C是生成詞向量所用矩陣,C(w)是所需詞向量助琐。

詞向量應(yīng)用祭埂。找同義詞。案例google word2vec工具兵钮,訓(xùn)練好詞向量蛆橡,指定一個(gè)詞,返回cos距離最相近詞并排序掘譬。詞性標(biāo)注和語義角色標(biāo)注任務(wù)泰演。詞向量作神經(jīng)網(wǎng)絡(luò)輸入層,通過前饋網(wǎng)絡(luò)和卷積網(wǎng)絡(luò)完成葱轩。句法分析和情感分析任務(wù)睦焕。詞向量作遞歸神經(jīng)網(wǎng)絡(luò)輸入。命名實(shí)體識(shí)別和短語識(shí)別靴拱。詞向量作擴(kuò)展特征使用垃喊。詞向量 C(king)-C(queue)≈C(man)-C(woman),減法是向量逐維相減袜炕,C(king)-C(man)+C(woman)最相近向量是C(queue)本谜,語義空間線性關(guān)系。

詞向量是深度學(xué)習(xí)應(yīng)用NLP根基偎窘,word2vec是使用最廣泛最簡(jiǎn)單有效詞向量訓(xùn)練工具乌助。

一個(gè)記憶單元識(shí)別一個(gè)事物,叫l(wèi)ocalist representation陌知。幾個(gè)記憶單元分別識(shí)別基礎(chǔ)信息他托,通過這幾個(gè)記憶單元輸出,表示所有事物仆葡,叫distributed representation赏参,詞向量。localist representation 稀疏表達(dá),one hot vector登刺,每一類型用向量一維來表示籽腕。distributed representation 分布式表達(dá),增加表達(dá)只需要增加一個(gè)或很少特征維度纸俭。

word embedding皇耗,詞嵌入,范疇論揍很,morphism(態(tài)射)郎楼,態(tài)射表示兩個(gè)數(shù)學(xué)結(jié)構(gòu)中保持結(jié)構(gòu)過程抽象,一個(gè)域和另一個(gè)域之間關(guān)系窒悔。范疇論中嵌入(態(tài)射)保持結(jié)構(gòu)呜袁,word embedding表示“降維”嵌入,通過降維避免維度災(zāi)難简珠,降低計(jì)算復(fù)雜度阶界,更易于深度學(xué)習(xí)應(yīng)用。

word2vec本質(zhì)聋庵,通過distributed representation表達(dá)方式表示詞膘融,通過降維word embedding減少計(jì)算量。

word2vec訓(xùn)練神經(jīng)概率語言模型祭玉。word2vec CBOW和Skip-gram模型氧映。CBOW模型。Continuous Bag-of-Words Model脱货,已知當(dāng)前詞上下文預(yù)測(cè)當(dāng)前詞岛都。CBOW模型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),輸入層振峻,詞w上下文2c個(gè)詞的詞向量臼疫。投影層,輸入層2c個(gè)向量做求和累加扣孟。輸出層多矮,霍夫曼樹,葉子節(jié)點(diǎn)是語料出現(xiàn)過詞哈打,權(quán)重是出現(xiàn)次數(shù)。神經(jīng)網(wǎng)絡(luò)模型首尾相接改成求和累加讯壶,減少維度料仗。去掉隱藏層,減少計(jì)算量伏蚊。輸出層softmax歸一化運(yùn)算改成霍夫曼樹立轧。

基于霍夫曼樹Hierarchical Softmax技術(shù)。基于訓(xùn)練語料得到每一個(gè)可能w概率氛改≌饰霍夫曼樹,非根節(jié)點(diǎn)θ表示待訓(xùn)練參數(shù)向量胜卤,當(dāng)投射層產(chǎn)出新向量x疆导,邏輯回歸公式 σ(xTθ) = 1/(1+e^(-xTθ)),可得每一層被分到左節(jié)點(diǎn)(1)還是右節(jié)點(diǎn)(0)概率p(d|x,θ) = 1-σ(xTθ)和p(d|x,θ) = σ(xTθ)葛躏。以對(duì)數(shù)似然函數(shù)為優(yōu)化目標(biāo)澈段,假設(shè)兩個(gè)求和符號(hào)部分記作L(w, j),θ更新公式舰攒,x梯度公式败富,x多個(gè)v累加,word2vec中v更新方法摩窃。Skip-gram模型兽叮,Continuous Skip-gram Model,已知當(dāng)前詞情況預(yù)測(cè)上下文猾愿。Skip-gram模型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)鹦聪。輸入層,w詞向量v(w)匪蟀。投影層椎麦,v(w)。輸出層材彪,霍夫曼樹观挎。θ和v(w)更新公式,符號(hào)名從x改v(w)段化。

word2vec嘁捷,下載源碼,https://github.com/warmheartli/ChatBotCourse/tree/master/word2vec)显熏,執(zhí)行make編譯(mac系統(tǒng)代碼所有#include <malloc.h>替換成#include <sys/malloc.h>)雄嚣。編譯生成word2vec、word2phrase喘蟆、word-analogy缓升、distance、compute-accuracy二進(jìn)制文件蕴轨。訓(xùn)練港谊,語料,已切好詞(空格分隔)文本橙弱。執(zhí)行 ./word2vec -train train.txt -output vectors.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -thread 12 -binary 1 歧寺。生成vectors.bin文件燥狰,訓(xùn)練好詞向量二進(jìn)制文件,求近義詞了斜筐,執(zhí)行 ./distance vectors.bin 龙致。

參考資料:
《Python 自然語言處理》
http://www.shareditor.com/blogshow?blogId=92
http://www.shareditor.com/blogshow?blogId=97
http://www.shareditor.com/blogshow?blogId=99
http://www.shareditor.com/blogshow?blogId=100

歡迎推薦上海機(jī)器學(xué)習(xí)工作機(jī)會(huì),我的微信:qingxingfengzi

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末顷链,一起剝皮案震驚了整個(gè)濱河市目代,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蕴潦,老刑警劉巖像啼,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異潭苞,居然都是意外死亡忽冻,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門此疹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來僧诚,“玉大人,你說我怎么就攤上這事蝗碎『浚” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蹦骑,是天一觀的道長(zhǎng)慈省。 經(jīng)常有香客問我,道長(zhǎng)眠菇,這世上最難降的妖魔是什么边败? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮捎废,結(jié)果婚禮上笑窜,老公的妹妹穿的比我還像新娘。我一直安慰自己登疗,他們只是感情好排截,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辐益,像睡著了一般断傲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上智政,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天艳悔,我揣著相機(jī)與錄音,去河邊找鬼女仰。 笑死猜年,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疾忍。 我是一名探鬼主播乔外,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼一罩!你這毒婦竟也來了杨幼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤聂渊,失蹤者是張志新(化名)和其女友劉穎差购,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汉嗽,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡欲逃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了饼暑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稳析。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖弓叛,靈堂內(nèi)的尸體忽然破棺而出彰居,到底是詐尸還是另有隱情,我是刑警寧澤撰筷,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布陈惰,位于F島的核電站,受9級(jí)特大地震影響毕籽,放射性物質(zhì)發(fā)生泄漏抬闯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一影钉、第九天 我趴在偏房一處隱蔽的房頂上張望画髓。 院中可真熱鬧,春花似錦平委、人聲如沸奈虾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肉微。三九已至,卻和暖如春蜡塌,著一層夾襖步出監(jiān)牢的瞬間碉纳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工馏艾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留劳曹,地道東北人奴愉。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像铁孵,于是被迫代替她去往敵國(guó)和親锭硼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

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

  • 前面的文章主要從理論的角度介紹了自然語言人機(jī)對(duì)話系統(tǒng)所可能涉及到的多個(gè)領(lǐng)域的經(jīng)典模型和基礎(chǔ)知識(shí)蜕劝。這篇文章檀头,甚至之后...
    我偏笑_NSNirvana閱讀 13,906評(píng)論 2 64
  • 水三官 徐懷清//文 在我們村東頭有一座三官?gòu)R,學(xué)者們稱之為:水三官岖沛。這是為了區(qū)別于桃園三結(jié)義的漢(旱)三官暑始;另就...
    焦作太極徐閱讀 328評(píng)論 0 0
  • 今天,我去了青島嶗山的仰口和北九水婴削,因?yàn)閸魃绞侵袊?guó)的五星級(jí)景區(qū)廊镜,所以途中哪都很漂亮。 我們先去嶗山的九...
    穆靖洋閱讀 362評(píng)論 0 2
  • 這天天空剛剛下過一場(chǎng)雨馆蠕,雨水把天空洗凈期升。花兒走在回家的路上互躬,低頭看見路旁的小草兒播赁,草兒的葉子上掛著幾顆珍珠『鸲桑花兒...
    三更笙閱讀 355評(píng)論 0 1
  • 昨天我們解讀了現(xiàn)金流量表容为,對(duì)其中三大指標(biāo)“經(jīng)營(yíng)活動(dòng)現(xiàn)金流量、投資活動(dòng)現(xiàn)金流量寺酪、籌資活動(dòng)現(xiàn)金流量”做了具體分析和實(shí)例...
    曉燕讀財(cái)報(bào)閱讀 897評(píng)論 0 5