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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

BERT Word Embeddings Tutorial

發布時間:2025/3/21 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BERT Word Embeddings Tutorial 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文譯自?BERT Word Emebddings Tutorial,我將其中部分內容進行了精簡。轉載請注明出處

1. Loading Pre-Trained BERT

通過 Hugging Face 安裝 BERT 的 PyTorch 接口,該庫還包含其它預訓練語言模型的接口,如 OpenAI 的 GPT 和 GPT-2

如果您在 Google Colab 上運行此代碼,每次重新連接時都必須安裝此庫

  • !pip install transformers

BERT 是由 Google 發布的預訓練模型,該模型使用 Wikipedia 和?Book Corpus?數據進行訓練(Book Corpus 是一個包含不同類型的 10000 + 本書的數據集)。Google 發布了一系列 BERT 的變體,但我們在這里使用的是兩種可用尺寸("base" 和 "large")中較小的一種,并且我們設置忽略單詞大小寫

transformers?提供了許多應用于不同任務的 BERT 模型。在這里,我們使用最基本的?BertModel,這個接口的輸出不針對任何特定任務,因此用它提取 embeddings 是個不錯的選擇

現在讓我們導入 PyTorch,預訓練 BERT 模型以及 BERT tokenizer

  • import torch

  • from transformers import BertTokenizer, BertModel

  • ?
  • # OPTIONAL: if you want to have more information on what's happening, activate the logger as follows

  • import logging

  • # logging.basicConfig(level=logging.INFO)

  • ?
  • import matplotlib.pyplot as plt

  • %matplotlib inline

  • ?
  • # Load pre-trained model tokenizer (vocabulary)

  • tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')

2. Input Formatting

由于 BERT 是一個預訓練模型,需要輸入特定格式的數據,因此我們需要:

  • A?special token,?[SEP],?to mark the end of a sentence, or the separation between two sentences
  • A?special token,?[CLS],?at the beginning of our text. This token is used for classification tasks, but BERT expects it no matter what your application is.
  • Tokens that conform with the fixed vocabulary used in BERT
  • The?Token IDs?for the tokens, from BERT’s tokenizer
  • Mask IDs?to indicate which elements in the sequence are tokens and which are padding elements
  • Segment IDs?used to distinguish different sentences
  • Positional Embeddings?used to show token position within the sequence
  • 幸運的是,使用?tokenizer.encode_plus?這個函數可以幫我們處理好一切。但是,由于這只是使用 BERT 的介紹,因此我們將主要以手動方式執行這些步驟

    有關?tokenizer.encode_plus?這個函數的使用示例,可以這篇文章

    2.1 Special Tokens

    BERT 可以將一個或兩個句子作為輸入。如果是兩個句子,則使用?[SEP]?將它們分隔,并且?[CLS]?標記總是出現在文本的開頭;如果是一個句子,也始終需要兩個標記,此時?[SEP]?表示句子的結束。舉個例子

    2 個句子的輸入:

    [CLS] The man went to the store. [SEP] He bought a gallon of milk.

    1 個句子的輸入:

    [CLS] The man went to the store. [SEP]

    2.2 Tokenization

    BERT 提供了?tokenize?方法,下面我們看看它是如何處理句子的

    • text = "Here is the sentence I want embeddings for."

    • marked_text = "[CLS] " + text + " [SEP]"

    • ?
    • # Tokenize our sentence with the BERT tokenizer.

    • tokenized_text = tokenizer.tokenize(marked_text)

    • ?
    • # Print out the tokens.

    • print (tokenized_text)

    • # ['[CLS]', 'here', 'is', 'the', 'sentence', 'i', 'want', 'em', '##bed', '##ding', '##s', 'for', '.', '[SEP]']

    注意 "embeddings" 這個詞是如何表示的:['em', '##bed', '##ding', '##s']

    原始單詞已被拆分為較小的子詞和字符。這些子詞中前面兩個##哈希符號表示該子詞或字符是較大字的一部分。因此,例如 '##bed' 和 'bed' 這兩個 token 不相同;第一個用于子詞 "bed" 出現在較大詞中時,第二個是獨立的 token

    為什么會這樣?因為 BERT 的 tokenizer 是使用 WordPiece 模型創建的。這個模型貪婪地創建了一個固定大小的詞匯表,其中包含了最適合我們語言的固定數量的字符、子詞和單詞。由于我們 BERT 模型的 tokenizer 限制詞匯量為 30000,因此 WordPiece 模型生成的詞匯表包含所有英文字符以及該模型所訓練英語預料庫中找到的約 30000 個最常見的單詞和子詞。該詞匯表包含四類東西:

  • 整個詞
  • 出現在單詞開頭或單獨出現的子詞("embddings" 中的 "em" 與 "go get em" 中的 "em" 向量相同)
  • 不在單詞開頭的子詞,前面會添加上 "##"
  • 單個字符
  • 具體來說,tokenzier 首先檢查整個單詞是否在詞匯表中,如果不在,它會嘗試將單詞分解為詞匯表中最大可能的子詞,如果子詞也沒有,它就會將整個單詞分解為單個字符。所以我們至少可以將一個單詞分解為單子字符的集合。基于此,不在詞匯表中的單詞不會分配給 "UNK" 這種萬能的標記,而是分解為子詞和字符標記

    因此,即使 "embeddings" 這個詞不在詞匯表中,我們也不會將這個詞視為未知詞匯,而是將其分為子詞 tokens ['em', '##bed', '##ding', '##s'],這將保留單詞的一些上下文含義。我們甚至可以平均這些子詞的嵌入向量以生成原始單詞的近似向量。有關 WordPeice 的更多信息,請參考原論文

    下面是我們詞匯表中的一些示例

    • list(tokenizer.vocab.keys())[5000:5020]

    • ['knight',

    • 'lap',

    • 'survey',

    • 'ma',

    • '##ow',

    • 'noise',

    • 'billy',

    • '##ium',

    • 'shooting',

    • 'guide',

    • 'bedroom',

    • 'priest',

    • 'resistance',

    • 'motor',

    • 'homes',

    • 'sounded',

    • 'giant',

    • '##mer',

    • '150',

    • 'scenes']

    將文本分解為標記后,我們必須將句子轉換為詞匯索引列表。從這開始,我們將使用下面的例句,其中兩個句子都包含 "bank" 這個詞,且它們的含義不同

    • # Define a new example sentence with multiple meanings of the word "bank"

    • text = "After stealing money from the bank vault, the bank robber was seen " \

    • "fishing on the Mississippi river bank."

    • ?
    • # Add the special tokens.

    • marked_text = "[CLS] " + text + " [SEP]"

    • ?
    • # Split the sentence into tokens.

    • tokenized_text = tokenizer.tokenize(marked_text)

    • ?
    • # Map the token strings to their vocabulary indeces.

    • indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text)

    • ?
    • # Display the words with their indeces.

    • for tup in zip(tokenized_text, indexed_tokens):

    • print('{:<12} {:>6,}'.format(tup[0], tup[1]))

    • [CLS] 101

    • after 2,044

    • stealing 11,065

    • money 2,769

    • from 2,013

    • the 1,996

    • bank 2,924

    • vault 11,632

    • , 1,010

    • the 1,996

    • bank 2,924

    • robber 27,307

    • was 2,001

    • seen 2,464

    • fishing 5,645

    • on 2,006

    • the 1,996

    • mississippi 5,900

    • river 2,314

    • bank 2,924

    • . 1,012

    • [SEP] 102

    2.3 Segment ID

    BERT 希望用 0 和 1 區分兩個句子。也就是說,對于?tokenized_text?中的每個 token,我們必須指明它屬于哪個句子。如果是單句,只需要輸入一系列 1;如果是兩個句子,請將第一個句子中的每個單詞(包括 [SEP])指定為 0,第二個句子指定為 1

    • # Mark each of the 22 tokens as belonging to sentence "1".

    • segments_ids = [1] * len(tokenized_text)

    3. Extracting Embeddings

    3.1 Running BERT on our text

    接下來,我們需要將數據轉換為 PyTorch tensor 類型

    • # Convert inputs to PyTorch tensors

    • tokens_tensor = torch.tensor([indexed_tokens])

    • segments_tensors = torch.tensor([segments_ids])

    調用?from_pretrained?函數將從互聯網上獲取模型。當我們加載?bert-base-uncased?時,我們會在 logging 記錄中看到模型的定義。該模型是一個具有 12 層的深度神經網絡,解釋每層的功能不在本文的范圍內,您可以查看我博客之前的內容來學習相關信息

    model.eval()?會使得我們的模型處于測試模式,而不是訓練模式。在測試模式下,模型將會關閉 dropout regularization

    • # Load pre-trained model (weights)

    • model = BertModel.from_pretrained('bert-base-uncased',

    • output_hidden_states = True, # Whether the model returns all hidden-states.

    • )

    • ?
    • # Put the model in "evaluation" mode, meaning feed-forward operation.

    • model.eval()

    接下來,讓我們把示例文本傳入模型,并獲取網絡的隱藏狀態

    torch.no_grad()?告訴 PyTorch 在前向傳播的過程中不構造計算圖(因為我們不會在這里反向傳播),這有助于減少內存消耗并加快運行速度

    • # Run the text through BERT, and collect all of the hidden states produced

    • # from all 12 layers.

    • with torch.no_grad():

    • ?
    • outputs = model(tokens_tensor, segments_tensors)

    • ?
    • # Evaluating the model will return a different number of objects based on

    • # how it's configured in the `from_pretrained` call earlier. In this case,

    • # becase we set `output_hidden_states = True`, the third item will be the

    • # hidden states from all layers. See the documentation for more details:

    • # https://huggingface.co/transformers/model_doc/bert.html#bertmodel

    • hidden_states = outputs[2]

    3.2 Understanding the Output

    hidden_states?包含的信息有點復雜,該變量有四個維度,分別是:

  • The Layer number(13 layers)
  • The batch number(1 sentence)
  • The word / token number(22 tokens in our sentence)
  • The hidden unit / feature number(768 features)
  • ちょっと待って,13 層?前面不是說 BERT 只有 12 層嗎?因為最前面的一層是 Word Embedding 層,剩下的是 12 個 Encoder Layer

    第二個維度(batch size)是一次向模型提交多個句子時使用的;不過,在這里我們只有一個句子

    • print ("Number of layers:", len(hidden_states), " (initial embeddings + 12 BERT layers)")

    • ?
    • layer_i = 0

    • print ("Number of batches:", len(hidden_states[layer_i]))

    • ?
    • batch_i = 0

    • print ("Number of tokens:", len(hidden_states[layer_i][batch_i]))

    • ?
    • token_i = 0

    • print ("Number of hidden units:", len(hidden_states[layer_i][batch_i][token_i]))

    • Number of layers: 13 (initial embeddings + 12 BERT layers)

    • Number of batches: 1

    • Number of tokens: 22

    • Number of hidden units: 768

    通過快速瀏覽指定 token 和網絡層的數值范圍,您會發現其中大部分值介于 [-2, 2],少數在 - 12 附近

    • # For the 5th token in our sentence, select its feature values from layer 5.

    • token_i = 5

    • layer_i = 5

    • vec = hidden_states[layer_i][batch_i][token_i]

    • ?
    • # Plot the values as a histogram to show their distribution.

    • plt.figure(figsize=(10,10))

    • plt.hist(vec, bins=200)

    • plt.show()

    按層對值進行分組是有意義的,但是為了使用,我們希望它按 token 進行分組

    當前的維度:[layers, batchs, tokens, features]

    期望的維度:[tokens, layers, features]

    幸運的是,PyTorch 的?permute?函數可以輕松的重新排列維度。但是目前?hidden_states?第一個維度是 list,所以我們要先結合各層,使其成為一個 tensor

    • # Concatenate the tensors for all layers. We use `stack` here to

    • # create a new dimension in the tensor.

    • token_embeddings = torch.stack(hidden_states, dim=0)

    • ?
    • token_embeddings.size()

    • # torch.Size([13, 1, 22, 768])

    接著我們消掉 "batch" 維度,因為我們不需要它

    • # Remove dimension 1, the "batches".

    • token_embeddings = token_embeddings.squeeze(dim=1)

    • ?
    • token_embeddings.size()

    • # torch.Size([13, 22, 768])

    最后,我們使用?permute?函數來交換維度

    • # Swap dimensions 0 and 1.

    • token_embeddings = token_embeddings.permute(1,0,2)

    • ?
    • token_embeddings.size()

    • # torch.Size([22, 13, 768])

    3.3 Creating word and sentence vectors from hidden states

    我們希望為每個詞獲取單獨的向量,或者為整個句子獲取單獨的向量。但是對于輸入的每個詞,我們有 13 個向量,每個向量的長度為 768。為了獲得單個向量,我們需要將一些層的向量組合起來。但是,哪個層或組合哪些層比較好?

    Word Vectors

    我們用兩種方式創建詞向量。第一種方式是拼接最后四層,則每個單詞的向量長度為?4*768=3072

    • # Stores the token vectors, with shape [22 x 3,072]

    • token_vecs_cat = []

    • ?
    • # `token_embeddings` is a [22 x 12 x 768] tensor.

    • ?
    • # For each token in the sentence...

    • for token in token_embeddings:

    • ?
    • # `token` is a [12 x 768] tensor

    • ?
    • # Concatenate the vectors (that is, append them together) from

    • # the last four layers.

    • # Each layer vector is 768 values, so `cat_vec` is length 3072.

    • cat_vec = torch.cat((token[-1], token[-2], token[-3], token[-4]), dim=0)

    • ?
    • # Use `cat_vec` to represent `token`.

    • token_vecs_cat.append(cat_vec)

    • ?
    • print ('Shape is: %d x %d' % (len(token_vecs_cat), len(token_vecs_cat[0])))

    • # Shape is: 22 x 3072

    第二種方式是將最后四層相加

    • # Stores the token vectors, with shape [22 x 768]

    • token_vecs_sum = []

    • ?
    • # `token_embeddings` is a [22 x 12 x 768] tensor.

    • ?
    • # For each token in the sentence...

    • for token in token_embeddings:

    • ?
    • # `token` is a [12 x 768] tensor

    • ?
    • # Sum the vectors from the last four layers.

    • sum_vec = torch.sum(token[-4:], dim=0)

    • ?
    • # Use `sum_vec` to represent `token`.

    • token_vecs_sum.append(sum_vec)

    • ?
    • print ('Shape is: %d x %d' % (len(token_vecs_sum), len(token_vecs_sum[0])))

    • # Shape is: 22 x 768

    Sentence Vectors

    有很多種策略可以獲得一個句子的單個向量表示,其中一種簡單的方法是將倒數第 2 層所有 token 的向量求平均

    • # `hidden_states` has shape [13 x 1 x 22 x 768]

    • ?
    • # `token_vecs` is a tensor with shape [22 x 768]

    • token_vecs = hidden_states[-2][0]

    • ?
    • # Calculate the average of all 22 token vectors.

    • sentence_embedding = torch.mean(token_vecs, dim=0)

    • ?
    • print("Our final sentence embedding vector of shape:", sentence_embedding.size())

    • # Our final sentence embedding vector of shape: torch.Size([768])

    3.4 Confirming contextually dependent vectors

    為了確認這些向量的值是上下文相關的,我們可以檢查一下例句中 "bank" 這個詞的向量

    “After stealing money from the?bank?vault, the?bank?robber was seen fishing on the Mississippi river?bank.”

    • for i, token_str in enumerate(tokenized_text):

    • print(i, token_str)

    • 0 [CLS]

    • 1 after

    • 2 stealing

    • 3 money

    • 4 from

    • 5 the

    • 6 bank

    • 7 vault

    • 8 ,

    • 9 the

    • 10 bank

    • 11 robber

    • 12 was

    • 13 seen

    • 14 fishing

    • 15 on

    • 16 the

    • 17 mississippi

    • 18 river

    • 19 bank

    • 20 .

    • 21 [SEP]

    在這個例子中,我們通過累加最后四層的單詞向量,然后打印出來進行比較

    • print('First 5 vector values for each instance of "bank".')

    • print('')

    • print("bank vault ", str(token_vecs_sum[6][:5]))

    • print("bank robber ", str(token_vecs_sum[10][:5]))

    • print("river bank ", str(token_vecs_sum[19][:5]))

    • First 5 vector values for each instance of "bank".

    • ?
    • bank vault tensor([ 3.3596, -2.9805, -1.5421, 0.7065, ...])

    • bank robber tensor([ 2.7359, -2.5577, -1.3094, 0.6797, ...])

    • river bank tensor([ 1.5266, -0.8895, -0.5152, -0.9298, ...])

    很明顯值不同,但是通過計算向量之間的余弦相似度可以更精確的進行比較

    • from scipy.spatial.distance import cosine

    • ?
    • # Calculate the cosine similarity between the word bank

    • # in "bank robber" vs "bank vault" (same meaning).

    • same_bank = 1 - cosine(token_vecs_sum[10], token_vecs_sum[6])

    • ?
    • # Calculate the cosine similarity between the word bank

    • # in "bank robber" vs "river bank" (different meanings).

    • diff_bank = 1 - cosine(token_vecs_sum[10], token_vecs_sum[19])

    • ?
    • print('Vector similarity for *similar* meanings: %.2f' % same_bank) # 0.94

    • print('Vector similarity for *different* meanings: %.2f' % diff_bank) # 0.69

    3.5 Pooling Strategy & Layer Choice

    BERT Authors

    BERT 作者通過將不同的向量組合作為輸入特征提供給 NER 任務,并觀察所得的 F1 分數

    雖然最后四層拼接在此特定任務上產生了最佳結果,但許多其他方法效果也不差,通常建議針對特定應用測試不同版本,結果可能會有所不同

    Han Xiao's BERT-as-service

    肖涵在 Github 上創建了一個名為?bert-as-service?的開源項目,該項目旨在使用 BERT 為您的文本創建單詞嵌入。他嘗試了各種方法來組合這些嵌入,并在項目的?FAQ?頁面上分享了一些結論和基本原理

    肖涵的觀點認為:

  • 第一層是嵌入層,由于它沒有上下文信息,因此同一個詞在不同語境下的向量是相同的
  • 隨著進入網絡的更深層次,單詞嵌入從每一層中獲得了越來越多的上下文信息
  • 但是,當您接近最后一層時,詞嵌入將開始獲取 BERT 特定預訓練任務的信息(MLM 和 NSP)
  • 倒數第二層的詞嵌入比較合理
  • 總結

    以上是生活随笔為你收集整理的BERT Word Embeddings Tutorial的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    亚洲午夜精品一区二区三区电影院 | 看片网站黄 | 免费黄色看片 | 欧美一级片播放 | 日韩国产欧美在线视频 | 99色婷婷| 人人插人人爱 | 国产视频 亚洲精品 | 欧美日韩精品在线观看视频 | 国产高清一| 天天摸天天干天天操天天射 | 久久视频精品在线 | 天天色棕合合合合合合 | 日日夜夜天天 | 亚洲成人免费观看 | 免费国产在线精品 | 免费久久网 | 久久伦理网 | 久久精品伊人 | 69精品在线观看 | 不卡国产在线 | 欧美日韩国产在线观看 | 菠萝菠萝蜜在线播放 | av电影一区 | 亚洲精品www久久久久久 | 欧美精品国产综合久久 | 免费黄色在线网站 | 亚洲成a人片77777kkkk1在线观看 | 免费看v片网站 | 在线观看av免费 | 免费看网站在线 | 最新在线你懂的 | 亚洲精品视频免费 | 国产乱码精品一区二区三区介绍 | 一区二区三区在线观看 | 亚洲日日夜夜 | 91人人澡人人爽人人精品 | av亚洲产国偷v产偷v自拍小说 | 国产在线91精品 | 黄av在线 | 日日操夜 | 国产中文字幕视频在线 | 天天色宗合 | 久草新在线 | 中文字幕在线观看一区二区三区 | 国产99精品| 91视频免费看 | 久久视频精品在线 | 免费看日韩| 狠狠干五月天 | 韩日精品在线 | 亚洲国产欧美在线人成大黄瓜 | 在线观看v片| 国产免费一区二区三区网站免费 | 不卡中文字幕av | 综合在线亚洲 | 久久日本视频 | 国产 欧美 日产久久 | 成人性生交大片免费看中文网站 | 精品国产一区二区三区在线 | 一区二区精品 | 97色在线观看免费视频 | 国产一级片免费视频 | 国产不卡免费 | 欧美a级免费视频 | 91精品国产一区二区在线观看 | 久久精品国产成人精品 | 国产女人免费看a级丨片 | 69av在线视频| 免费人成网 | 国产视频2| 免费影视大全推荐 | 亚洲永久精品国产 | 国产日韩av在线 | 九九免费在线观看视频 | 国产精品成人国产乱一区 | 在线电影91 | 久草在线视频新 | 国产精品1区2区3区 久久免费视频7 | 人人干人人添 | 日韩首页 | 久草视频看看 | 久日视频| 国产精品麻豆视频 | 超碰97公开| 九九久久久久久久久激情 | 人人看人人做人人澡 | 国产成人精品国内自产拍免费看 | 久久久精品欧美 | 色天堂在线视频 | 999色视频 | 色综合天天视频在线观看 | 91精品啪啪 | 香蕉久久国产 | 超碰在线cao | 国内久久看 | 探花视频免费观看 | 精品视频专区 | 国产精品18videosex性欧美 | 99精品国产在热久久下载 | 日韩中文字幕免费视频 | 在线黄av| 日韩欧美国产视频 | 中文字幕丝袜一区二区 | 国产最顶级的黄色片在线免费观看 | 99re中文字幕 | 亚洲综合激情五月 | 一区二区三区高清在线观看 | 亚洲精品美女久久久久网站 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 中文字幕在线观看第一区 | 国产手机视频精品 | 精品久久久一区二区 | 九九免费精品视频 | 国产在线中文 | 久久tv | 中文久久精品 | 91视频久久久久 | 干 操 插 | 免费99精品国产自在在线 | 国产美女被啪进深处喷白浆视频 | 99精品视频在线观看播放 | 黄色a三级| 激情丁香| 欧美日韩免费一区 | 美女久久久久久久久久 | 1000部国产精品成人观看 | 久久久男人的天堂 | 9热精品| 在线精品视频免费播放 | 色综合夜色一区 | 香蕉视频在线免费 | 亚洲精品www | 午夜资源站 | 国产免费观看高清完整版 | 黄色av免费看 | 日韩在线资源 | 日本中文字幕在线观看 | 欧美日韩亚洲在线观看 | 69成人在线 | 丁香花在线观看视频在线 | 免费av大片 | 怡红院av久久久久久久 | 久久精品观看 | 国产亚洲精品成人av久久影院 | 亚洲精品在线视频观看 | 亚洲久草在线 | 日韩专区一区二区 | 中文字幕婷婷 | 四虎国产免费 | 天天射天天干 | 日本性久久 | 色五月成人 | 91精品国产高清自在线观看 | 超碰97在线人人 | 视频在线观看一区 | 国产一区二区精品 | 国产一级高清视频 | 久久国产精品久久久久 | 99精彩视频在线观看免费 | 69中文字幕 | 91亚洲精品久久久蜜桃网站 | 88av色| 亚洲婷婷综合色高清在线 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 久久久久久久久久久网 | 国产精品久久久久久久久久直播 | 激情av网址 | 一区二区欧美日韩 | 亚洲精品乱码久久久久久写真 | 日韩成人精品一区二区三区 | 国产精品久久久久久吹潮天美传媒 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产精品久久久久久久久久 | 亚洲免费公开视频 | 久久五月天婷婷 | 91毛片在线观看 | 国产精品美女久久久久久久网站 | 五月天婷亚洲天综合网鲁鲁鲁 | 国产精品6| 亚洲天天干| 综合色站| 一区二区三区四区在线免费观看 | 国产在线无 | 国产精品毛片一区二区在线 | 日韩av资源站 | 久久国产精品免费观看 | 草在线视频 | 日韩在线视频免费播放 | 日韩精品在线播放 | 免费黄在线看 | 五月婷婷综合激情网 | 久久久久女人精品毛片九一 | 视频一区二区在线观看 | 中文字幕在线观看视频网站 | av在线网站大全 | 五月天综合 | 国产精品专区在线观看 | 欧美激情视频久久 | 久久黄色免费 | 麻豆视频在线播放 | av黄色影院| 在线观看av小说 | 免费久久网站 | 亚洲专区欧美 | 国产精品电影在线 | 黄色毛片一级 | 精品欧美一区二区精品久久 | 日韩亚洲欧美中文字幕 | 网站你懂的 | 成年人在线观看 | 国产精品美女久久久久久久网站 | 亚洲综合欧美精品电影 | 国产精品九九九九九九 | av在线播放不卡 | 九九综合九九 | 黄色aa久久| 亚洲三级av| 亚洲黄色一级电影 | 国产精品一区二区久久久 | 丁香花中文字幕 | 亚洲人毛片 | 免费福利视频网 | 一色屋精品视频在线观看 | 99精品视频免费观看视频 | 欧美日本高清视频 | 亚洲欧美日本一区二区三区 | 国产婷婷在线观看 | 欧美日韩在线视频观看 | 在线免费观看视频 | 国产精品色婷婷 | 美女视频黄频大全免费 | 成人毛片在线视频 | 免费看在线看www777 | 久久久黄视频 | 国内精品久久久久久 | 四虎影视欧美 | 国产日韩欧美中文 | 懂色av一区二区在线播放 | 麻豆av一区二区三区在线观看 | 97精品国产91久久久久久 | 特黄色大片 | 久久99热国产 | 亚洲国产字幕 | 天天激情天天干 | 精品久久久久免费极品大片 | 免费色av | 久久兔费看a级 | 综合色影院 | 五月婷婷亚洲 | 97天天干 | 久久手机在线视频 | 狠狠操在线 | 97香蕉超级碰碰久久免费软件 | 波多野结衣精品 | 国产成人精品av | 99色亚洲 | 日韩在线三级 | 国产成人久久精品77777综合 | 激情图片区 | 91久久人澡人人添人人爽欧美 | 免费高清在线视频一区· | 精品国产一区二区久久 | 亚洲aⅴ免费在线观看 | 日韩av二区 | 国产成人久 | 一级黄色免费 | 99这里只有精品99 | 五月天亚洲激情 | 久久久九色精品国产一区二区三区 | 97视频在线免费播放 | 超碰97人人在线 | 免费黄色看片 | 亚洲精品视频第一页 | 亚洲免费av片 | 骄小bbw搡bbbb揉bbbb | 亚洲伦理中文字幕 | 久久夜色精品国产欧美乱 | 国产欧美日韩视频 | 97色综合| 国产在线视频一区二区 | 中文字幕乱在线伦视频中文字幕乱码在线 | 99热99| www.亚洲激情.com | 999久久a精品合区久久久 | 日韩欧美综合精品 | 91专区在线观看 | 五月婷在线播放 | 色五婷婷 | 五月天久久| 狠狠干网址 | 激情小说网站亚洲综合网 | 精品国产伦一区二区三区 | 久久99精品国产麻豆宅宅 | 99综合电影在线视频 | www..com黄色片| 精品国产一区二区三区日日嗨 | 午夜精品久久久久久久爽 | 五月婷婷丁香激情 | 日韩精品一区二 | 成人免费视频免费观看 | 六月天色婷婷 | 国产区免费| 2023国产精品自产拍在线观看 | 国产一区二区免费看 | 99亚洲视频 | 深夜福利视频在线观看 | www.狠狠色.com | 伊色综合久久之综合久久 | 在线 视频 一区二区 | 午夜久久影视 | 亚洲精品在线视频网站 | 超碰电影在线观看 | 亚洲激情 在线 | 中文字幕在线视频精品 | 午夜视频一区二区三区 | 欧美性大战久久久久 | 热久久最新地址 | 成人av电影在线观看 | 色婷婷亚洲 | 九九热免费在线视频 | 欧美色操 | 福利视频第一页 | 久久久久网址 | 欧美日韩精品在线观看视频 | 一级国产视频 | 国产美女精品在线 | 欧美日韩在线观看一区二区三区 | 欧美国产日韩一区 | 欧美激情精品久久久久久免费印度 | 欧美a视频在线观看 | 精品国产亚洲一区二区麻豆 | 免费福利视频网站 | 色噜噜日韩精品欧美一区二区 | 在线电影 你懂得 | 九草视频在线 | 亚洲精品视频一二三 | av一级二级 | 国产不卡精品 | av免费网站观看 | 精品国产伦一区二区三区免费 | 911亚洲精品第一 | 91九色在线 | 天天色婷婷 | 国产黄色精品在线 | 欧美一级性生活片 | 免费看的黄色 | 久久99精品久久久久久久久久久久 | 亚洲精品在线一区二区三区 | 最近中文国产在线视频 | 久久a久久| 久草在线电影网 | 色噜噜日韩精品欧美一区二区 | 麻豆一区二区三区视频 | 黄色成人影视 | 黄色软件视频网站 | 国产美女视频免费 | 9色在线视频 | 日韩成人黄色 | 日韩在线观看高清 | 国产中文 | 伊人久久国产精品 | 国产在线观看免费av | 成人国产精品一区二区 | 在线视频 成人 | 日韩成人在线免费观看 | 欧美三人交 | 国产成人61精品免费看片 | 人人射av | 日本三级在线观看中文字 | 97视频免费在线观看 | 色婷婷九月 | 91在线区 | 国产精品99久久久 | 久久成人国产精品入口 | 久久影院一区 | 国产成人精品亚洲精品 | 波多野结衣在线观看一区二区三区 | 狠狠干2018 | 在线观看免费高清视频大全追剧 | 一区二区三区免费 | 亚洲高清视频在线 | 成年人网站免费在线观看 | 毛片888| av午夜电影 | 午夜国产在线观看 | 亚州激情视频 | 麻豆传媒电影在线观看 | 不卡电影一区二区三区 | 久久激情视频 久久 | 深爱激情五月婷婷 | 91理论片午午伦夜理片久久 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 免费污片 | 日本三级久久 | 中文十次啦 | 日韩电影在线观看一区 | 精品国产乱码久久久久久1区2匹 | 91福利社区在线观看 | 美女精品久久久 | 国产精品一区二区 91 | 在线视频免费观看 | 韩国av免费观看 | 国内精品视频久久 | 成人不用播放器 | 国产精品久久久999 国产91九色视频 | 九九视频在线 | 天干啦夜天干天干在线线 | 91人人澡人人爽 | 国产精品精品 | 亚洲视频在线免费观看 | 人人爽网站 | 日本韩国中文字幕 | 国产精品毛片一区视频 | 在线播放日韩av | 天天干夜夜爱 | 日韩一级片观看 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 亚洲色图激情文学 | av在线影视 | 五月在线视频 | www..com黄色片 | 精品一区二区三区四区在线 | 日韩电影一区二区在线观看 | 日韩成人免费在线观看 | 97视频免费在线观看 | 成人免费视频网站 | 日韩在线观看一区二区 | 一区二区精品国产 | 色婷婷精品大在线视频 | 欧美极品少妇xbxb性爽爽视频 | 久艹视频免费观看 | 在线视频观看你懂的 | 天天干天天操 | 日韩免费一区二区 | 久久高清 | 992tv在线成人免费观看 | 自拍超碰在线 | 在线免费黄色av | 国内精品久久久久影院男同志 | 久久欧美综合 | 激情文学综合丁香 | 在线看片视频 | 免费人成在线观看 | 国内精品久久天天躁人人爽 | 黄色精品久久久 | 久久久亚洲国产精品麻豆综合天堂 | 丁香花在线视频观看免费 | 精品一区二区在线播放 | 日韩欧美高清一区二区三区 | 97国产 | 色爱成人网 | 精品国产一区二区三区噜噜噜 | 粉嫩一二三区 | 久草在线免费资源 | 欧美激情视频在线免费观看 | av一区在线 | 亚洲欧美日韩不卡 | 国产成本人视频在线观看 | www.国产高清 | 欧美一区在线观看视频 | 日韩www在线 | 日韩激情精品 | av三级在线免费观看 | 天天操夜夜干 | 久草免费电影 | www.99av| 婷婷网站天天婷婷网站 | 中文字幕国产精品 | www.久久色| 精品成人国产 | 国产精品video爽爽爽爽 | 视频1区2区| 久久97久久97精品免视看 | 久久久精品国产免费观看同学 | 在线观看亚洲免费视频 | 免费电影一区二区三区 | 91亚色在线观看 | 免费av免费观看 | 黄色一集片 | 免费日韩在线 | 久久国产精品色av免费看 | 国产在线一区观看 | 奇米影视在线99精品 | 国产精品日韩在线 | 日本黄色大片免费看 | 在线91精品 | 亚洲国产字幕 | 日日夜夜干 | 欧美亚洲xxx | 日韩精品久久中文字幕 | 国产精品一区二区久久国产 | 免费在线播放av电影 | 成人啪啪18免费游戏链接 | 国产一级片一区二区三区 | 在线电影中文字幕 | 天天色天天射天天干 | 欧美狠狠操 | 色a网 | 五月婷婷在线视频 | 性色av免费观看 | 99久久精品国产一区 | 亚洲精品国产第一综合99久久 | 永久免费的av电影 | 久久久精品 一区二区三区 国产99视频在线观看 | 国产成人av | 91久久奴性调教 | 日韩在线激情 | 午夜精品久久久久久久久久 | 国产96精品| 国产精品一区二区精品视频免费看 | 国产999精品久久久影片官网 | 亚洲三级在线播放 | 日韩免费观看视频 | 欧美日韩国产精品久久 | 不卡精品视频 | 在线观看91视频 | 91久久在线观看 | 中日韩免费视频 | 国产又粗又猛又爽 | 在线观看精品国产 | 97碰碰碰 | 中文字幕传媒 | 深爱婷婷网 | 免费观看www小视频的软件 | 久久影视一区 | 成年人视频免费在线 | 婷婷视频导航 | 在线 国产一区 | 亚洲精品中文在线 | 亚洲经典视频 | av中文字幕网 | 亚洲精品国精品久久99热 | 中文字幕在线日 | 日韩视频图片 | www.eeuss影院av撸 | 久草免费电影 | 91精品电影 | 国产分类视频 | 亚洲狠狠丁香婷婷综合久久久 | 另类五月激情 | 99热这里只有精品免费 | 五月天六月色 | 免费日韩一区二区三区 | 国产一区二区三区黄 | 韩国在线一区二区 | 91精品999 | 国产精品video爽爽爽爽 | 色狠狠婷婷 | 国产在线视频一区二区三区 | 精选久久| 精品久久久精品 | 国产成人精品日本亚洲999 | 国产日产欧美在线观看 | 成人在线免费看视频 | 人人狠狠| 欧美嫩草影院 | .国产精品成人自产拍在线观看6 | .国产精品成人自产拍在线观看6 | 热re99久久精品国产66热 | av亚洲产国偷v产偷v自拍小说 | 久久久久久久久久久国产精品 | 高清不卡一区二区在线 | 久草网视频 | 色在线最新 | 免费久久片 | 亚洲精品在线观看中文字幕 | 国产在线观看网站 | 国产精品嫩草影院123 | www日| 久草在线免费电影 | 日韩a免费 | 午夜免费电影院 | 中文字幕在线观看网址 | 久久美女高清视频 | 激情伊人 | 91av资源网| 亚洲日b视频 | av一级网站 | 精品久久久影院 | 国产99精品在线观看 | 国产69久久久欧美一级 | 日韩爱爱网站 | 亚洲精品一区中文字幕乱码 | 一本到视频在线观看 | 日韩高清av在线 | 在线观看av国产 | 999久久a精品合区久久久 | 成人精品一区二区三区中文字幕 | 日韩女同一区二区三区在线观看 | 蜜桃av人人夜夜澡人人爽 | 久热免费 | 中文字幕在线观看第二页 | 天天干 天天摸 天天操 | 精品久久久久久久久久久久久 | 在线播放日韩 | 中文字幕一区二区三区四区在线视频 | 国产永久网站 | 国产精品久久久av | 精品一二三四在线 | 99精品视频在线观看播放 | 亚洲jizzjizz日本少妇 | 国产精品18久久久久vr手机版特色 | 欧美日韩一区二区三区在线观看视频 | 91久久一区二区 | 综合色影院 | 成人h动漫精品一区二 | .国产精品成人自产拍在线观看6 | 国产一级片在线播放 | 亚洲欧美日韩一级 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 成人小视频免费在线观看 | 欧美精品免费在线 | 波多野结衣电影久久 | 亚在线播放中文视频 | 波多野结衣视频一区二区 | 免费在线国产视频 | 久久福利电影 | 97成人精品视频在线观看 | 国产精品成人a免费观看 | 久久不见久久见免费影院 | 国内外激情视频 | 99在线免费观看视频 | 国产日韩中文字幕在线 | 国内精品视频在线播放 | 久草在线久草在线2 | 久久试看 | 狠狠狠色丁香婷婷综合久久五月 | 免费一级片久久 | 国产精品69av| 色婷婷88av视频一二三区 | www..com毛片 | 亚洲精品乱码久久久久久蜜桃欧美 | 日本激情视频中文字幕 | 色婷婷狠狠 | av高清一区二区三区 | 激情欧美丁香 | 91av观看| 欧美伦理一区二区三区 | 在线岛国av| 在线观看成人国产 | 国产成在线观看免费视频 | 天天天干夜夜夜操 | 国产精品久久久久久久久久了 | 久久久麻豆精品一区二区 | 黄色成年网站 | 日韩欧美黄色网址 | 这里只有精品视频在线观看 | 99热这里有 | 一级片视频免费观看 | 成人免费观看网站 | 在线久久 | 91污污视频在线观看 | 欧美日韩视频网站 | 亚洲精品国产日韩 | 久草视频网 | 亚洲 欧洲av | 五月天激情在线 | 久久久国产精品成人免费 | 成人小视频在线播放 | 中文av网| 久久久久电影网站 | 人人爽人人爱 | 国产三级精品三级在线观看 | 中国成人一区 | 久久免费观看视频 | 黄色福利网| 在线 视频 亚洲 | 天天碰天天操 | 日韩一二区在线 | 国产精品9999 | 欧美日韩亚洲在线观看 | 国产99久久精品一区二区永久免费 | 国产黄网站在线观看 | 狠狠色丁香婷综合久久 | 日韩电影精品 | 人人舔人人干 | 国产精品亚洲片夜色在线 | 亚洲永久精品国产 | 精品久久久久久久久久岛国gif | 亚洲少妇自拍 | 久久精品a| 最新久久免费视频 | 最近2019中文免费高清视频观看www99 | 500部大龄熟乱视频使用方法 | 久久在线视频在线 | 久久国产91| 成人黄色资源 | 嫩嫩影院理论片 | 天天操人 | 久久久av电影 | 欧美日韩不卡在线观看 | 奇米影视8888在线观看大全免费 | 在线观看国产日韩欧美 | 福利视频一区二区 | 亚洲视频网站在线观看 | 国产成人精品一区二区三区福利 | 国产日产精品一区二区三区四区 | 亚洲人成在线电影 | 久热久草在线 | 国产精品久久9 | 人人讲下载 | 在线观看av麻豆 | 国产高清在线一区 | 免费看片日韩 | 国产精品久久久久久久久久久久午 | 欧美韩国日本在线观看 | 日日爽天天操 | 99免费在线视频 | 欧美一区免费在线观看 | 青青草在久久免费久久免费 | 人人爽人人爽人人 | 国产免费叼嘿网站免费 | 天天综合人人 | 午夜免费电影院 | 国产呻吟在线 | 日韩综合精品 | 狠狠干狠狠久久 | 中文字幕 欧美性 | av日韩精品 | av观看网站| 美女福利视频一区二区 | 视频一区二区国产 | 五月婷婷综合激情 | 999久久久精品视频 日韩高清www | 国产在线一区二区 | 成人午夜影院 | 国产在线观看你懂得 | www国产亚洲精品久久麻豆 | 久久不见久久见免费影院 | 国产专区精品 | 久久综合九色综合欧美狠狠 | 国产成人黄色片 | 人人草人人草 | 日本99干网 | 免费色视频网址 | 午夜 免费| 国产精品xxxx18a99 | 欧美91精品久久久久国产性生爱 | 天天操天天操 | 四虎精品成人免费网站 | 国产福利免费看 | 在线色亚洲 | 97热久久免费频精品99 | 天天人人综合 | 欧美日韩xxxxx | 日日夜夜精品网站 | 亚洲成人av在线 | 手机av资源 | www.天天操 | se婷婷 | 最新中文字幕在线播放 | 中文字幕在线看视频 | 激情综合色播五月 | www.久久久.com| 国产精品一区二区av麻豆 | 黄色免费大全 | 国产男女爽爽爽免费视频 | 亚洲丁香久久久 | 亚洲精品激情 | 亚洲另类xxxx | 天天干天天干天天干天天干天天干天天干 | 韩日电影在线观看 | 狠狠狠综合 | 国产天天综合 | 日韩黄色免费 | 在线视频观看成人 | 精品久久一区二区 | 91尤物在线播放 | 久久久久国产精品免费 | 在线影视 一区 二区 三区 | 91视频中文字幕 | 天天摸天天操天天舔 | 日韩精品不卡在线 | 久久免费视频这里只有精品 | 中文字幕乱在线伦视频中文字幕乱码在线 | 色在线视频 | 日韩av进入| 69视频在线 | 欧美 日韩 视频 | 久久久网页| 激情黄色av | 91完整版在线观看 | 99精品国产99久久久久久97 | 欧美日韩不卡一区二区三区 | 欧美日韩国产xxx | 九九热精品在线 | 欧美日韩精品二区第二页 | 日本超碰在线 | 精品在线亚洲视频 | 亚洲国产中文字幕在线观看 | 日韩精品一区在线观看 | 亚洲激情五月 | 欧美精品一二三 | 99精品视频免费看 | 91超在线 | 久久久久久久久久久久影院 | 久久久久久久久久久影院 | 久久精品看片 | 激情丁香综合五月 | 久久99网 | 成人在线免费小视频 | 精品久久久久久亚洲 | 日韩精品久久久免费观看夜色 | 中文av影院 | 婷婷丁香狠狠爱 | 婷婷丁香社区 | 国产小视频91 | 午夜视频一区二区三区 | 成年人免费在线看 | 国产1级视频 | 中文字幕免费国产精品 | 亚洲精品成人网 | 97超碰在线久草超碰在线观看 | 91人人澡人人爽人人精品 | 五月婷婷导航 | 天天操天天爱天天爽 | 免费国产亚洲视频 | 欧美成人a在线 | 日日干狠狠操 | 久草精品网 | 中文字幕丝袜一区二区 | 久久福利剧场 | 人人插人人澡 | 在线免费视 | 米奇四色影视 | 在线中文字幕播放 | 色婷婷久久一区二区 | 丁香色综合 | 日韩在线网 | 在线免费观看国产精品 | 成 人 黄 色 视频 免费观看 | 天天操天天射天天添 | 激情久久伊人 | 麻豆超碰| 欧美激情精品一区 | 日韩另类在线 | 色www精品视频在线观看 | 日韩精品你懂的 | 蜜臀av夜夜澡人人爽人人桃色 | 国产精品一区二区在线播放 | 麻花传媒mv免费观看 | 国产96在线观看 | 日韩精品一区二区三区不卡 | 摸bbb搡bbb搡bbbb| 久久免费视频在线观看6 | 91亚色视频在线观看 | 99r精品视频在线观看 | 色婷婷欧美 | 一区二区三区在线视频观看58 | 国产精品一二 | 五月开心六月伊人色婷婷 | 日韩性xxxx | 色综合天 | 久久国产精品免费一区二区三区 | 在线精品视频免费播放 | 一区二区三区影院 | 黄色av网站在线观看免费 | 99精品免费网 | 日日干日日色 | 在线看黄网站 | 91视频高清免费 | 亚洲成a人片在线www | 国产在线一区二区三区播放 | 91精品国自产拍天天拍 | 国产精品国产三级在线专区 | 91亚洲永久精品 | 在线视频在线观看 | 国产在线污 | 国产精品手机播放 | 欧美精品久久久久久久久免 | 久久久久久久久久久久影院 | 黄色网址a | 视频在线亚洲 | 激情av网址 | 国际av在线| 日韩在线观看a | 91精品国产自产91精品 | 99九九热只有国产精品 | 免费日韩av电影 | 日日夜夜狠狠干 | 国产一区二区高清 | 超碰97人| 亚洲精品视频大全 | 亚洲视频久久久 | 日韩在线观看网址 | 成人一级片视频 | 久久久国产精品免费 | 在线观看中文字幕亚洲 | 国产精品久久久久免费 | 亚洲日本精品 | 久久国产精品99久久久久久老狼 | 欧美激情xxxx | 黄色软件视频大全免费下载 | 丁香六月婷婷开心婷婷网 | 欧美久久久 | 1区2区视频 | 亚洲精品ww | 色偷偷888欧美精品久久久 | 国模精品一区二区三区 | 国产精品日韩欧美一区二区 | 久久久久久久久久久久av | 黄色毛片网站在线观看 | 欧美视频在线观看免费网址 | 欧美小视频在线 | 亚洲美女精品区人人人人 | 久久综合激情 | 探花系列在线 | 国产精品久久久久久久久久久杏吧 | 国产成人三级在线播放 | 久久精品欧美 | 毛片的网址 | 国产精品字幕 | 亚洲精品色婷婷 | 久草在线免费资源站 | 狠狠狠色| 91在线视频观看 | 免费av电影网站 | 亚洲精品国产欧美在线观看 | 美女久久99 | 亚洲女在线| 国产视频在线观看一区二区 | 在线观看精品一区 | 亚洲黄色免费在线 | 91九色蝌蚪在线 | 日韩电影黄色 | 天天操天天操天天操天天操 | 色妞色视频一区二区三区四区 | 综合婷婷久久 | 久久久久久久久久福利 | 99热精品国产 | 国产一级免费在线 | 日韩电影中文字幕在线 | 狠狠狠综合| 91人人爱| 久久免费视频7 | 91精品久久久久久久91蜜桃 | 黄色a级片在线观看 | 久久久网站| 久草视频在线新免费 | 97成人精品区在线播放 | 日韩av在线不卡 | 精品日韩中文字幕 | 天天插夜夜操 | 激情影院在线观看 | 欧美精品视 | 久久久久久黄 | 亚洲视屏在线播放 | 婷婷色九月 | 婷婷激情欧美 | 日韩一区二区三区不卡 | 日韩av影视在线 | 99视频在线免费观看 | 欧美另类xxx | 中文字幕永久在线 | 91成人在线观看高潮 | 成人羞羞视频在线观看免费 | 亚洲日本一区二区在线 | www.久久久 | 亚洲综合导航 | 天天艹 | 激情伊人五月天 | 国产只有精品 | 国产午夜三级一区二区三桃花影视 | 精品久久一区二区三区 | 国产亚洲精品成人av久久影院 | 日韩大片在线免费观看 | 在线观看视频日韩 | 伊人va | 国产精品久久久久一区二区 | 精品自拍网 | 99国产在线视频 | 久久综合狠狠狠色97 | 久久er99热精品一区二区三区 | 欧美日韩精品电影 | 好看av在线| www.国产在线| 97福利在线观看 | 国产精品嫩草55av | 久久精品香蕉视频 | 六月婷婷网 | 亚洲高清资源 | 亚洲黄色片在线 | 日韩精品一区二区三区第95 | 91人人爽久久涩噜噜噜 | www.看片网站 | 国产福利一区在线观看 | 色999精品 | 四虎影视成人精品国库在线观看 | 伊人导航 | 欧美成人xxx | 国产精品免费在线播放 | 91日韩精品一区 | 美州a亚洲一视本频v色道 | 日本丶国产丶欧美色综合 | 国产xvideos免费视频播放 | 精品国产精品久久 | 四虎影视成人永久免费观看亚洲欧美 |