日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【NLP傻瓜式教程】手把手带你CNN文本分类(附代码)

發布時間:2025/3/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【NLP傻瓜式教程】手把手带你CNN文本分类(附代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章來源于NewBeeNLP,作者kaiyuan

寫在前面

本文是對經典論文《Convolutional Neural Networks for Sentence Classification[1]》的詳細復現,(應該是)基于TensorFlow 1.1以及python3.6。從數據預處理、模型搭建、模型訓練預測以及可視化一條龍講解,旨在為剛接觸該領域不知道如何下手搭建網絡的同學提供一個參考。廢話不說直接進入主題吧

NLP中的CNN

論文中是使用的CNN框架來實現對句子的分類,積極或者消極。當然這里我們首先必須對CNN有個大概的了解,可以參考我之前的這篇【Deep learning】卷積神經網絡CNN結構。目前主流來看,CNN主要是應用在computer vision領域,并且可以說由于CNN的出現,使得CV的研究與應用都有了質的飛躍。(可惜的是,目前在NLP領域還沒有這種玩意兒,不知道剛出的BERT算不算)【update@20200221:算!算!算!】

目前對NLP的研究分析應用最多的就是RNN系列的框架,比如RNN,GRU,LSTM等等,再加上Attention,基本可以認為是NLP的標配套餐了。但是在文本分類問題上,相比于RNN,CNN的構建和訓練更為簡單和快速,并且效果也不差,所以仍然會有一些研究。

那么,CNN到底是怎么應用到NLP上的呢?

不同于CV輸入的圖像像素,NLP的輸入是一個個句子或者文檔。句子或文檔在輸入時經過embedding(word2vec或者Glove)會被表示成向量矩陣,其中每一行表示一個詞語,行的總數是句子的長度,列的總數就是維度。例如一個包含十個詞語的句子,使用了100維的embedding,最后我們就有一個輸入為10x100的矩陣。

在CV中,filters是以一個patch(任意長度x任意寬度)的形式滑過遍歷整個圖像,但是在NLP中,filters會覆蓋到所有的維度,也就是形狀為 [filter_size, embed_size]。更為具體地理解可以看下圖,輸入為一個7x5的矩陣,filters的高度分別為2,3,4,寬度和輸入矩陣一樣為5。每個filter對輸入矩陣進行卷積操作得到中間特征,然后通過pooling提取最大值,最終得到一個包含6個值的特征向量。

弄清楚了CNN的結構,下面就可以開始實現文本分類任務了。

數據預處理

原論文中使用了好幾個數據集,這里我們只選擇其中的一個——Movie Review Data from Rotten Tomatoes[2]。該數據集包括了10662個評論,其中一半positive一半negative。

在數據處理階段,主要包括以下幾個部分:

1、load file

def load_data_and_labels(positive_file, negative_file):#load data from filespositive_examples = list(open(positive_file, "r", encoding='utf-8').readlines())positive_examples = [s.strip() for s in positive_examples]negative_examples = list(open(negative_file, "r", encoding='utf-8').readlines())negative_examples = [s.strip() for s in negative_examples]# Split by wordsx_text = positive_examples + negative_examplesx_text = [clean_str(sent) for sent in x_text]# Generate labelspositive_labels = [[0, 1] for _ in positive_examples]negative_labels = [[1, 0] for _ in negative_examples]y = np.concatenate([positive_labels, negative_labels], 0)return [x_text, y]

2、clean sentences

def clean_str(string):string = re.sub(r"[^A-Za-z0-9(),!?\'\`]", " ", string)string = re.sub(r"\'s", " \'s", string)string = re.sub(r"\'ve", " \'ve", string)string = re.sub(r"n\'t", " n\'t", string)string = re.sub(r"\'re", " \'re", string)string = re.sub(r"\'d", " \'d", string)string = re.sub(r"\'ll", " \'ll", string)string = re.sub(r",", " , ", string)string = re.sub(r"!", " ! ", string)string = re.sub(r"\(", " \( ", string)string = re.sub(r"\)", " \) ", string)string = re.sub(r"\?", " \? ", string)string = re.sub(r"\s{2,}", " ", string)return string.strip().lower()

模型實現

論文中使用的模型如下所示其中第一層為embedding layer,用于把單詞映射到一組向量表示。接下去是一層卷積層,使用了多個filters,這里有3,4,5個單詞一次遍歷。接著是一層max-pooling layer得到了一列長特征向量,然后在dropout 之后使用softmax得出每一類的概率。

在一個CNN類中實現上述模型

class TextCNN(object):"""A CNN class for sentence classificationWith a embedding layer + a convolutional, max-pooling and softmax layer"""def __init__(self, sequence_length, num_classes, vocab_size,embedding_size, filter_sizes, num_filters, l2_reg_lambda=0.0):""":param sequence_length: The length of our sentences:param num_classes: Number of classes in the output layer(pos and neg):param vocab_size: The size of our vocabulary:param embedding_size: The dimensionality of our embeddings.:param filter_sizes: The number of words we want our convolutional filters to cover:param num_filters: The number of filters per filter size:param l2_reg_lambda: optional

這里再注釋一下filter_sizes和num_filters。filters_sizes是指filter每次處理幾個單詞,num_filters是指每個尺寸的處理包含幾個filter。

1. Input placeholder

tf.placeholder是tensorflow的一種占位符,與feeed_dict同時使用。在訓練或者測試模型階段,我們可以通過feed_dict來喂入輸入變量。

# set placeholders for variables self.input_x = tf.placeholder(tf.int32, [None, sequence_length], name='input_x') self.input_y = tf.placeholder(tf.float32, [None, num_classes], name='input_y') self.dropout_keep_prob = tf.placeholder(tf.float32, name='dropout_keep_prob')

tf.placeholder函數第一個參數是變量類型,第二個參數是變量shape,其中None表示sample的個數,第三個name參數用于指定名字。

dropout_keep_prob變量是在dropout階段使用的,我們在訓練的時候選取50%的dropout,在測試時不使用dropout。

2. Embedding layer

我們需要定義的第一個層是embedding layer,用于將詞語轉變成為一組向量表示。

# embedding layerwith tf.name_scope('embedding'):self.W = tf.Variable(tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0), name='weight')self.embedded_chars = tf.nn.embedding_lookup(self.W, self.input_x)# TensorFlow’s convolutional conv2d operation expects a 4-dimensional tensor# with dimensions corresponding to batch, width, height and channel.self.embedded_chars_expanded = tf.expand_dims(self.embedded_chars, -1)

W 是在訓練過程中學習到的參數矩陣,然后通過tf.nn.embedding_lookup來查找到與input_x相對應的向量表示。tf.nn.embedding_lookup返回的結果是一個三維向量,[None, sequence_length, embedding_size]。但是后一層的卷積層要求輸入為四維向量(batch, width,height,channel)。所以我們要將結果擴展一個維度,才能符合下一層的輸入。

3. Convolution and Max-Pooling Layers

在卷積層中最重要的就是filter。回顧本文的第一張圖,我們一共有三種類型的filter,每種類型有兩個。我們需要迭代每個filter去處理輸入矩陣,將最終得到的所有結果合并為一個大的特征向量。

# conv + max-pooling for each filter pooled_outputs = [] for i, filter_size in enumerate(filter_sizes):with tf.name_scope('conv-maxpool-%s' % filter_size):# conv layerfilter_shape = [filter_size, embedding_size, 1, num_filters]W = tf.Variable(tf.truncated_normal(filter_shape, stddev=0.1), name='W')b = tf.Variable(tf.constant(0.1, shape=[num_filters]), name='b')conv = tf.nn.conv2d(self.embedded_chars_expanded, W, strides=[1,1,1,1],padding='VALID', name='conv')# activationh = tf.nn.relu(tf.nn.bias_add(conv, b), name='relu')# max poolingpooled = tf.nn.max_pool(h, ksize=[1, sequence_length-filter_size + 1, 1, 1],strides=[1,1,1,1], padding='VALID', name='pool')pooled_outputs.append(pooled)# combine all the pooled fratures num_filters_total = num_filters * len(filter_sizes) self.h_pool = tf.concat(pooled_outputs, 3) # why 3? self.h_pool_flat = tf.reshape(self.h_pool, [-1, num_filters_total])

這里W 就是filter矩陣,?tf.nn.conv2d是tensorflow的卷積操作函數,其中幾個參數包括

  • strides表示每一次filter滑動的距離,它總是一個四維向量,而且首位和末尾必定要是1,[1, width, height, 1]。

  • padding有兩種取值:VALID和SAME。

    • VALID是指不在輸入矩陣周圍填充0,最后得到的output的尺寸小于input;

    • SAME是指在輸入矩陣周圍填充0,最后得到output的尺寸和input一樣;

這里我們使用的是‘VALID’,所以output的尺寸為[1, sequence_length - filter_size + 1, 1, 1]。

接下去是一層max-pooling,pooling比較好理解,就是選出其中最大的一個。經過這一層的output尺寸為?[batch_size, 1, 1, num_filters]。

4. Dropout layer

這個比較好理解,就是為了防止模型的過擬合,設置了一個神經元激活的概率。每次在dropout層設置一定概率使部分神經元失效, 每次失效的神經元都不一樣,所以也可以認為是一種bagging的效果。

# dropout with tf.name_scope('dropout'):self.h_drop = tf.nn.dropout(self.h_pool_flat, self.dropout_keep_prob)

5. Scores and Predictions

我們可以通過對上述得到的特征進行運算得到每個分類的分數score,并且可以通過softmax將score轉化成概率分布,選取其中概率最大的一個作為最后的prediction

#score and prediction with tf.name_scope("output"):W = tf.get_variable('W', shape=[num_filters_total, num_classes],initializer = tf.contrib.layers.xavier_initializer())b = tf.Variable(tf.constant(0.1, shape=[num_classes]), name='b')l2_loss += tf.nn.l2_loss(W)l2_loss += tf.nn.l2_loss(b)self.score = tf.nn.xw_plus_b(self.h_drop, W, b, name='scores')self.prediction = tf.argmax(self.score, 1, name='prediction')

6. Loss and Accuracy

通過score我們可以計算得出模型的loss,而我們訓練的目的就是最小化這個loss。對于分類問題,最常用的損失函數是cross-entropy 損失

# mean cross-entropy loss with tf.name_scope('loss'):losses = tf.nn.softmax_cross_entropy_with_logits(logits=self.score, labels=self.input_y)self.loss = tf.reduce_mean(losses) + l2_reg_lambda * l2_loss

為了在訓練過程中實時觀測訓練情況,我們可以定義一個準確率

# accuracy with tf.name_scope('accuracy'):correct_predictions = tf.equal(self.prediction, tf.argmax(self.input_y, 1))self.accuracy = tf.reduce_mean(tf.cast(correct_predictions, 'float'), name='accuracy')

到目前為止,我們的模型框架已經搭建完成,可以使用Tensorboardd來瞧一瞧到底是個啥樣

模型訓練

接下去我們就要開始使用影評數據來訓練網絡啦。

創建圖和session

對于Tensorflow有兩個重要的概念:Graph和Session。

  • Session會話可以理解為一個計算的環境,所有的operation只有在session中才能返回結果;

  • Graph圖就可以理解為上面那個圖片,在圖里面包含了所有要用到的操作operations和張量tensors。

PS:在一個項目中可以使用多個graph,不過我們一般習慣只用一個就行。同時,在一個graph中可以有多個session,但是在一個session中不能有多個graph。

with tf.Graph().as_default():session_conf = tf.ConfigProto(# allows TensorFlow to fall back on a device with a certain operation implementedallow_soft_placement= FLAGS.allow_soft_placement,# allows TensorFlow log on which devices (CPU or GPU) it places operationslog_device_placement=FLAGS.log_device_placement)sess = tf.Session(config=session_conf)

Initialize CNN

cnn = TextCNN(sequence_length=x_train.shape[1],num_classes=y_train.shape[1],vocab_size= len(vocab_processor.vocabulary_),embedding_size=FLAGS.embedding_dim,filter_sizes= list(map(int, FLAGS.filter_sizes.split(','))),num_filters= FLAGS.num_filters,l2_reg_lambda= FLAGS.l2_reg_lambda) global_step = tf.Variable(0, name='global_step', trainable=False) optimizer = tf.train.AdamOptimizer(1e-3) grads_and_vars = optimizer.compute_gradients(cnn.loss) train_op = optimizer.apply_gradients(grads_and_vars, global_step=global_step)

這里train_op的作用就是更新參數,每運行一次train_op,global_step都會增加1。

Summaries

Tensorflow有一個特別實用的操作,summary,它可以記錄訓練時參數或者其他變量的變化情況并可視化到tensorboard。使用tf.summary.FileWriter()函數可以將summaries寫入到硬盤保存到本地。

# visualise gradient grad_summaries = [] for g, v in grads_and_vars:if g is not None:grad_hist_summary = tf.summary.histogram('{}/grad/hist'.format(v.name),g)sparsity_summary = tf.summary.scalar('{}/grad/sparsity'.format(v.name), tf.nn.zero_fraction(g))grad_summaries.append(grad_hist_summary)grad_summaries.append(sparsity_summary) grad_summaries_merged = tf.summary.merge(grad_summaries)# output dir for models and summaries timestamp = str(time.time()) out_dir = os.path.abspath(os.path.join(os.path.curdir, 'run', timestamp)) print('Writing to {} \n'.format(out_dir))# summaries for loss and accuracy loss_summary = tf.summary.scalar('loss', cnn.loss) accuracy_summary = tf.summary.scalar('accuracy', cnn.accuracy)# train summaries train_summary_op = tf.summary.merge([loss_summary, accuracy_summary]) train_summary_dir = os.path.join(out_dir, 'summaries', 'train') train_summary_writer = tf.summary.FileWriter(train_summary_dir, sess.graph)# dev summaries dev_summary_op = tf.summary.merge([loss_summary, accuracy_summary]) dev_summary_dir = os.path.join(out_dir, 'summaries', 'dev') dev_summary_writer = tf.summary.FileWriter(dev_summary_dir, sess.graph)

Checkpointing

checkpointing的作用就是可以保存每個階段訓練模型的參數,然后我們可以根據準確率來選取最好的一組參數。

checkpoint_dir = os.path.abspath(os.path.join(out_dir, 'checkpoints')) checkpoint_prefix = os.path.join(checkpoint_dir, 'model') if not os.path.exists(checkpoint_dir):os.makedirs(checkpoint_dir) saver = tf.train.Saver(tf.global_variables(), max_to_keep=FLAGS.num_checkpoints)

Initializing the variables

在開始訓練之前,我們通常會需要初始化所有的變量。一般使用 tf.global_variables_initializer()就可以了。

Defining a single training step

我們可以定義一個單步訓練的函數,使用一個batch的數據來更新模型的參數

def train_step(x_batch, y_batch):"""A single training step:param x_batch::param y_batch::return:"""feed_dict = {cnn.input_x: x_batch,cnn.input_y: y_batch,cnn.dropout_keep_prob: FLAGS.dropout_keep_prob}_, step, summaries, loss, accuracy = sess.run([train_op, global_step, train_summary_op, cnn.loss, cnn.accuracy],feed_dict=feed_dict)time_str = datetime.datetime.now().isoformat()print("{}: step {}, loss {:g}, acc {:g}".format(time_str, step, loss, accuracy))train_summary_writer.add_summary(summaries, step)

這里的feed_dict就是我們前面提到的同placeholder一起使用的。必須在feed_dict中給出所有placeholder節點的值,否則程序就會報錯。

接著使用sess.run()運行前面定義的操作,最終可以得到每一步的損失、準確率這些信息。

類似地我們定義一個函數在驗證集數據上看看模型的準確率等

def dev_step(x_batch, y_batch, writer=None):"""Evaluate model on a dev setDisable dropout:param x_batch::param y_batch::param writer::return:"""feed_dict = {cnn.input_x: x_batch,cnn.input_y: y_batch,cnn.dropout_keep_prob: 1.0}step, summaries, loss, accuracy = sess.run([global_step, dev_summary_op, cnn.loss, cnn.accuracy],feed_dict=feed_dict)time_str = datetime.datetime.now().isoformat()print("{}: step {}, loss {:g}, acc {:g}".format(time_str, step, loss, accuracy))if writer:writer.add_summary(summaries, step)

Training loop

前面都定義好了以后就可以開始我們的訓練了。我們每次調用train_step函數批量的訓練數據并保存:

# generate batches batches = data_process.batch_iter(list(zip(x_train, y_train)), FLAGS.batch_size, FLAGS.num_epochs) # training loop for batch in batches:x_batch, y_batch = zip(*batch)train_step(x_batch, y_batch)current_step = tf.train.global_step(sess, global_step)if current_step % FLAGS.evaluate_every == 0:print('\n Evaluation:')dev_step(x_dev, y_dev, writer=dev_summary_writer)print('')if current_step % FLAGS.checkpoint_every == 0:path = saver.save(sess, checkpoint_prefix, global_step=current_step)print('Save model checkpoint to {} \n'.format(path))

最后輸出的效果大概是這樣的

Visualizing Results

我們可以在代碼目錄下打開終端輸入以下代碼來啟動瀏覽器的tensorboard:

tensorboard --logdir /runs/xxxxxx/summaries

小結

當然這只是一個利用CNN進行NLP分類任務(文本分類,情感分析等)的baseline,可以看出準確率并不是很高,后續還有很多可以優化的地方,包括使用pre-trained的Word2vec向量、加上L2正則化等等。

完整代碼可以在公眾號后臺回復"CNN2014"獲取。

本文參考資料

[1]

Convolutional Neural Networks for Sentence Classification: https://arxiv.org/abs/1408.5882

[2]

Movie Review Data from Rotten Tomatoes: http://www.cs.cornell.edu/people/pabo/movie-review-data/

-?END?-

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)備注:加入本站微信群或者qq群,請回復“加群”獲取一折本站知識星球優惠券,請回復“知識星球”喜歡文章,點個在看

總結

以上是生活随笔為你收集整理的【NLP傻瓜式教程】手把手带你CNN文本分类(附代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

精品福利网站 | 国产精品欧美久久久久三级 | 91大神精品视频 | 激情综合站 | 成人在线视频在线观看 | 六月色丁| 色天天综合久久久久综合片 | 毛片在线网 | 在线精品国产 | 国产精品黑丝在线观看 | 欧美日在线观看 | 玖玖玖精品| 国产免费久久久久 | 免费亚洲视频 | 天天色影院 | 欧美在线视频不卡 | 99精品视频精品精品视频 | 国产vs久久 | 日本91在线 | 97手机电影网 | 精品久久五月天 | 亚洲天天综合网 | 麻豆久久久久久久 | 免费一级片在线 | 国产小视频在线播放 | 中文字幕资源在线 | 91看片一区二区三区 | 国产xxxxx在线观看 | 九九热在线观看视频 | 麻豆国产精品永久免费视频 | 久久综合国产伦精品免费 | 久一在线 | 日本久久片| 国产精品一区二区久久精品爱微奶 | 久久tv视频 | 欧美韩日精品 | 亚洲欧美怡红院 | 国产精品久久久久久婷婷天堂 | 美腿丝袜一区二区三区 | 日韩深夜在线观看 | 午夜三级在线 | 欧美大片大全 | 91丨九色丨蝌蚪丨对白 | 波多野结衣电影一区二区 | 亚洲电影黄色 | 丁香激情综合 | 一级做a爱片性色毛片www | 激情五月婷婷综合 | 日本视频不卡 | 日本爱爱免费视频 | 黄网站色视频免费观看 | 九七视频在线 | 亚洲精品乱码久久久一二三 | 婷婷亚洲五月色综合 | 日韩精品中文字幕在线 | 国产女v资源在线观看 | 狠狠干激情 | 国产最新福利 | 欧美日韩在线观看视频 | 成人免费在线看片 | 亚洲精选在线观看 | 91丨九色丨首页 | 亚洲免费一级电影 | 91香蕉视频 mp4| 婷婷丁香六月天 | 婷婷五天天在线视频 | 999视频网 | 天天插夜夜操 | 黄色免费视频在线观看 | 免费av的网站 | 免费在线视频一区二区 | 97电影在线看视频 | 国产专区欧美专区 | 国产精品av在线 | 国产剧情在线一区 | 免费久久视频 | 欧美国产91| 91精品天码美女少妇 | 婷婷色在线播放 | 国产69精品久久app免费版 | 婷婷五月色综合 | www在线观看视频 | 久久精品这里精品 | 中文字幕免费观看视频 | 日韩午夜在线 | 国产精品日韩在线观看 | 国产人免费人成免费视频 | 国产精品自在线 | 久久精品1区| 天天激情综合 | 91专区在线观看 | 欧美一级乱黄 | av免费播放| 97超视频免费观看 | 亚洲在线激情 | 天天做天天爱天天综合网 | 人人干网站 | 美女视频黄在线观看 | 麻豆果冻剧传媒在线播放 | 成人av午夜| 欧美精品乱码久久久久久按摩 | 免费看成人a | 麻豆精品视频在线观看免费 | 99精品网站 | 在线播放一区二区三区 | 国产一级二级三级在线观看 | 日韩成人精品 | 色噜噜在线观看视频 | 午夜在线看 | 99久高清在线观看视频99精品热在线观看视频 | 国产精品观看在线亚洲人成网 | 成年人免费av网站 | 四虎成人精品永久免费av九九 | www成人av | 最新中文在线视频 | 亚洲精品观看 | 久久任你操 | 午夜三级在线 | 色94色欧美 | 国产成人区 | 美女视频久久黄 | 国产香蕉视频在线观看 | 日韩在线视频一区 | 国内毛片毛片 | 日韩影视精品 | 在线午夜电影神马影院 | 色视频网站免费观看 | 国产高清综合 | a级国产乱理论片在线观看 伊人宗合网 | 日韩专区 在线 | 久久久久9999亚洲精品 | 丰满少妇高潮在线观看 | 韩国av免费观看 | 久久九九免费视频 | 天天爽夜夜操 | 97人人人人 | 在线观看 亚洲 | 97操操操 | 97精产国品一二三产区在线 | 韩国av一区二区 | 国产国产人免费人成免费视频 | 香蕉视频在线免费 | 国产精品久久艹 | 玖玖国产精品视频 | 成人91免费视频 | 夜夜操天天摸 | 日韩精品一二三 | 一区二区精品视频 | 日韩手机视频 | 一级黄色片在线观看 | 探花视频在线观看免费版 | 97超碰资源站| 亚洲精品免费在线 | 日韩精品网址 | 少妇bbbb搡bbbb桶 | 伊人久久国产精品 | 久久精品视频免费播放 | 天天摸日日操 | 天天综合成人 | 色偷偷88888欧美精品久久久 | 久久久久久久福利 | 日韩一区二区三区免费电影 | 久草在线视频在线 | 日韩乱理| 超碰最新网址 | 久青草电影 | 免费一区在线 | 成人黄色电影免费观看 | 精品九九九 | 激情 亚洲 | 不卡视频在线 | 九九久久在线看 | 精品视频中文字幕 | 国产精品婷婷 | 亚洲国内在线 | 黄色片免费电影 | 天海翼一区二区三区免费 | 精品福利网 | 亚洲精品字幕在线观看 | 国产999精品久久久 免费a网站 | 日韩有色 | 亚洲人成在 | 免费看网站在线 | 国产精品久久在线 | 中文字幕在线免费播放 | 婷婷国产精品 | 欧美 日韩 成人 | 中文字幕中文字幕在线中文字幕三区 | 蜜臀久久99精品久久久无需会员 | 色爱区综合激月婷婷 | 人人干在线观看 | 五月婷婷视频在线观看 | av中文字幕免费在线观看 | 亚洲精品久久久蜜桃 | 有码中文字幕在线观看 | 在线播放日韩av | 99在线视频免费观看 | 97成人在线视频 | 欧美一区二区三区在线播放 | 中文字幕永久 | 久久国产精品免费 | 天天操天天摸天天射 | 一级a毛片高清视频 | 久久99精品国产91久久来源 | 国内精品久久久久影院优 | 欧美成人精品欧美一级乱黄 | 黄色大全在线观看 | 成人免费在线观看av | 久草视频中文在线 | 日本在线视频网址 | 在线视频麻豆 | 日韩高清一区二区 | 看毛片网站 | 精品国产午夜 | 久久的色 | 国产精品毛片一区二区 | 91欧美精品 | 九九日韩 | 91视频久久久久 | 国产福利在线 | 亚洲一区二区精品在线 | 日韩av午夜在线观看 | 国产高清免费视频 | www久草| 久久精品日产第一区二区三区乱码 | 一区二区中文字幕在线播放 | 97福利在线| 免费日韩 | 国产成人区 | 日日爱视频 | 色狠狠综合 | 亚洲一区视频免费观看 | 亚洲精品天天 | 日韩av片免费在线观看 | 久久成年人视频 | 狠狠躁夜夜躁人人爽超碰91 | 日韩欧美在线免费观看 | 免费久久片 | 一区二区三区三区在线 | 国产日韩欧美在线观看视频 | 久久国色夜色精品国产 | 黄色网址a | 香蕉影院在线播放 | 狠狠综合网 | 日韩欧美国产激情在线播放 | 人人玩人人添人人澡超碰 | 三级av在线播放 | 天天干天天操天天搞 | 91九色最新| 日本精品在线 | 久久人人爽人人爽人人片 | 69国产精品成人在线播放 | 久久在线影院 | 国内丰满少妇猛烈精品播 | 精品91| 精品久久久久久亚洲综合网 | 天天射综合 | 丁香婷婷激情啪啪 | 欧美精品被 | 成人午夜电影久久影院 | 国产涩涩在线观看 | 天天干天天操天天射 | 91精品国产91| 99免费在线视频观看 | 人人射网站 | 久久公开免费视频 | 国产xvideos免费视频播放 | 亚洲精品久久激情国产片 | 亚洲国产精品一区二区久久,亚洲午夜 | 四虎成人av | 东方av在 | 成年人电影免费看 | 天堂av中文字幕 | 欧美一区二区三区在线 | 国产免费观看高清完整版 | 欧美成人手机版 | 久久久高清视频 | 一区二区三区在线观看免费视频 | 欧美国产日韩一区二区三区 | 午夜精品久久一牛影视 | 免费99精品国产自在在线 | 国产精品午夜久久久久久99热 | 久久久国内精品 | 97操操操 | 蜜桃麻豆www久久囤产精品 | 欧美影片| 在线亚洲成人 | 久久精品国产亚洲a | 国产在线不卡 | 欧美a√大片 | 免费在线 | 九九热免费精品视频 | 最近中文字幕大全 | 色丁香综合 | 亚洲高清在线 | 国产黄在线看 | 久久久污| 欧美激情在线网站 | 免费视频成人 | 欧美日韩精品在线观看视频 | 一区中文字幕在线观看 | 91精品国产综合久久福利 | 中文在线资源 | 手机看片久久 | 亚洲午夜久久久久久久久 | 一二三区av | 色婷婷九月 | 欧美坐爱视频 | 又黄又爽又无遮挡免费的网站 | 91精品伦理 | www.看片网站 | 高清av在线免费观看 | 亚洲国产精品久久久 | 久久人人添人人爽添人人88v | 天天狠狠 | 日韩视频在线观看视频 | 久久字幕 | 欧美日韩在线播放一区 | 激情丁香在线 | 欧美成人高清 | 91香蕉视频污在线 | 91禁在线观看 | 欧美日韩国产在线观看 | 成年人在线观看免费视频 | 亚洲午夜精品久久久久久久久久久久 | 久久午夜剧场 | 9999精品视频| 国产精品 日韩 欧美 | 丁香婷婷久久久综合精品国产 | 欧美日韩激情视频8区 | 最新亚洲视频 | 伊人狠狠色 | 91在线蜜桃臀 | 欧美日本不卡视频 | av片子在线观看 | 国产大片黄色 | 特级毛片网 | 国内精品久久久久久久影视简单 | www91在线| 九九在线精品视频 | 香蕉国产91 | 日韩大片在线观看 | 国产精品乱码一区二三区 | 丁香伊人网 | 日日摸日日添日日躁av | 九九热在线精品视频 | 成人av一区二区三区 | 亚洲 欧美变态 另类 综合 | 婷婷亚洲综合 | 中文字幕 国产视频 | 亚洲一区精品人人爽人人躁 | 正在播放国产一区二区 | 国产一区二区电影在线观看 | 日日夜夜噜噜噜 | 在线免费av播放 | 日韩中文字幕在线不卡 | 国产精品第72页 | 成人午夜剧场在线观看 | 91免费观看国产 | 91黄视频在线观看 | 精品96久久久久久中文字幕无 | 成人一区二区三区在线 | 亚洲最新在线 | 婷婷久草 | 黄色软件网站在线观看 | 欧美日韩不卡在线观看 | 色综合天天爱 | 国产一区二区不卡视频 | 国产精品mv | 最近最新最好看中文视频 | 国产精品久久久久久吹潮天美传媒 | 最新av网站在线观看 | 日批视频在线 | 欧美日性视频 | 欧美俄罗斯性视频 | 就要干b | 日韩欧美一区二区三区在线 | 国产美女主播精品一区二区三区 | 欧美经典久久 | 亚洲专区中文字幕 | 久久91网 | 亚洲最大免费成人网 | 91中文字幕在线 | 天堂成人在线 | 国产精品丝袜在线 | 久久av免费电影 | 久久在线| 国产精品成人一区二区三区吃奶 | 久草视频视频在线播放 | 精品亚洲视频在线 | 亚洲专区在线视频 | 亚洲视频每日更新 | 国产精品美女免费视频 | 免费网站观看www在线观看 | 日韩一区精品 | 亚洲福利精品 | 中文字幕资源站 | 91久久久国产精品 | 欧美日韩中文在线视频 | 韩日精品在线 | 国产精品美女久久久免费 | 日韩欧美国产成人 | 亚洲综合干 | 9999在线| avove黑丝 | 国产精品18久久久久久久网站 | sesese图片 | 亚洲精品免费观看视频 | 热久在线| 亚洲天天综合网 | 亚洲精品久 | 91麻豆精品国产 | 99久久精品国产一区二区成人 | 精品久久久久亚洲 | 播五月婷婷 | 中文字幕乱在线伦视频中文字幕乱码在线 | 亚洲精品白浆高清久久久久久 | 久久草草热国产精品直播 | 国产玖玖精品视频 | 91在线免费视频 | 亚洲理论电影网 | 国产精品ⅴa有声小说 | 日韩在线视频免费播放 | 麻豆视频观看 | 国产伦精品一区二区三区照片91 | 一区二区三区在线看 | 就要色综合 | 久久这里只有精品视频首页 | 又黄又爽又刺激的视频 | 亚洲一级免费电影 | 婷婷丁香七月 | 国产一级在线观看 | 欧美日韩色婷婷 | 日韩精品中文字幕在线观看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 日韩免费播放 | 欧美激情视频一二三区 | 激情视频一区 | 五月天狠狠操 | 色综合天天色综合 | 免费在线一区二区三区 | 精品久久九九 | 视频福利在线 | 五月激情丁香婷婷 | 久久毛片视频 | 五月天婷亚洲天综合网鲁鲁鲁 | 国产成人精品av在线 | 国产精品久久久久久久午夜 | 精品国产91亚洲一区二区三区www | 豆豆色资源网xfplay | 日本爱爱免费 | 97精品国自产拍在线观看 | 热久在线 | 精品视频免费看 | 992tv在线观看网站 | 香蕉色综合 | 国产日产精品一区二区三区四区 | 久久高清| 狠狠色噜噜狠狠狠狠 | 国产手机在线观看视频 | av九九九| 久久久久久片 | 97视频在线观看视频免费视频 | 四虎影视www| 国产理论免费 | 久久久黄色免费网站 | a视频免费在线观看 | 中国老女人日b | 五月精品| 欧美精品一区在线 | 国产99久久九九精品免费 | 黄色av大片 | 一区二区三区中文字幕在线观看 | www久草| 国产永久免费高清在线观看视频 | 国产麻豆视频网站 | 午夜色婷婷 | av免费在线网 | 欧美日韩一区二区在线 | 精品国产91亚洲一区二区三区www | 国内久久久久久 | 天天看天天干 | 午夜 在线 | 久久久综合九色合综国产精品 | 五月婷在线观看 | 91精品免费在线视频 | 久色小说| 日韩免费一区二区三区 | 久草在线看片 | 丁香婷婷色月天 | 午夜精品婷婷 | 香蕉在线播放 | 精品a级片| 亚洲成aⅴ人片久久青草影院 | 国产美女无遮挡永久免费 | 成人sm另类专区 | av福利超碰网站 | 国产一区精品在线 | 日本大尺码专区mv | 国产精品嫩草69影院 | 三级动态视频在线观看 | 久久99热国产 | 婷婷开心久久网 | 日日夜夜精品网站 | 99精品视频在线观看播放 | 日韩精品一区电影 | 国产免费观看高清完整版 | 欧美日韩一区二区视频在线观看 | 欧美人牲 | 欧美一区二区在线 | 麻豆国产露脸在线观看 | 精品国产91亚洲一区二区三区www | 久久久久久不卡 | 免费看黄的视频 | 最近中文字幕高清字幕免费mv | 日躁夜躁狠狠躁2001 | av在线一级 | 丝袜美腿一区 | 九九精品视频在线观看 | 韩国av电影在线观看 | 热久久精品在线 | 久久无码av一区二区三区电影网 | 久久精品这里精品 | 日韩av电影免费在线观看 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 成人久久影院 | 欧美在线1 | 九九精品毛片 | 激情综合网婷婷 | 亚洲91网站 | 欧美污污网站 | 91高清免费在线观看 | 国产精品视频不卡 | 日韩高清在线一区二区 | 99r精品视频在线观看 | japanesefreesex中国少妇 | 黄色毛片网站在线观看 | 激情视频久久 | 国产久草在线 | 日韩精品一区二区在线观看视频 | 91av视频播放 | 一区中文字幕电影 | 久久精品一二三 | 欧美日韩另类视频 | 韩国精品福利一区二区三区 | 国产亚洲精品成人av久久影院 | 99re久久精品国产 | 一级欧美黄 | 韩国精品在线观看 | 国产日韩在线观看一区 | 中文字幕 在线 一 二 | 日本中文字幕观看 | 国产香蕉视频在线播放 | 在线观看中文字幕网站 | 在线黄网站 | 亚洲久草视频 | 国产精品久久久一区二区三区网站 | 亚洲精品av中文字幕在线在线 | 大片网站久久 | 91黄色在线视频 | 91九色视频网站 | 国产+日韩欧美 | 国产欧美精品一区二区三区四区 | 中文字幕久久网 | 国产香蕉97碰碰久久人人 | 在线观看日韩免费视频 | 蜜桃久久久| 婷婷色视频 | 色婷婷啪啪免费在线电影观看 | 99精品久久久久久久久久综合 | 色停停五月天 | 日日碰夜夜爽 | 日韩精品一区二区在线观看视频 | 天天狠狠干 | 精品一区二区影视 | 日本在线中文在线 | 国产很黄很色的视频 | 久久综合五月 | 国产福利在线不卡 | 午夜国产一区二区三区四区 | 亚洲男男gaygayxxxgv | 亚洲一区动漫 | 日韩专区在线播放 | 成人亚洲精品久久久久 | 日本在线中文 | 亚洲乱码中文字幕综合 | 91精品国产91久久久久福利 | 欧美日韩99| 免费在线h| 国产一二三区在线观看 | 国产精品综合久久久 | 在线国产视频一区 | 九九在线高清精品视频 | 中文字幕一区二区在线观看 | 亚洲精品国产高清 | 国产精品福利在线观看 | 久久久穴 | 91av视频| 天天天插 | 国产精品日韩高清 | 丁香六月天| 中文字幕乱码亚洲精品一区 | 中文视频在线看 | 国产日韩在线视频 | 玖玖在线免费视频 | 天天干天天干天天射 | 免费看国产一级片 | 色综合久久久久久中文网 | 男女视频久久久 | 色婷婷亚洲精品 | 日韩国产高清在线 | 四虎天堂| 欧美成天堂网地址 | 天天操比 | 最近中文字幕久久 | 96国产在线 | 久久中文精品视频 | 色婷婷色| 亚洲婷婷免费 | 精品视频一区在线 | 成人小视频在线免费观看 | 亚洲理论在线 | 中文字幕在线一二 | 亚洲一区日韩在线 | 99热国产在线中文 | 久久桃花网 | 欧美午夜a | 日日摸日日 | 欧美极品在线播放 | 国产精品免费小视频 | 欧美天堂久久 | 很黄很黄的网站免费的 | 日韩天天综合 | 日韩精品大片 | 婷婷色网址 | 草久电影| 午夜影院一级 | av成人在线看| 日韩a级免费视频 | 欧美性粗大hdvideo | 色婷婷六月天 | www狠狠 | 97av精品 | 亚洲另类视频在线观看 | 久草视频中文 | 久久人人爽人人爽人人片av免费 | 国产亚洲成人精品 | 婷婷丁香五 | 国产精品九九久久99视频 | 国产福利在线不卡 | 久久久久久久国产精品影院 | 99精品免费在线观看 | 不卡的av电影| 亚洲影院色 | 亚洲日本国产精品 | 91中文字幕在线播放 | 日韩免费b | 香蕉久久国产 | 久久久精品国产一区二区三区 | 在线精品视频免费观看 | 日韩高清dvd | 一本—道久久a久久精品蜜桃 | 国产精品久久久久久久久久不蜜月 | 亚洲一区二区视频在线播放 | 久久夜色精品国产欧美乱极品 | 成人免费观看视频大全 | 成人在线免费观看网站 | 中文av在线播放 | 亚洲综合最新在线 | 91精品国产网站 | 日日天天 | 亚洲自拍偷拍色图 | 亚洲综合最新在线 | 国产午夜精品一区二区三区嫩草 | 亚洲欧洲精品久久 | 亚洲日本韩国一区二区 | 91免费版在线观看 | 色婷婷福利视频 | 91九色porny蝌蚪主页 | 国产色资源| 午夜精品久久久99热福利 | 免费看特级毛片 | 黄色精品久久久 | 成人v| 日本精a在线观看 | 亚洲精品午夜久久久久久久 | 成全在线视频免费观看 | 美女网站色免费 | 97精品国产97久久久久久春色 | 久久99国产视频 | 在线观看一区二区视频 | 久久国产精品第一页 | 日韩有色 | 久草国产视频 | 91亚洲在线观看 | 午夜视频一区二区 | 国产精品18久久久久vr手机版特色 | 97视频人人澡人人爽 | av在线亚洲天堂 | 亚洲精品88欧美一区二区 | jizzjizzjizz亚洲 | 午夜精品视频免费在线观看 | 美女免费视频黄 | 欧美性大战 | 成人观看视频 | 国产日韩高清在线 | 久草9视频| 国产精品一区在线观看你懂的 | 日韩中文字幕视频在线 | 一级特黄aaa大片在线观看 | 超碰在线最新网址 | 日韩在线视频线视频免费网站 | 亚洲精品国产免费 | 精品国产一区二区三区四区vr | 中文字幕日韩免费视频 | 日韩免费一区二区 | 在线观看亚洲免费视频 | 中文字幕国产在线 | 欧美久久精品 | 亚洲精品视频www | 日本中文字幕电影在线免费观看 | 欧美大片aaa| 99国产精品视频免费观看一公开 | 久久亚洲国产精品 | 不卡的av在线播放 | 久久久久久久精 | 男女啪啪网站 | 毛片一级免费一级 | 狠狠色丁香婷婷综合视频 | 亚洲成av人片在线观看www | 久99久在线视频 | 一本色道久久综合亚洲二区三区 | 在线国产精品一区 | 九九热免费在线观看 | 黄色a大片 | 黄色大片中国 | 三级黄色大片在线观看 | av在线永久免费观看 | 中文字幕在线视频一区二区 | 中文字幕av最新 | 国产伦精品一区二区三区在线 | 国产成人精品一区二三区 | 日韩一区二区在线免费观看 | 色视频在线看 | 蜜臀91丨九色丨蝌蚪老版 | 国产精品女同一区二区三区久久夜 | 日日夜夜骑 | 午夜av电影院 | 日韩免费网站 | 91成人免费在线 | 91免费黄视频 | 国产成人精品一区二区三区在线观看 | 日韩免费在线视频 | 黄色小网站在线观看 | 欧美日韩一区二区在线 | 色婷婷综合久久久久中文字幕1 | www久草 | 99精品在线免费在线观看 | 日本一区二区三区免费看 | 天天干天天干天天干 | 久久精品一区二区 | 久久xxxx | 日韩 精品 一区 国产 麻豆 | 亚洲狠狠婷婷综合久久久 | 99精品国产99久久久久久97 | 日韩久久影院 | 日韩r级电影在线观看 | 久久国产欧美日韩精品 | 国产精品少妇 | 毛片激情永久免费 | 玖玖视频国产 | 免费在线观看成年人视频 | 久久久久久久亚洲精品 | 免费在线观看av网站 | 一区二区免费不卡在线 | 天天干天天干天天干天天干天天干天天干 | 欧美日韩国产一区二区三区在线观看 | 国产97在线播放 | 久久久不卡影院 | 久久影院一区 | 成年人黄色免费视频 | 伊人看片 | 在线免费观看黄色 | 香蕉在线视频观看 | 一区二区三区观看 | 久久久久免费网站 | 美女搞黄国产视频网站 | 婷婷色 亚洲 | 国产精品国产亚洲精品看不卡 | 久久久久久久免费观看 | 九九热在线播放 | 亚洲激情久久 | 91女子私密保健养生少妇 | 在线观看国产福利片 | 色婷婷综合久久久久 | 91日韩在线播放 | www.久久久精品 | 日韩一二区在线 | 亚洲 欧洲 国产 日本 综合 | 天天躁天天狠天天透 | 一区二区视频欧美 | 五月婷婷.com | 精品国产99| 4438全国亚洲精品观看视频 | 亚洲国产精品视频在线观看 | 欧美激情第八页 | 欧美日韩免费在线视频 | av视屏在线 | 91精品一区二区三区久久久久久 | 国产黄在线 | 高潮久久久久久 | 在线免费观看黄色小说 | 五月天激情综合网 | 狠狠狠狠狠狠天天爱 | 国产福利不卡视频 | 激情黄色av | 中文字幕免费一区 | 欧美精品久久久久久久久久 | 超级av在线 | 日韩偷拍精品 | 韩国一区二区三区视频 | 成人教育av | 天天激情站 | av丁香| 色一色在线 | 日产乱码一二三区别免费 | av成人动漫在线观看 | 国产精品毛片网 | 激情五月综合 | 精品国产乱码久久久久 | 日韩视频在线不卡 | 欧美福利在线播放 | 日韩精品一区二区三区免费视频观看 | 在线观看91精品视频 | 三级黄色在线 | 91欧美日韩国产 | 久久久免费毛片 | 在线视频你懂 | 97精品国产91久久久久久久 | 人人澡人| 九色在线视频 | 亚洲精品国产精品国自 | 国产美女在线精品免费观看 | 丝袜制服综合网 | 亚洲丝袜中文 | 五月天电影免费在线观看一区 | 操操综合网 | 中文有码在线 | 黄色大片日本 | 国产福利91精品一区 | 深爱五月激情网 | 一区二区三区高清在线观看 | 奇米先锋| 日韩激情小视频 | www国产一区 | 欧美午夜a | 免费电影一区二区三区 | 国产成人精品一区二区三区在线 | 午夜精品一区二区三区在线播放 | 久久99亚洲精品久久久久 | 日日夜夜人人天天 | 日本xxxx裸体xxxx17| 黄色日本免费 | 午夜黄色大片 | 日韩av在线免费播放 | 亚洲 欧洲av | 欧美成人a在线 | 丁香五月亚洲综合在线 | 成人久久18免费 | 黄网av在线| 欧美日韩在线视频免费 | 亚洲一级二级三级 | 久久午夜精品视频 | 99久久精品国产系列 | 草久草久 | 青青草国产在线 | 在线观看中文字幕一区二区 | 91精品色 | 国产 一区二区三区 在线 | 久久乐九色婷婷综合色狠狠182 | 精品亚洲国产视频 | 夜夜操狠狠操 | 中文字幕色婷婷在线视频 | 亚洲综合成人av | 岛国片在线 | 亚洲区另类春色综合小说校园片 | 中文字幕在线视频第一页 | 亚洲国产理论片 | 欧美激情视频一区二区三区免费 | 91桃色在线观看视频 | 性色视频在线 | 欧美日本啪啪无遮挡网站 | 国产手机av| 久久久网页 | 人人爽久久涩噜噜噜网站 | 天天射天天添 | 国产一区二区在线免费播放 | 色亚洲网 | 日本不卡久久 | 日韩精品最新在线观看 | 欧美一级性生活片 | 欧美国产高清 | 99久久婷婷国产 | 91秒拍国产福利一区 | 婷婷性综合 | 亚洲免费在线视频 | 狠狠操狠狠插 | 久久性生活片 | 亚洲精品88欧美一区二区 | 色爽网站 | 一区 二区 精品 | av看片网| 日韩欧美国产精品 | 欧洲一区二区三区精品 | 久热香蕉视频 | 国产黄色片一级 | 久久人人爽人人爽人人 | 天天爱天天操天天爽 | 欧美极度另类性三渗透 | 成年人视频免费在线播放 | 九九热1 | 91九色网址 | 国产精品日韩欧美 | www.黄色网.com | 狠狠狠色狠狠色综合 | 国产视频第二页 | 九九在线视频 | 国产成人精品一区二区三区网站观看 | 亚洲午夜电影网 | 久久久久www | 免费看黄电影 | 99精品视频网站 | 亚洲第一中文网 | 91免费黄视频 | 亚洲天堂网视频 | 99色 | 国产精品18久久久久久久久 | 永久av免费在线观看 | 天天草天天干天天射 | 日本久热| 久久久久国产免费免费 | 中文字幕日韩高清 | 国产精品毛片一区二区在线看 | 激情网综合 | 二区三区精品 | 日本视频高清 | 婷婷六月综合亚洲 | 91av在线免费看 | 五月婷婷久 | 人人爽久久久噜噜噜电影 | 精品国产激情 | 中文字幕超清在线免费 | 日韩精品观看 | 亚洲精品网址在线观看 | 黄色免费在线视频 | a级一a一级在线观看 | 久久精品国产99国产 | 激情网在线观看 | 五月婷婷爱 | 在线三级av | 夜夜夜夜夜夜操 | 黄色电影网站在线观看 | 亚洲片在线| 伊人色综合久久天天 | 婷婷激情五月 | 国产精品久久久久久久婷婷 | 午夜av电影院 | 国产在线自 | 久久激情视频网 | 国产精品综合av一区二区国产馆 | 一二三区高清 | 99久久99精品| 国产成人久久77777精品 | 少妇资源站 | 中文字幕日韩国产 | 久久天堂亚洲 | 久草在线免费播放 | 97超碰总站 | 午夜成人免费影院 | 激情久久一区二区三区 | 一级片黄色片网站 | 日一日干一干 | 国产韩国日本高清视频 | 亚洲精品高清在线观看 | wwwww.国产| 国产在线超碰 | 欧美一级视频在线观看 | 24小时日本在线www免费的 | 操高跟美女 | 精品你懂的 | 久久99影院| 成人av电影免费在线播放 | 久久视频在线免费观看 | 国产精品第十页 | av网站在线观看播放 | 夜色.com | 久久综合狠狠综合久久综合88 | 日韩成人免费在线观看 |