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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

AI基础:特征工程-文本特征处理

發布時間:2025/3/8 ChatGpt 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AI基础:特征工程-文本特征处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0.導語

特征工程到底是什么呢?顧名思義,其本質是一項工程活動,目的是最大限度地從原始數據中提取特征以供算法和模型使用。

在此之前,我已經寫了以下幾篇AI基礎的快速入門,本篇文章講解特征工程基礎第三部分:(文本特征處理)。

目前已經發布:

AI 基礎:Python 簡易入門

AI 基礎:Numpy 簡易入門

AI 基礎:Pandas 簡易入門

AI 基礎:Scipy(科學計算庫) 簡易入門

AI基礎:數據可視化簡易入門(matplotlib和seaborn)

AI基礎:特征工程-類別特征

AI基礎:特征工程-數字特征處理

后續持續更新

參考資料:

[1]原版(英文)圖書地址:?

https://www.oreilly.com/library/view/feature-engineering-for/9781491953235/
[2]翻譯來源apachecn:?

https://github.com/apachecn
[3]翻譯作者@kkejili:?

https://github.com/kkejili

代碼修改和整理:黃海廣,原文修改成jupyter notebook格式,并增加和修改了部分代碼,測試全部通過,所有數據集已經放在百度云下載。

本文代碼可以在github下載:

https://github.com/fengdu78/Data-Science-Notes/tree/master/9.feature-engineering

數據集的百度云:

鏈接:https://pan.baidu.com/s/1uDXt5jWUOfI0fS7hD91vBQ?提取碼:8p5d

三、文本數據: 展開、過濾和分塊

如果讓你來設計一個算法來分析以下段落,你會怎么做?

Emma knocked on the door. No answer. She knocked again and waited. There was a large maple tree next to the house. Emma looked up the tree and saw a giant raven perched at the treetop. Under the afternoon sun, the raven gleamed magnificently. Its beak was hard and pointed, its claws sharp and strong. It looked regal and imposing. It reigned the tree it stood on. The raven was looking straight at Emma with its beady black eyes. Emma felt slightly intimidated. She took a step back from the door and tentatively said, “hello?”

該段包含很多信息。我們知道它談到了到一個名叫Emma的人和一只烏鴉。這里有一座房子和一棵樹,艾瑪正想進屋,卻看到了烏鴉。這只華麗的烏鴉注意到艾瑪,她有點害怕,但正在嘗試交流。

那么,這些信息的哪些部分是我們應該提取的顯著特征?首先,提取主要角色艾瑪和烏鴉的名字似乎是個好主意。接下來,注意房子,門和樹的布置可能也很好。關于烏鴉的描述呢?Emma的行為呢,敲門,退后一步,打招呼呢?

本章介紹文本特征工程的基礎知識。我們從詞袋(bags of words)開始,這是基于字數統計的最簡單的文本功能。一個非常相關的變換是 tf-idf,它本質上是一種特征縮放技術。它將被我在(下一篇)章節進行全面討論。本章首先討論文本特征提取,然后討論如何過濾和清洗這些特征。

Bag of X:把自然文本變成平面向量

無論是構建機器學習模型還是特征工程,其結果應該是通俗易懂的。簡單的事情很容易嘗試,可解釋的特征和模型相比于復雜的更易于調試。簡單和可解釋的功能并不總是會得到最精確的模型。但從簡單開始就是一個好主意,僅在絕對必要時我們可以增加其復雜性。

對于文本數據,我們可以從稱為 BOW 的字數統計開始。字數統計表中并沒有特別費力來尋找"Emma"或烏鴉這樣有趣的實體。但是這兩個詞在該段落中被重復提到,并且它們在這里的計數比諸如"hello"之類的隨機詞更高。對于此類簡單的文檔分類任務,字數統計通常比較適用。它也可用于信息檢索,其目標是檢索與輸入文本相關的文檔集。這兩個任務都很好解釋詞級特征,因為某些特定詞的存在可能是本文檔主題內容的重要指標。

詞袋

在詞袋特征中,文本文檔被轉換成向量。(向量只是 n 個數字的集合。)向量包含詞匯表中每個單詞可能出現的數目。如果單詞"aardvark"在文檔中出現三次,則該特征向量在與該單詞對應的位置上的計數為 3。如果詞匯表中的單詞沒有出現在文檔中,則計數為零。例如,“這是一只小狗,它是非常可愛”的句子具有如圖所示的 BOW 表示圖 3-1 轉換詞成向量描述圖

BOW 將文本文檔轉換為平面向量。它是“平面的”,因為它不包含任何原始的文本結構。原文是一系列詞語。但是詞袋向量并沒有序列;它只是記得每個單詞在文本中出現多少次。它不代表任何詞層次結構的概念。例如,“動物”的概念包括“狗”,“貓”,“烏鴉”等。但是在一個詞袋表示中,這些詞都是矢量的相同元素。圖 3-2 兩個等效的詞向量,向量中單詞的排序不重要,只要它在數據集中的個數和文檔中出現數量是一致的。

重要的是特征空間中數據的幾何形狀。在一個詞袋矢量中,每個單詞成為矢量的一個維度。如果詞匯表中有 n 個單詞,則文檔將成為n維空間中的一個點。很難想象二維或三維以外的任何物體的幾何形狀,所以我們必須使用我們的想象力。圖3-3顯示了我們的例句在對應于“小狗”和“可愛”兩個維度的特征空間中的樣子。

圖 3-3 特征空間中文本文檔的圖示

圖 3-4 三維特征空間

圖 3-3 和圖 3-4 描繪了特征空間中的數據向量。坐標軸表示單個單詞,它們是詞袋表示下的特征,空間中的點表示數據點(文本文檔)。有時在數據空間中查看特征向量也是有益的。特征向量包含每個數據點中特征的值。軸表示單個數據點和點表示特征向量。圖 3-5 展示了一個例子。通過對文本文檔進行詞袋特征化,一個特征是一個詞,一個特征向量包含每個文檔中這個詞的計數。這樣,一個單詞被表示為一個“一個詞向量”。正如我們將在第 4 章中看到的那樣,這些文檔詞向量來自詞袋向量的轉置矩陣。

Bag-of-N-gram

Bag-of-N-gram 或者 bag-of-ngram 是 BOW 的自然延伸。n-gram 是 n 個有序的記號(token)。一個詞基本上是一個 1-gram,也被稱為一元模型。當它被標記后,計數機制可以將單個詞進行計數,或將重疊序列計數為 n-gram。例如,"Emma knocked on the door"這句話會產生 n-gram,如"Emma knocked","knocked on","on the","the door"。N-gram 保留了文本的更多原始序列結構,故 bag-of-ngram可以提供更多信息。但是,這是有代價的。理論上,用 k 個獨特的詞,可能有 k 個獨立的 2-gram(也稱為 bigram)。在實踐中,并不是那么多,因為不是每個單詞后都可以跟一個單詞。盡管如此,通常有更多不同的 n-gram(n > 1)比單詞更多。這意味著詞袋會更大并且有稀疏的特征空間。這也意味著 n-gram 計算,存儲和建模的成本會變高。n 越大,信息越豐富,成本越高。

為了說明隨著 n 增加 n-gram 的數量如何增加,我們來計算紐約時報文章數據集上的 n-gram。我們使用 Pandas 和 scikit-learn 中的CountVectorizer轉換器來計算前 10,000 條評論的 n-gram。

import pandas as pd import json from sklearn.feature_extraction.text import CountVectorizer # Load the first 10,000 reviews f = open('data/yelp_academic_dataset_review.json') js = [] for i in range(10000):js.append(json.loads(f.readline())) f.close() review_df = pd.DataFrame(js)

備注:所有數據集已經放在百度云下載。

review_df.head()
business_iddatereview_idstarstexttypeuser_idvotes01234
9yKzy9PApeiPPOUJEtnvkg2011-01-26fWKvX83p0-ka4JS3dc6E5A5My wife took me here on my birthday for breakf...reviewrLtl8ZkDX5vH5nAx9C3q5Q{'funny': 0, 'useful': 5, 'cool': 2}
ZRJwVLyzEJq1VAihDhYiow2011-07-27IjZ33sJrzXqU-0X6U8NwyA5I have no idea why some people give bad review...review0a2KyEL0d3Yb1V6aivbIuQ{'funny': 0, 'useful': 0, 'cool': 0}
6oRAC4uyJCsJl1X0WZpVSA2012-06-14IESLBzqUCLdSzSqm0eCSxQ4love the gyro plate. Rice is so good and I als...review0hT2KtfLiobPvh6cDC8JQg{'funny': 0, 'useful': 1, 'cool': 0}
_1QQZuf4zZOyFCvXc0o6Vg2010-05-27G-WvGaISbqqaMHlNnByodA5Rosie, Dakota, and I LOVE Chaparral Dog Park!!...reviewuZetl9T0NcROGOyFfughhg{'funny': 0, 'useful': 2, 'cool': 1}
6ozycU1RpktNG2-1BroVtw2012-01-051uJFq2r5QfJG_6ExMRCaGw5General Manager Scott Petello is a good egg!!!...reviewvYmM4KTsC8ZfQBg-j5MWkw{'funny': 0, 'useful': 0, 'cool': 0}
# Create feature transformers for unigram, bigram, and trigram. # The default ignores single-character words, which is useful in practice because it trims # uninformative words. But we explicitly include them in this example for illustration purposes. bow_converter = CountVectorizer(token_pattern='(?u)\\b\\w+\\b') bigram_converter = CountVectorizer(ngram_range=(2, 2), token_pattern='(?u)\\b\\w+\\b') trigram_converter = CountVectorizer(ngram_range=(3, 3), token_pattern='(?u)\\b\\w+\\b') # Fit the transformers and look at vocabulary size bow_converter.fit(review_df['text']) words = bow_converter.get_feature_names() bigram_converter.fit(review_df['text']) bigram = bigram_converter.get_feature_names() trigram_converter.fit(review_df['text']) trigram = trigram_converter.get_feature_names() print(len(words), len(bigram), len(trigram)) 29222 368943 881620 # Sneak a peek at the ngram themselves words[:10] ['0', '00', '000', '007', '00a', '00am', '00pm', '01', '02', '03'] bigram[-10:] ['zuzu was','zuzus room','zweigel wine','zwiebel kr?uter','zy world','zzed in','éclairs napoleons','école len?tre','ém all','òc cham'] trigram[:10] ['0 0 eye','0 20 less','0 39 oz','0 39 pizza','0 5 i','0 50 to','0 6 can','0 75 oysters','0 75 that','0 75 to']

圖3-6 Number of unique n-gram in the first 10,000 reviews of the Yelp dataset

過濾清洗特征

我們如何清晰地將信號從噪聲中分離出來?通過過濾,使用原始標記化和計數來生成簡單詞表或 n-gram 列表的技術變得更加可用。短語檢測,我們將在下面討論,可以看作是一個特別的 bigram 過濾器。以下是執行過濾的幾種方法。

停用詞

分類和檢索通常不需要對文本有深入的理解。例如,在"Emma knocked on the door"一句中,"on"和"the"這兩個詞沒有包含很多信息。代詞、冠詞和介詞大部分時間并沒有顯示出其價值。流行的 Python NLP 軟件包 NLTK 包含許多語言的語言學家定義的停用詞列表。(您將需要安裝 NLTK 并運行nltk.download()來獲取所有的好東西。)各種停用詞列表也可以在網上找到。例如,這里有一些來自英語停用詞的示例詞

Sample words from the nltk stopword list a, about, above, am, an, been, didn’t, couldn’t, i’d, i’ll, itself, let’s, myself, our, they, through, when’s, whom, ...

請注意,該列表包含撇號,并且這些單詞沒有大寫。為了按原樣使用它,標記化過程不得去掉撇號,并且這些詞需要轉換為小寫。

基于頻率的過濾

停用詞表是一種去除空洞特征常用詞的方法。還有其他更統計的方法來理解“常用詞”的概念。在搭配提取中,我們看到依賴于手動定義的方法,以及使用統計的方法。同樣的想法也適用于文字過濾。我們也可以使用頻率統計。

高頻詞

頻率統計對濾除語料庫專用常用詞以及通用停用詞很有用。例如,紐約時報文章數據集中經常出現“紐約時報”和其中單個單詞?!白h院”這個詞經常出現在加拿大議會辯論的Hansard語料庫中的“眾議院”一詞中,這是一種用于統計機器翻譯的流行數據集,因為它包含所有文檔的英文和法文版本。這些詞在普通語言中有意義,但不在語料庫中。手動定義的停用詞列表將捕獲一般停用詞,但不是語料庫特定的停用詞。

表 3-1 列出了 Yelp 評論數據集中最常用的 40 個單詞。在這里,頻率被認為是它們出現在文件(評論)中的數量,而不是它們在文件中的數量。正如我們所看到的,該列表涵蓋了許多停用詞。它也包含一些驚喜。"s"和"t"在列表中,因為我們使用撇號作為標記化分隔符,并且諸如"Mary's"或"did not"之類的詞被解析為"Mary s"和"didn t"。詞"good","food"和"great"分別出現在三分之一的評論中。但我們可能希望保留它們,因為它們對于情感分析或業務分類非常有用。最常用的單詞最可以揭示問題,并突出顯示通常有用的單詞通常在該語料庫中曾出現過多次。例如,紐約時報語料庫中最常見的詞是“時代”。實際上,它有助于將基于頻率的過濾與停用詞列表結合起來。還有一個棘手的問題,即何處放置截止點。不幸的是這里沒有統一的答案。在大多數情況下截斷還需手動確定,并且在數據集改變時可能需要重新檢查。

稀有詞

根據任務的不同,可能還需要篩選出稀有詞。對于統計模型而言,僅出現在一個或兩個文檔中的單詞更像噪聲而非有用信息。例如,假設任務是根據他們的 Yelp 評論對企業進行分類,并且單個評論包含"gobbledygook"這個詞?;谶@一個詞,我們將如何說明這家企業是餐廳,美容院還是一間酒吧?即使我們知道在這種情況下的這種生意發生在酒吧,它也會對于其他包含"gobbledygook"這個詞的評論來說,這可能是一個錯誤。

不僅稀有詞不可靠,而且還會產生計算開銷。這套 160 萬個 Yelp 評論包含 357,481 個獨特單詞(用空格和標點符號表示),其中 189,915 只出現在一次評論中,41,162 次出現在兩次評論中。超過 60% 的詞匯很少發生。這是一種所謂的重尾分布,在現實世界的數據中非常普遍。許多統計機器學習模型的訓練時間隨著特征數量線性地變化,并且一些模型是二次的或更差的。稀有詞匯會產生大量的計算和存儲成本,而不會帶來額外的收益。

根據字數統計,可以很容易地識別和修剪稀有詞?;蛘?#xff0c;他們的計數可以匯總到一個特殊的垃圾箱中,可以作為附加功能。圖3-7展示了一個短文檔中的表示形式,該短文檔包含一些常用單詞和兩個稀有詞"gobbledygook"和"zylophant"。通常單詞保留自己的計數,可以通過停用詞列表或其他頻率進一步過濾方法。這些難得的單詞會失去他們的身份并被分組到垃圾桶功能中.由于在計算整個語料庫之前不會知道哪些詞很少,因此需要收集垃圾桶功能作為后處理步驟。

由于本書是關于特征工程的,因此我們將重點放在特征上。但稀有概念也適用于數據點。如果文本文檔很短,那么它可能不包含有用的信息,并且在訓練模型時不應使用該信息。

應用此規則時必須謹慎。維基百科轉儲包含許多不完整的存根,可能安全過濾。另一方面,推文本身就很短,并且需要其他特征和建模技巧。

詞干解析(Stemming)

簡單解析的一個問題是同一個單詞的不同變體會被計算為單獨的單詞。例如,"flower"和"flowers"在技術上是不同的記號,"swimmer","swimming"和"swim"也是如此,盡管它們的含義非常接近。如果所有這些不同的變體都映射到同一個單詞,那將會很好。

詞干解析是一項 NLP 任務,試圖將單詞切分為基本的語言詞干形式。有不同的方法。有些基于語言規則,其他基于觀察統計。被稱為詞形化的算法的一個子類將詞性標注和語言規則結合起來。

Porter stemmer 是英語中使用最廣泛的免費詞干工具。原來的程序是用 ANSI C 編寫的,但是很多其他程序包已經封裝它來提供對其他語言的訪問。盡管其他語言的努力正在進行,但大多數詞干工具專注于英語。

以下是通過 NLTK Python 包運行 Porter stemmer 的示例。正如我們所看到的,它處理了大量的情況,包括將"sixties"和"sixty"轉變為同一根"sixti"。但這并不完美。單詞"goes"映射到"goe",而"go"映射到它自己。

import nltk stemmer = nltk.stem.porter.PorterStemmer() stemmer.stem('flowers') 'flower' stemmer.stem('zeroes') 'zero' stemmer.stem('stemmer') 'stemmer' stemmer.stem('sixties') 'sixti' stemmer.stem('sixty') 'sixti' stemmer.stem('goes') 'goe' stemmer.stem('go') 'go'

詞干解析的確有一個計算成本。最終收益是否大于成本取決于應用程序。

含義的原子:從單詞到 N-gram 到短語

詞袋的概念很簡單。但是,一臺電腦怎么知道一個詞是什么?文本文檔以數字形式表示為一個字符串,基本上是一系列字符。也可能會遇到 JSON blob 或 HTML 頁面形式的半結構化文本。但即使添加了標簽和結構,基本單位仍然是一個字符串。如何將字符串轉換為一系列的單詞?這涉及解析和標記化的任務,我們將在下面討論。

解析和分詞

當字符串包含的不僅僅是純文本時,解析是必要的。例如,如果原始數據是網頁,電子郵件或某種類型的日志,則它包含額外的結構。人們需要決定如何處理日志中的標記,頁眉,頁腳或無趣的部分。如果文檔是網頁,則解析器需要處理 URL。如果是電子郵件,則可能需要特殊字段,例如 From,To 和 Subject 需要被特別處理,否則,這些標題將作為最終計數中的普通單詞統計,這可能沒有用處。

解析后,文檔的純文本部分可以通過標記。這將字符串(一系列字符)轉換為一系列記號。然后可以將每個記號計為一個單詞。分詞器需要知道哪些字符表示一個記號已經結束,另一個正在開始??崭褡址ǔJ呛玫姆指舴?#xff0c;正如標點符號一樣。如果文本包含推文,則不應將井號(#)用作分隔符(也稱為分隔符)。

有時,分析需要使用句子而不是整個文檔。例如,n-gram 是一個句子的概括,不應超出句子范圍。更復雜的文本特征化方法,如 word2vec 也適用于句子或段落。在這些情況下,需要首先將文檔解析為句子,然后將每個句子進一步標記為單詞。

字符串對象

字符串對象有各種編碼,如 ASCII 或 Unicode。純英文文本可以用 ASCII 編碼。一般語言需要 Unicode。如果文檔包含非 ASCII 字符,則確保分詞器可以處理該特定編碼。否則,結果將不正確。

短語檢測的搭配提取

連續的記號能立即被轉化成詞表和 n-gram。但從語義上講,我們更習慣于理解短語,而不是 n-gram。在計算自然語言處理中,有用短語的概念被稱為搭配。用 Manning 和 Schütze(1999:141)的話來說:“搭配是一個由兩個或兩個以上單詞組成的表達,它們對應于某種常規的說話方式?!?/p>

搭配比其部分的總和更有意義。例如,"strong tea"具有超越"great physical strength"和"tea"的不同含義,因此被認為是搭配。另一方面,“可愛的小狗”這個短語恰恰意味著它的部分總和:“可愛”和“小狗”。因此,它不被視為搭配。

搭配不一定是連續的序列。"Emma knocked on the door"一詞被認為包含搭配"knock door",因此不是每一個搭配都是一個 n-gram。相反,并不是每個 n-gram 都被認為是一個有意義的搭配。

由于搭配不僅僅是其部分的總和,它們的含義也不能通過單個單詞計數來充分表達。作為一種表現形式,詞袋不足。袋子的 ngram 也是有問題的,因為它們捕獲了太多無意義的序列(考慮"this is in the bag-of-ngram example"),而沒有足夠的有意義的序列。

搭配作為功能很有用。但是,如何從文本中發現并提取它們呢?一種方法是預先定義它們。如果我們努力嘗試,我們可能會找到各種語言的全面成語列表,我們可以通過文本查看任何匹配。這將是非常昂貴的,但它會工作。如果語料庫是非常特定領域的并且包含深奧的術語,那么這可能是首選的方法。但是這個列表需要大量的手動管理,并且需要不斷更新語料庫。例如,分析推文,博客和文章可能不太現實。

自從統計 NLP 過去二十年出現以來,人們越來越多地選擇用于查找短語的統計方法。統計搭配提取方法不是建立固定的短語和慣用語言列表,而是依賴不斷發展的數據來揭示當今流行的語言。

基于頻率的方法

一個簡單的黑魔法是頻繁發生的 n-gram。這種方法的問題是最常發生的,這種可能不是最有用的。表 3-2 顯示了整個 Yelp 評論數據集中最流行的 bigram(n=2)。正如我們所知的,按文件計數排列的最常見的十大常見術語是非常通用的術語,并不包含太多含義。

用于搭配提取的假設檢驗

原始流行度計數(Raw popularity count)是一個比較粗糙的方法。我們必須找到更聰慧的統計數據才能夠輕松挑選出有意義的短語。關鍵的想法是看兩個單詞是否經常出現在一起。回答這個問題的統計機制被稱為假設檢驗。

假設檢驗是將噪音數據歸結為“是”或“否”的答案。它涉及將數據建模為從隨機分布中抽取的樣本。隨機性意味著人們永遠無法 100% 的確定答案;總會有異常的機會。所以答案附在概率上。例如,假設檢驗的結果可能是“這兩個數據集來自同一分布,其概率為 95%”。對于假設檢驗的溫和介紹,請參閱可汗學院關于假設檢驗和 p 值的教程。

在搭配提取的背景下,多年來已經提出了許多假設檢驗。最成功的方法之一是基于似然比檢驗(Dunning,1993)。對于給定的一對單詞,該方法測試兩個假設觀察的數據集。假設 1(原假設)表示,詞語 1 獨立于詞語 2 出現。另一種說法是說,看到詞語1對我們是否看到詞語2沒有影響。假設 2(備選假設)說,看到詞 1 改變了看到單詞 2 的可能性。我們采用備選假設來暗示這兩個單詞形成一個共同的短語。因此,短語檢測(也稱為搭配提取)的似然比檢驗提出了以下問題:給定文本語料庫中觀察到的單詞出現更可能是從兩個單詞彼此獨立出現的模型中生成的,或者模型中兩個詞的概率糾纏?

這是有用的。讓我們算一點。(數學非常精確和簡潔地表達事物,但它確實需要與自然語言完全不同的分析器。)

似然函數L(Data; H)表示在單詞對的獨立模型或非獨立模型下觀察數據集中詞頻的概率。為了計算這個概率,我們必須對如何生成數據做出另一個假設。最簡單的數據生成模型是二項模型,其中對于數據集中的每個單詞,我們拋出一個硬幣,并且如果硬幣朝上出現,我們插入我們的特殊單詞,否則插入其他單詞。在此策略下,特殊詞的出現次數遵循二項分布。二項分布完全由詞的總數,詞的出現次數和詞首概率決定。

似然比檢驗分析常用短語的算法收益如下。

  • 計算所有單體詞的出現概率:p(w)。

  • 計算所有唯一雙元的條件成對詞發生概率:p(W2 × W1)

  • 計算所有唯一的雙對數似然比對數。

  • 根據它們的似然比排序雙字節。

  • 以最小似然比值作為特征。

  • 掌握似然比測試

    關鍵在于測試比較的不是概率參數本身,而是在這些參數(以及假設的數據生成模型)下觀察數據的概率??赡苄允墙y計學習的關鍵原則之一。但是在你看到它的前幾次,這絕對是一個令人困惑的問題。一旦你確定了邏輯,它就變得直觀了。

    還有另一種基于點互信息的統計方法。但它對真實世界文本語料庫中常見的罕見詞很敏感。因此它不常用,我們不會在這里展示它。

    請注意,搭配抽取的所有統計方法,無論是使用原始頻率,假設測試還是點對點互信息,都是通過過濾候選詞組列表來進行操作的。生成這種清單的最簡單和最便宜的方法是計算 n-gram。它可能產生不連續的序列,但是它們計算成本頗高。在實踐中,即使是連續 n-gram,人們也很少超過 bi-gram 或 tri-gram,因為即使在過濾之后,它們的數量也很多。為了生成更長的短語,還有其他方法,如分塊或與詞性標注相結合。

    分塊(Chunking)和詞性標注(part-of-Speech Tagging)

    分塊比 n-gram 要復雜一點,因為它基于詞性,基于規則的模型形成了記號序列。

    例如,我們可能最感興趣的是在問題中找到所有名詞短語,其中文本的實體,主題最為有趣。為了找到這個,我們使用詞性標記每個作品,然后檢查該標記的鄰域以查找詞性分組或“塊”。定義單詞到詞類的模型通常是語言特定的。幾種開源 Python 庫(如 NLTK,Spacy 和 TextBlob)具有多種語言模型。

    為了說明 Python 中的幾個庫如何使用詞性標注非常簡單地進行分塊,我們再次使用 Yelp 評論數據集。我們將使用 spacy 和 TextBlob 來評估詞類以找到名詞短語。

    import pandas as pd import json # Load the first 10 reviews f = open('data/yelp_academic_dataset_review.json') js = [] for i in range(10):js.append(json.loads(f.readline())) f.close() review_df = pd.DataFrame(js) ## First we'll walk through spaCy's functions # !pip install -U spacy # !python -m spacy download en#使用spacy,需要安裝上述兩個步驟,去掉注釋即可運行 import spacy # preload the language model nlp = spacy.load('en') # We can create a Pandas Series of spaCy nlp variables doc_df = review_df['text'].apply(nlp) # spaCy gives you fine grained parts of speech using: (.pos_) # and coarse grained parts of speech using: (.tag_) for doc in doc_df[4]:print([doc.text, doc.pos_, doc.tag_]) ['General', 'PROPN', 'NNP'] ['Manager', 'PROPN', 'NNP'] ['Scott', 'PROPN', 'NNP'] ['Petello', 'PROPN', 'NNP'] ['is', 'VERB', 'VBZ'] ['a', 'DET', 'DT'] ['good', 'ADJ', 'JJ'] ['egg', 'NOUN', 'NN'] ['!', 'PUNCT', '.'] ['!', 'PUNCT', '.'] ['!', 'PUNCT', '.'] ['Not', 'ADV', 'RB'] ['to', 'PART', 'TO'] ['go', 'VERB', 'VB'] ['into', 'ADP', 'IN'] ['detail', 'NOUN', 'NN'] [',', 'PUNCT', ','] ['but', 'CCONJ', 'CC'] ['let', 'VERB', 'VB'] ['me', 'PRON', 'PRP'] ['assure', 'VERB', 'VB'] ['you', 'PRON', 'PRP'] ['if', 'ADP', 'IN'] ['you', 'PRON', 'PRP'] ['have', 'VERB', 'VBP'] ['any', 'DET', 'DT'] ['issues', 'NOUN', 'NNS'] ['(', 'PUNCT', '-LRB-'] ['albeit', 'ADP', 'IN'] ['rare', 'ADJ', 'JJ'] [')', 'PUNCT', '-RRB-'] ['speak', 'VERB', 'VBP'] ['with', 'ADP', 'IN'] ['Scott', 'PROPN', 'NNP'] ['and', 'CCONJ', 'CC'] ['treat', 'VERB', 'VB'] ['the', 'DET', 'DT'] ['guy', 'NOUN', 'NN'] ['with', 'ADP', 'IN'] ['some', 'DET', 'DT'] ['respect', 'NOUN', 'NN'] ['as', 'ADP', 'IN'] ['you', 'PRON', 'PRP'] ['state', 'VERB', 'VBP'] ['your', 'DET', 'PRP$'] ['case', 'NOUN', 'NN'] ['and', 'CCONJ', 'CC'] ['I', 'PRON', 'PRP'] ["'d", 'AUX', 'MD'] ['be', 'VERB', 'VB'] ['surprised', 'ADJ', 'JJ'] ['if', 'ADP', 'IN'] ['you', 'PRON', 'PRP'] ['do', 'VERB', 'VBP'] ["n't", 'ADV', 'RB'] ['walk', 'VERB', 'VB'] ['out', 'ADV', 'RB'] ['totally', 'ADV', 'RB'] ['satisfied', 'ADJ', 'JJ'] ['as', 'ADP', 'IN'] ['I', 'PRON', 'PRP'] ['just', 'ADV', 'RB'] ['did', 'VERB', 'VBD'] ['.', 'PUNCT', '.'] ['Like', 'INTJ', 'UH'] ['I', 'PRON', 'PRP'] ['always', 'ADV', 'RB'] ['say', 'VERB', 'VBP'] ['.....', 'PUNCT', '.'] ['"', 'PUNCT', "''"] ['Mistakes', 'NOUN', 'NNS'] ['are', 'VERB', 'VBP'] ['inevitable', 'ADJ', 'JJ'] [',', 'PUNCT', ','] ['it', 'PRON', 'PRP'] ["'s", 'VERB', 'VBZ'] ['how', 'ADV', 'WRB'] ['we', 'PRON', 'PRP'] ['recover', 'VERB', 'VBP'] ['from', 'ADP', 'IN'] ['them', 'PRON', 'PRP'] ['that', 'DET', 'WDT'] ['is', 'VERB', 'VBZ'] ['important', 'ADJ', 'JJ'] ['"', 'PUNCT', "''"] ['!', 'PUNCT', '.'] ['!', 'PUNCT', '.'] ['!', 'PUNCT', '.'] ['\n\n', 'SPACE', '_SP'] ['Thanks', 'NOUN', 'NNS'] ['to', 'ADP', 'IN'] ['Scott', 'PROPN', 'NNP'] ['and', 'CCONJ', 'CC'] ['his', 'DET', 'PRP$'] ['awesome', 'ADJ', 'JJ'] ['staff', 'NOUN', 'NN'] ['.', 'PUNCT', '.'] ['You', 'PRON', 'PRP'] ["'ve", 'VERB', 'VB'] ['got', 'VERB', 'VBN'] ['a', 'DET', 'DT'] ['customer', 'NOUN', 'NN'] ['for', 'ADP', 'IN'] ['life', 'NOUN', 'NN'] ['!', 'PUNCT', '.'] ['!', 'PUNCT', '.'] ['..........', 'PUNCT', '.'] [':', 'PUNCT', ':'] ['^', 'PUNCT', 'LS'] [')', 'PUNCT', '-RRB-'] print([chunk for chunk in doc_df[4].noun_chunks]) [General Manager Scott Petello, a good egg, detail, me, you, you, any issues, Scott, the guy, some respect, you, your case, I, you, I, I, "Mistakes, it, we, them, Thanks, Scott, his awesome staff, You, a customer, life] import nltk nltk.download('averaged_perceptron_tagger') True ## We can do the same feature transformations using Textblob from textblob import TextBlob # The default tagger in TextBlob uses the PatternTagger, which is fine for our example. # You can also specify the NLTK tagger, which works better for incomplete sentences. blob_df = review_df['text'].apply(TextBlob) blob_df[4].tags [('General', 'NNP'),('Manager', 'NNP'),('Scott', 'NNP'),('Petello', 'NNP'),('is', 'VBZ'),('a', 'DT'),('good', 'JJ'),('egg', 'NN'),('Not', 'RB'),('to', 'TO'),('go', 'VB'),('into', 'IN'),('detail', 'NN'),('but', 'CC'),('let', 'VB'),('me', 'PRP'),('assure', 'VB'),('you', 'PRP'),('if', 'IN'),('you', 'PRP'),('have', 'VBP'),('any', 'DT'),('issues', 'NNS'),('albeit', 'IN'),('rare', 'NN'),('speak', 'NN'),('with', 'IN'),('Scott', 'NNP'),('and', 'CC'),('treat', 'VB'),('the', 'DT'),('guy', 'NN'),('with', 'IN'),('some', 'DT'),('respect', 'NN'),('as', 'IN'),('you', 'PRP'),('state', 'NN'),('your', 'PRP$'),('case', 'NN'),('and', 'CC'),('I', 'PRP'),("'d", 'MD'),('be', 'VB'),('surprised', 'VBN'),('if', 'IN'),('you', 'PRP'),('do', 'VBP'),("n't", 'RB'),('walk', 'VB'),('out', 'RP'),('totally', 'RB'),('satisfied', 'JJ'),('as', 'IN'),('I', 'PRP'),('just', 'RB'),('did', 'VBD'),('Like', 'IN'),('I', 'PRP'),('always', 'RB'),('say', 'VBP'),('..', 'VBP'),('Mistakes', 'NNS'),('are', 'VBP'),('inevitable', 'JJ'),('it', 'PRP'),("'s", 'VBZ'),('how', 'WRB'),('we', 'PRP'),('recover', 'VBP'),('from', 'IN'),('them', 'PRP'),('that', 'WDT'),('is', 'VBZ'),('important', 'JJ'),('Thanks', 'NNS'),('to', 'TO'),('Scott', 'NNP'),('and', 'CC'),('his', 'PRP$'),('awesome', 'JJ'),('staff', 'NN'),('You', 'PRP'),("'ve", 'VBP'),('got', 'VBN'),('a', 'DT'),('customer', 'NN'),('for', 'IN'),('life', 'NN'),('^', 'NN')] print([np for np in blob_df[4].noun_phrases]) ['general manager', 'scott petello', 'good egg', 'scott', "n't walk", '... ..', 'mistakes', 'thanks', 'scott', 'awesome staff', '... ... ...']

    你可以看到每個庫找到的名詞短語有些不同。spacy 包含英語中的常見單詞,如"a"和"the",而 TextBlob 則刪除這些單詞。這反映了規則引擎的差異,它驅使每個庫都認為是“名詞短語”。你也可以寫你的詞性關系來定義你正在尋找的塊。使用 Python 進行自然語言處理可以深入了解從頭開始用 Python 進行分塊。

    案例

    構造一個文本數據集

    corpus = ['The sky is blue and beautiful.','Love this blue and beautiful sky!','The quick brown fox jumps over the lazy dog.','The brown fox is quick and the blue dog is lazy!','The sky is very blue and the sky is very beautiful today','The dog is lazy but the brown fox is quick!' ] labels = ['weather', 'weather', 'animals', 'animals', 'weather', 'animals'] corpus = np.array(corpus) corpus_df = pd.DataFrame({'Document': corpus, 'Category': labels}) corpus_df = corpus_df[['Document', 'Category']] corpus_df
    DocumentCategory012345
    The sky is blue and beautiful.weather
    Love this blue and beautiful sky!weather
    The quick brown fox jumps over the lazy dog.animals
    The brown fox is quick and the blue dog is lazy!animals
    The sky is very blue and the sky is very beaut...weather
    The dog is lazy but the brown fox is quick!animals

    基本預處理

    nltk.download()# True #詞頻與停用詞 wpt = nltk.WordPunctTokenizer() stop_words = nltk.corpus.stopwords.words('english') print (stop_words) def normalize_document(doc):# lower case and remove special characters\whitespacesdoc = re.sub(r'[^a-zA-Z0-9\s]', '', doc, re.I)doc = doc.lower()doc = doc.strip()# tokenize documenttokens = wpt.tokenize(doc)# filter stopwords out of documentfiltered_tokens = [token for token in tokens if token not in stop_words]# re-create document from filtered tokensdoc = ' '.join(filtered_tokens)return docnormalize_corpus = np.vectorize(normalize_document) ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're", "you've", "you'll", "you'd", 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', "she's", 'her', 'hers', 'herself', 'it', "it's", 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', "that'll", 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', "don't", 'should', "should've", 'now', 'd', 'll', 'm', 'o', 're', 've', 'y', 'ain', 'aren', "aren't", 'couldn', "couldn't", 'didn', "didn't", 'doesn', "doesn't", 'hadn', "hadn't", 'hasn', "hasn't", 'haven', "haven't", 'isn', "isn't", 'ma', 'mightn', "mightn't", 'mustn', "mustn't", 'needn', "needn't", 'shan', "shan't", 'shouldn', "shouldn't", 'wasn', "wasn't", 'weren', "weren't", 'won', "won't", 'wouldn', "wouldn't"] norm_corpus = normalize_corpus(corpus) norm_corpus #The sky is blue and beautiful. array(['sky blue beautiful', 'love blue beautiful sky','quick brown fox jumps lazy dog', 'brown fox quick blue dog lazy','sky blue sky beautiful today', 'dog lazy brown fox quick'],dtype='<U30')

    詞袋模型

    from sklearn.feature_extraction.text import CountVectorizer print (norm_corpus) cv = CountVectorizer(min_df=0., max_df=1.) cv.fit(norm_corpus) print (cv.get_feature_names()) cv_matrix = cv.fit_transform(norm_corpus) cv_matrix = cv_matrix.toarray() cv_matrix ['sky blue beautiful' 'love blue beautiful sky''quick brown fox jumps lazy dog' 'brown fox quick blue dog lazy''sky blue sky beautiful today' 'dog lazy brown fox quick'] ['beautiful', 'blue', 'brown', 'dog', 'fox', 'jumps', 'lazy', 'love', 'quick', 'sky', 'today']array([[1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0],[1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0],[0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0],[0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0],[1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 1],[0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0]], dtype=int64) vocab = cv.get_feature_names() pd.DataFrame(cv_matrix, columns=vocab)
    beautifulbluebrowndogfoxjumpslazylovequickskytoday012345
    11000000010
    11000001010
    00111110100
    01111010100
    11000000021
    00111010100

    N-Grams模型

    bv = CountVectorizer(ngram_range=(2,2)) bv_matrix = bv.fit_transform(norm_corpus) bv_matrix = bv_matrix.toarray() vocab = bv.get_feature_names() pd.DataFrame(bv_matrix, columns=vocab)
    beautiful skybeautiful todayblue beautifulblue dogblue skybrown foxdog lazyfox jumpsfox quickjumps lazylazy brownlazy doglove bluequick bluequick brownsky beautifulsky blue012345
    00100000000000001
    10100000000010000
    00000101010100100
    00010110100001000
    01001000000000011
    00000110101000000

    TF-IDF 模型

    from sklearn.feature_extraction.text import TfidfVectorizer #中國 蜜蜂 養殖 它們的片頻數都是20次 tv = TfidfVectorizer(min_df=0., max_df=1., use_idf=True) tv_matrix = tv.fit_transform(norm_corpus) tv_matrix = tv_matrix.toarray()vocab = tv.get_feature_names() pd.DataFrame(np.round(tv_matrix, 2), columns=vocab)
    beautifulbluebrowndogfoxjumpslazylovequickskytoday012345
    0.600.520.000.000.000.000.000.000.000.600.00
    0.460.390.000.000.000.000.000.660.000.460.00
    0.000.000.380.380.380.540.380.000.380.000.00
    0.000.360.420.420.420.000.420.000.420.000.00
    0.360.310.000.000.000.000.000.000.000.720.52
    0.000.000.450.450.450.000.450.000.450.000.00

    Similarity特征

    from sklearn.metrics.pairwise import cosine_similaritysimilarity_matrix = cosine_similarity(tv_matrix) similarity_df = pd.DataFrame(similarity_matrix) similarity_df
    012345012345
    1.0000000.7531280.0000000.1854470.8075390.000000
    0.7531281.0000000.0000000.1396650.6081810.000000
    0.0000000.0000001.0000000.7843620.0000000.839987
    0.1854470.1396650.7843621.0000000.1096530.933779
    0.8075390.6081810.0000000.1096531.0000000.000000
    0.0000000.0000000.8399870.9337790.0000001.000000

    聚類特征

    from sklearn.cluster import KMeanskm = KMeans(n_clusters=2) km.fit_transform(similarity_df) cluster_labels = km.labels_ cluster_labels = pd.DataFrame(cluster_labels, columns=['ClusterLabel']) pd.concat([corpus_df, cluster_labels], axis=1)
    DocumentCategoryClusterLabel012345
    The sky is blue and beautiful.weather1
    Love this blue and beautiful sky!weather1
    The quick brown fox jumps over the lazy dog.animals0
    The brown fox is quick and the blue dog is lazy!animals0
    The sky is very blue and the sky is very beaut...weather1
    The dog is lazy but the brown fox is quick!animals0

    主題模型

    from sklearn.decomposition import LatentDirichletAllocationlda = LatentDirichletAllocation(n_topics=2, max_iter=100, random_state=42) dt_matrix = lda.fit_transform(tv_matrix) features = pd.DataFrame(dt_matrix, columns=['T1', 'T2']) features
    T1T2012345
    0.1905480.809452
    0.1768040.823196
    0.8461840.153816
    0.8148630.185137
    0.1805160.819484
    0.8391720.160828

    主題和詞的權重

    tt_matrix = lda.components_ for topic_weights in tt_matrix:topic = [(token, weight) for token, weight in zip(vocab, topic_weights)]topic = sorted(topic, key=lambda x: -x[1])topic = [item for item in topic if item[1] > 0.6]print(topic)print()[('brown', 1.7273638692668465), ('dog', 1.7273638692668465), ('fox', 1.7273638692668465), ('lazy', 1.7273638692668465), ('quick', 1.7273638692668465), ('jumps', 1.0328325272484777), ('blue', 0.7731573162915626)][('sky', 2.264386643135622), ('beautiful', 1.9068269319456903), ('blue', 1.7996282104933266), ('love', 1.148127242397004), ('today', 1.0068251160429935)]

    詞嵌入模型

    from gensim.models import word2vecwpt = nltk.WordPunctTokenizer() tokenized_corpus = [wpt.tokenize(document) for document in norm_corpus]# Set values for various parameters feature_size = 10 # Word vector dimensionality window_context = 10 # Context window size min_word_count = 1 # Minimum word count sample = 1e-3 # Downsample setting for frequent wordsw2v_model = word2vec.Word2Vec(tokenized_corpus, size=feature_size, window=window_context, min_count = min_word_count,sample=sample) w2v_model.wv['sky'] array([ 0.04776765, -0.04441591, 0.0468228 , -0.04031719, -0.04735648,-0.00321561, -0.03345697, -0.0451241 , 0.03330296, -0.03037446],dtype=float32) def average_word_vectors(words, model, vocabulary, num_features):feature_vector = np.zeros((num_features,),dtype="float64")nwords = 0.for word in words:if word in vocabulary: nwords = nwords + 1.feature_vector = np.add(feature_vector, model[word])if nwords:feature_vector = np.divide(feature_vector, nwords)return feature_vectordef averaged_word_vectorizer(corpus, model, num_features):vocabulary = set(model.wv.index2word)features = [average_word_vectors(tokenized_sentence, model, vocabulary, num_features)for tokenized_sentence in corpus]return np.array(features) w2v_feature_array = averaged_word_vectorizer(corpus=tokenized_corpus, model=w2v_model,num_features=feature_size) pd.DataFrame(w2v_feature_array) #lstm
    0123456789012345
    0.0241270.0170770.026422-0.0294020.001112-0.002655-0.004409-0.0087120.0098020.012457
    0.0297360.0224320.018225-0.022848-0.010878-0.004652-0.012399-0.000851-0.0031570.018775
    -0.002641-0.0051800.005764-0.0014350.0189880.0101340.001064-0.004431-0.0026460.000689
    -0.000735-0.0044960.008730-0.0119990.0186330.017814-0.000056-0.0015330.0017930.016195
    0.030725-0.0066590.023489-0.032785-0.000014-0.010089-0.016119-0.0052450.0091070.007049
    -0.001140-0.0153270.001268-0.0089280.0128090.013047-0.001205-0.001266-0.0033660.010224

    總結

    詞袋模型易于理解和計算,對分類和搜索任務很有用。但有時單個單詞太簡單,不足以將文本中的某些信息封裝起來。為了解決這個問題,人們寄希望于比較長的序列。Bag-of-ngram 是 BOW 的自然概括,這個概念仍然容于理解,而且它的計算開銷這就像 BOW 一樣容易。

    Bag of-ngram 生成更多不同的 ngram。它增加了特征存儲成本,以及模型訓練和預測階段的計算成本。雖然數據點的數量保持不變,但特征空間的維度現在更大。因此數據密度更為稀疏。n 越高,存儲和計算成本越高,數據越稀疏。由于這些原因,較長的 n-gram 并不總是會使模型精度的得到提高(或任何其他性能指標)。人們通常在n = 2或 3 時停止。較少的 n-gram 很少被使用。

    防止稀疏性和成本增加的一種方法是過濾 n-gram 并保留最有意義的短語。這是搭配抽取的目標。理論上,搭配(或短語)可以在文本中形成非連續的標記序列。然而,在實踐中,尋找非連續詞組的計算成本要高得多并且沒有太多的收益。因此搭配抽取通常從一個候選人名單中開始,并利用統計方法對他們進行過濾。

    所有這些方法都將一系列文本標記轉換為一組斷開的計數。與一個序列相比,一個集合的結構要少得多;他們導致平面特征向量。

    在本章中,我們用簡單的語言描述文本特征化技術。這些技術將一段充滿豐富語義結構的自然語言文本轉化為一個簡單的平面向量。我們討論一些常用的過濾技術來降低向量維度。我們還引入了 ngram 和搭配抽取作為方法,在平面向量中添加更多的結構。下一章將詳細介紹另一種常見的文本特征化技巧,稱為 tf-idf。隨后的章節將討論更多方法將結構添加回平面向量。

    參考文獻

    Dunning, Ted. 1993. “Accurate methods for the statistics of surprise and

    coincidence.” ACM Journal of Computational Linguistics, special issue on using large corpora , 19:1 (61—74).

    “Hypothesis Testing and p-Values.” Khan Academy, accessed May 31,

    2016,https://www.khanacademy.org/math/probability/statistics-inferential/hypothesis-testing/v/hypothesis-testing-and-p-values.

    Manning,Christopher D. and Hinrich Schütze. 1999. Foundations of StatisticalNatural Language Processing . Cambridge, Massachusettes: MIT Press.

    Sometimes people call it the document “vector.” The vector extends from the original and ends at the specified point. For our purposes, “vector” and “point” are the same thing.

    相關資源

    原版(英文)圖書地址:

    https://www.oreilly.com/library/view/feature-engineering-for/9781491953235/

    本文代碼可以在github下載:

    https://github.com/fengdu78/Data-Science-Notes/tree/master/9.feature-engineering

    數據集的百度云:

    鏈接:https://pan.baidu.com/s/1uDXt5jWUOfI0fS7hD91vBQ?提取碼:8p5d

    往期精彩回顧 那些年做的學術公益-你不是一個人在戰斗適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊備注:加入本站微信群或者qq群,請回復“加群”加入知識星球(4500+用戶,ID:92416895),請回復“知識星球”

    總結

    以上是生活随笔為你收集整理的AI基础:特征工程-文本特征处理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    日韩城人在线 | 国产一区二区三精品久久久无广告 | 丁香久久综合 | 极品美女被弄高潮视频网站 | 欧美在线观看视频免费 | 久久久久久久久久国产精品 | 精品国产一区二区三区久久久久久 | 91一区啪爱嗯打偷拍欧美 | 视频精品一区二区三区 | 狠狠做深爱婷婷综合一区 | 亚洲高清视频一区二区三区 | 成人精品99| 亚洲福利精品 | av最新资源 | 婷婷久操 | 日韩免费小视频 | 99精品国产福利在线观看免费 | 国产高清成人 | 中文字幕频道 | 国产一卡二卡在线 | 精品国产一区二区三区男人吃奶 | 国产亚洲在线视频 | 久久久久久久久久网站 | 99精品视频免费在线观看 | 精品国产视频在线 | 99久久精品网| 天天色天天射天天综合网 | 最新婷婷色 | 一级淫片a| 最新日韩精品 | 免费手机黄色网址 | 国产精品久久久久aaaa九色 | 欧美日韩视频在线观看免费 | 日韩一二区在线 | 狠狠色狠狠色综合日日小说 | 黄色免费在线视频 | 综合激情久久 | 久久天堂精品视频 | 欧美日韩国产成人 | 日本中文字幕电影在线免费观看 | 色偷偷中文字幕 | 成人免费网站在线观看 | 欧美aa级 | 亚洲国产精品资源 | 精品国产观看 | 国产日韩欧美自拍 | 国产精品九九久久久久久久 | 最新av免费| 欧美成人h版电影 | 天天五月天色 | 在线观看一区视频 | 久久国产精品精品国产色婷婷 | 亚洲网站在线 | 成年人国产视频 | 美女网站视频免费都是黄 | 久久综合成人网 | 一区二三国产 | 国产乱对白刺激视频在线观看女王 | 亚洲精品国产精品久久99热 | 国产网站在线免费观看 | 99亚洲精品在线 | 不卡中文字幕av | 久久久99精品免费观看app | 国产精品毛片网 | 国产无套精品久久久久久 | 在线观看视频国产一区 | 在线a亚洲视频播放在线观看 | 夜夜躁狠狠躁 | 国产91影视 | 国产精品入口麻豆 | 蜜桃av久久久亚洲精品 | 少妇bbw搡bbbb搡bbb | 免费在线观看毛片网站 | 亚洲丝袜一区二区 | 91精品视频在线看 | 国产精品久久久久久一二三四五 | 一级性av | 久久五月婷婷综合 | 国产精品欧美一区二区三区不卡 | 91精品国产成 | 国产精品久久久久久久久免费 | 欧美日韩一区二区三区在线观看视频 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 国产精品国产毛片 | 日韩高清激情 | 久久国产精品免费一区二区三区 | 天天综合网久久综合网 | 美女视频黄免费的久久 | 亚洲手机天堂 | 久久久久国产成人免费精品免费 | 国产精品永久久久久久久久久 | 永久免费观看视频 | 国产你懂的在线 | 在线亚洲播放 | 国产一级二级三级在线观看 | 黄色特级毛片 | 成人va在线观看 | 波多野结衣在线观看一区二区三区 | 亚洲精品中文字幕视频 | 国产精品99久久久精品 | 91精品国产麻豆 | 国产xxxx | www狠狠| 日韩高清毛片 | 国产小视频免费在线观看 | 日韩av偷拍 | 美女亚洲精品 | 婷婷中文字幕在线观看 | 国产亚洲在线观看 | 91精品国产福利在线观看 | 久久精品久久精品 | 亚洲欧美日韩中文在线 | 视频1区2区 | 五月婷婷影院 | 久久精品99国产国产 | 人人爽人人爽人人片av | 91桃色免费观看 | 偷拍福利视频一区二区三区 | 丁香花五月 | 久久国产精品久久国产精品 | 99精品国产兔费观看久久99 | 国产精品久久久免费 | 精品在线99 | 精品国产亚洲在线 | 69国产精品视频免费观看 | 日韩在线视频精品 | 久久爱www.| 狠狠精品 | 久久99国产精品久久99 | 中文字幕在线观看网址 | 91xav| 午夜国产福利在线 | 色婷婷啪啪免费在线电影观看 | www.亚洲精品在线 | 狠狠地日 | 国产精品一区二区免费 | 99精品国产在热久久下载 | 丝袜美腿亚洲 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美黄污视频 | 在线a视频免费观看 | 99亚洲视频 | 99精品在线直播 | 精品国产日本 | 欧美日韩一级久久久久久免费看 | 人人艹人人 | 91桃色在线播放 | 91亚洲精品乱码久久久久久蜜桃 | 啪嗒啪嗒免费观看完整版 | 成人久久视频 | 激情综合中文娱乐网 | 国产99免费视频 | 91av网址| 伊人欧美 | 国产 精品 资源 | 欧美日韩一区二区久久 | 国产香蕉97碰碰久久人人 | 久久撸在线视频 | 精品电影一区二区 | 色综合久久88色综合天天6 | 久久精品理论 | 99 久久久久 | 在线免费观看涩涩 | 国产二区免费视频 | 国产中文字幕在线播放 | 亚洲人在线视频 | 亚洲精品免费在线观看视频 | 日韩成人欧美 | 亚洲亚洲精品在线观看 | 六月丁香久久 | 色久天| 成人午夜av电影 | 久久久免费少妇 | 二区视频在线 | 精品国产乱码久久久久久1区二区 | 久久精品中文视频 | 黄色一级性片 | 欧美视频日韩 | 黄色www在线观看 | 91资源在线免费观看 | 中文字幕 91 | 日韩在线观看网址 | 久久九九免费视频 | 国产精品18毛片一区二区 | av观看在线观看 | 国产无遮挡又黄又爽馒头漫画 | 日本黄色免费看 | 丁香六月激情 | 久久国产精品二国产精品中国洋人 | 亚洲一级黄色大片 | 亚洲综合视频在线观看 | 狠狠操狠狠干2017 | av亚洲产国偷v产偷v自拍小说 | 亚洲精欧美一区二区精品 | 麻豆果冻剧传媒在线播放 | 国产精品理论片在线观看 | 久久久99精品免费观看app | 国产精品久久久久一区二区国产 | 色播五月婷婷 | 成年人黄色在线观看 | 6080yy精品一区二区三区 | 亚洲精品综合一区二区 | 国产一区二区在线观看视频 | 一区中文字幕在线观看 | 国产精品一区二区三区视频免费 | 五月天网站在线 | 在线观看成年人 | 中国成人一区 | 久久毛片高清国产 | 五月天天av | 久久精品99北条麻妃 | 欧美大片在线看免费观看 | 国产在线理论片 | 国产免费一区二区三区网站免费 | 国产视频综合在线 | 欧美精品首页 | 97香蕉久久超级碰碰高清版 | 91亚洲精品久久久蜜桃借种 | av韩国在线 | 免费看片亚洲 | 久99视频| 日韩高清三区 | 国产69精品久久app免费版 | 免费观看视频的网站 | www.伊人色.com | 国产精品综合av一区二区国产馆 | 国产精品日韩在线播放 | 99久久精品免费视频 | 97精品国产91久久久久久久 | 色人久久 | 天堂av在线免费观看 | 久久免费在线观看视频 | av一级片| 国产精品久久精品国产 | 国产精品18久久久 | 日韩一区在线免费观看 | 超碰在线人人97 | 在线观看视频99 | 国产精品专区在线 | 97视频网址 | 国产成人av在线影院 | 国产精品情侣视频 | 三级黄色大片在线观看 | 日韩精品中文字幕在线播放 | 伊人手机在线 | 免费观看www视频 | 国产成人免费av电影 | 韩国在线一区二区 | 国产亚洲欧美精品久久久久久 | 激情五月婷婷综合网 | 国产福利午夜 | 东方av在线免费观看 | 日韩在线二区 | 国产不卡精品 | 久草久热 | 亚洲成人av片在线观看 | 国产精品久久久久久久久久东京 | 五月婷香| 国产三级精品三级在线观看 | 日本巨乳在线 | 有码视频在线观看 | av一区二区三区在线观看 | 亚洲最快最全在线视频 | 欧美午夜a | 国产成人精品国内自产拍免费看 | 98久9在线 | 免费 | av再线观看| www狠狠| 成人午夜片av在线看 | 伊人久久精品久久亚洲一区 | 亚洲欧美一区二区三区孕妇写真 | 91av在线精品 | 91精品国产亚洲 | 波多野结衣精品视频 | 97福利在线观看 | 成人h电影在线观看 | 日韩在线资源 | 日产av在线播放 | 亚洲成人av电影 | 在线观看深夜福利 | 色综合久久综合 | 久久综合爱| 色婷婷视频| 久久免费视频精品 | 亚洲免费av电影 | 国产高清在线 | www激情久久 | 国产免费黄视频在线观看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 狠狠色伊人亚洲综合成人 | 激情婷婷久久 | 国产精品区二区三区日本 | 免费精品国产 | 四虎成人精品在永久免费 | 欧美大jb| 特级a毛片| 91视频啊啊啊 | 中文字幕亚洲综合久久五月天色无吗'' | 伊甸园av在线 | av资源中文字幕 | 久久理论电影网 | 97热久久免费频精品99 | 久精品视频免费观看2 | 精品国产三级 | 亚洲男男gaygay无套 | 91伊人影院 | 国产精品成人av久久 | 91九色丨porny丨丰满6 | 日本韩国精品一区二区在线观看 | 久久成人午夜 | 亚洲精品xxxx | 六月丁香婷婷在线 | 亚洲a网| 日韩高清在线观看 | av青草| 免费视频成人 | 中文字幕文字幕一区二区 | 黄色网址中文字幕 | 91免费观看国产 | 国产v在线 | 在线观看av黄色 | 欧美有色| 免费情趣视频 | 最近中文字幕在线中文高清版 | 中文字幕久久久精品 | 成人在线视频免费 | 黄色软件在线观看 | 国内精品视频免费 | 999色视频| 香蕉视频在线看 | 欧美日韩在线观看一区 | 国产视频在线观看一区 | 天天操综合 | 国产精品精品久久久 | 成人黄色国产 | 国产精品99久久免费观看 | 久久综合久久综合这里只有精品 | 黄色av一区 | 四虎在线免费观看 | 91cn国产在线 | 九九热视频在线播放 | 国产最新视频在线 | 一区二区三区在线免费 | 国产无套一区二区三区久久 | 亚洲成人av免费 | 日韩av片免费在线观看 | 国产亚洲久一区二区 | 亚洲人人爱 | 免费看日韩 | 国产原创在线观看 | av日韩国产| 成人毛片在线观看 | 丰满少妇对白在线偷拍 | 97精品国产97久久久久久免费 | 久久久久亚洲精品 | 精品国产一区二区三区日日嗨 | 亚洲欧美国产精品久久久久 | 免费91在线观看 | 久久久久免费精品 | 欧美va日韩va | 精品国产乱码一区二区三区在线 | 手机成人av在线 | 在线欧美小视频 | 亚洲精品视频偷拍 | 一区二区三区在线电影 | 在线免费高清视频 | 久在线观看视频 | 97视频在线观看播放 | 久久久久女教师免费一区 | 日韩av网站在线播放 | 91精品视频免费看 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 91福利视频网站 | 蜜臀一区二区三区精品免费视频 | 午夜国产一区二区三区四区 | a级黄色片视频 | 免费日韩一级片 | 国产91在线 | 美洲 | 日日躁夜夜躁xxxxaaaa | 在线观看福利网站 | 骄小bbw搡bbbb揉bbbb | 日韩首页| 在线观看岛国片 | 久久久黄视频 | 国产另类av | 久黄色 | 日韩激情在线视频 | 最近中文字幕高清字幕免费mv | 亚洲精品影院在线观看 | 久久影视一区二区 | 日本大片免费观看在线 | 久草在线国产 | 国产免费一区二区三区网站免费 | 国产视频黄 | 日本黄色大片免费看 | 在线观看免费版高清版 | 亚洲成人高清在线 | 免费在线观看av的网站 | 日日躁夜夜躁xxxxaaaa | 亚洲免费精品视频 | 91精品国产自产在线观看 | 人人爽人人爽人人片 | 久久99网站 | 久精品视频在线观看 | 激情综合网天天干 | 亚洲第一成网站 | 玖玖国产精品视频 | 亚洲国产成人精品久久 | 国产精品乱码一区二区视频 | 男女啪啪视屏 | 久草在线免费资源站 | 制服丝袜亚洲 | 看毛片的网址 | 国产视频一区二区在线观看 | 日韩成人免费在线电影 | 久久精品久久精品久久39 | 毛片3 | 日日婷婷夜日日天干 | 国内精品久久久久久久久 | 国产午夜一区二区 | 国产精品美女久久久久久 | 中日韩在线视频 | 免费又黄又爽的视频 | 在线视频成人 | 国产精品成人品 | 日韩av有码在线 | 亚洲精品乱码久久久久久9色 | 91麻豆文化传媒在线观看 | 色婷五月| 中文字幕日韩一区二区三区不卡 | 69热国产视频 | 色综合久久综合中文综合网 | 97碰碰精品嫩模在线播放 | 亚洲精品美女久久久久网站 | 久久国产精品一区二区 | 草久在线观看 | 操操日| 日本精品久久久久中文字幕 | av免费观看高清 | 久久久www成人免费精品张筱雨 | 精品黄色片 | 香蕉视频4aa | 天天爱天天干天天爽 | 91在线最新 | 中文字幕av最新 | 成年人看片 | 久久天天躁夜夜躁狠狠躁2022 | 欧美精品久久99 | 五月激情综合婷婷 | 在线久久 | 国产精品麻豆99久久久久久 | 国产 一区二区三区 在线 | 美女视频黄免费 | 久久兔费看a级 | 久久综合毛片 | 国产精品久久久久久久久久不蜜月 | 日韩一级成人av | 欧美日本不卡高清 | 日本资源中文字幕在线 | 久久久久久毛片 | 日韩精品久久久久久久电影99爱 | 99久久精品无码一区二区毛片 | 精品中文字幕在线观看 | 国产婷婷色 | 日韩精品视频免费在线观看 | 日本最新高清不卡中文字幕 | 99视频免费在线观看 | 欧美一区二区三区在线 | 国产精品视频久久久 | 久久久久久久久久久影院 | 亚洲国产av精品毛片鲁大师 | 欧美一区中文字幕 | 亚洲综合视频在线播放 | 一级免费片 | 在线免费av观看 | 日本精品一二区 | 国产成人精品在线 | 国产精品高潮呻吟久久av无 | 色偷偷88888欧美精品久久久 | 国产在线精品视频 | 欧美精品久久久久久久久久久 | 正在播放一区二区 | 国产亚洲精品久久久久久久久久 | 亚洲国产剧情 | av中文在线 | 丁香五月亚洲综合在线 | 免费日韩在线 | 久久香蕉电影 | 日韩三区在线观看 | 国产精品一区二区免费视频 | 日韩av影视在线观看 | 久久久国产精品久久久 | 在线看毛片网站 | 日韩久久激情 | 久久精品国产亚洲aⅴ | 一级片视频免费观看 | 国产精品6 | 国产网红在线观看 | 天天插狠狠干 | 成全在线视频免费观看 | 国产午夜精品一区二区三区欧美 | 亚洲视频在线看 | 日本成人黄色片 | 久久亚洲精品电影 | 99久久国产免费,99久久国产免费大片 | 国产亚洲在线观看 | 欧美久久久一区二区三区 | 久久久人人爽 | 成人国产综合 | 一区二区三区免费播放 | 黄色性av| 国产精品毛片一区视频播 | 男女激情免费网站 | 欧美精品在线免费 | 91视频免费看网站 | 丁香花在线视频观看免费 | 日韩在线理论 | 91精品视频导航 | 日韩在线观看精品 | 不卡的一区二区三区 | 欧美精品在线观看一区 | 国产护士在线 | 成年人在线观看网站 | 91精品婷婷国产综合久久蝌蚪 | 午夜电影中文字幕 | 人人射人人| 亚洲永久精品一区 | 亚洲国产高清在线观看视频 | 国产精品区免费视频 | 天天射色综合 | 九九九热 | 欧美一级免费片 | 久久久久久久久久久影院 | 久久国产精品久久精品 | 国产又粗又猛又黄又爽 | 黄色软件在线观看 | 中文字幕在线免费看线人 | 久久精品男人的天堂 | 日韩欧美精品一区二区三区经典 | 日韩视频中文字幕 | 狠狠躁日日躁狂躁夜夜躁av | 欧美日韩中文字幕视频 | 久久久久 免费视频 | 伊人春色电影网 | 日韩中文在线电影 | 99精品欧美一区二区三区黑人哦 | 欧美精品乱码久久久久久按摩 | 99视频一区 | 日韩毛片在线一区二区毛片 | 日韩视频www | 97人人澡人人添人人爽超碰 | 中文字幕日本在线观看 | 在线蜜桃视频 | 亚洲国产人午在线一二区 | 天天摸夜夜添 | 天天爱天天草 | 国产精品国产三级国产不产一地 | 中文字幕一区二 | 国产不卡在线看 | 欧美日韩国产精品久久 | 欧美精品成人在线 | 国产精品美女在线观看 | 国产精品自在线拍国产 | 在线电影 一区 | 久草网视频 | 欧美日韩国产综合一区二区 | 国产精品综合久久 | 五月婷婷综合网 | 国产精品成人a免费观看 | 人人射网站 | 久草在线视频免费资源观看 | 国产精品video| 在线观看av网 | 色婷婷视频 | 又黄又刺激视频 | 国产999精品久久久影片官网 | 中文字幕亚洲字幕 | 深夜免费福利视频 | 欧美成人精品在线 | 五月婷婷综合在线视频 | 精品久久久久久亚洲综合网站 | 中文字幕一区二区三区四区视频 | 99精品热 | 国产精品黄色影片导航在线观看 | 丁香5月婷婷久久 | 久久视频在线免费观看 | 国产成人福利片 | 久久成人国产精品一区二区 | 特级毛片爽www免费版 | 久久精品久久久久电影 | 久久少妇免费视频 | 99精品视频中文字幕 | 毛片在线网 | 免费久久视频 | 96久久欧美麻豆网站 | 97国产视频 | 日韩 国产 | 国产一区二区在线免费观看 | 国产a级免费 | 免费视频二区 | 九九视频这里只有精品 | 夜添久久精品亚洲国产精品 | 黄色三级免费看 | 久久久国产一区二区三区四区小说 | 在线观看你懂的网站 | 欧美一级电影在线观看 | 久久久久国产精品www | 欧美一级黄色网 | 欧美在线视频不卡 | 久久精品国产亚洲 | 日本性生活一级片 | 人人爽人人爽人人片av免 | 99热9| 天天插天天干 | 色综合天天综合 | 天天拍天天草 | 亚洲精品国偷自产在线99热 | 国产高清视频免费 | 久艹在线免费观看 | 亚洲理论视频 | 国产91精品一区二区麻豆亚洲 | 日韩视 | 亚洲黄色软件 | 中文字幕在线观看第二页 | 在线国产日本 | 成人av片在线观看 | 六月婷婷网| 久草在线99 | 97香蕉久久国产在线观看 | 亚洲资源 | 奇米网444 | 国产另类xxxxhd高清 | 色婷婷激情电影 | 西西4444www大胆艺术 | 国产精品一级在线 | 啪啪免费观看网站 | 色资源网免费观看视频 | 婷婷色在线 | 欧美激情xxxx性bbbb | 国产黄色片网站 | 最近免费观看的电影完整版 | www.久久精品视频 | 99综合电影在线视频 | 欧美,日韩| 日韩手机在线观看 | 国产尤物在线视频 | 免费网站污 | 午夜av在线电影 | 亚洲mv大片欧洲mv大片免费 | 欧美日韩在线精品一区二区 | 91视频91色 | 免费久久99精品国产 | 在线观看av国产 | 色www永久免费 | 国内精品视频在线 | 一级免费黄色 | 久久国产精彩视频 | 久久免费黄色网址 | 久草在线91| 91精品国产91 | 九九爱免费视频 | 国产精品免费在线播放 | a黄色一级| 黄在线免费看 | 手机成人av在线 | 在线观看国产区 | 99久久婷婷国产 | 成人影片免费 | 亚洲综合色视频在线观看 | 一本一本久久a久久精品综合 | 免费韩国av | 少妇激情久久 | 四虎精品成人免费网站 | 成人av网站在线观看 | 最近高清中文在线字幕在线观看 | 婷婷久久国产 | 在线 你懂 | 亚洲理论影院 | 国产精品24小时在线观看 | 亚洲精品视频网站在线观看 | av在线免费在线观看 | 成人禁用看黄a在线 | 在线观看av国产 | 国产 日韩 欧美 在线 | 成人精品一区二区三区电影免费 | 日日添夜夜添 | 国产亚洲观看 | 国产精品免费麻豆入口 | 欧美日本三级 | 久久久黄色免费网站 | 深爱婷婷激情 | 久久精品国产一区 | 日韩中文字幕免费在线观看 | 国产亚洲精品久久久久久 | 亚洲dvd| 久久精品日韩 | 成人av电影网址 | 高清av中文在线字幕观看1 | 色婷婷免费视频 | 手机看片中文字幕 | 亚洲在线免费视频 | 一区二区三区视频网站 | 久草在线官网 | 九九热只有这里有精品 | 亚洲欧洲精品一区二区精品久久久 | 国产又粗又猛又色又黄网站 | 亚洲高清在线视频 | 五月婷婷操| 久亚洲 | 99re8这里有精品热视频免费 | 国产人成免费视频 | 99r在线播放 | 久久精品成人热国产成 | 亚洲精品日韩av | 国产自产高清不卡 | av电影在线观看完整版一区二区 | 在线播放国产精品 | 欧美另类高清 videos | 91麻豆精品国产91久久久无需广告 | 国产免费人成xvideos视频 | 97成人资源| 成年人视频在线观看免费 | 久久久久久久久久久久电影 | 欧美精品中文字幕亚洲专区 | 日韩中字在线 | 国产精品第52页 | 欧美国产不卡 | 91av免费观看 | 中文字幕二区在线观看 | 五月婷婷一区二区三区 | 最近高清中文在线字幕在线观看 | 九九视频网站 | 97在线视频网站 | 亚洲欧美成人在线 | 精品美女视频 | 日韩久久精品一区二区 | 韩国在线一区二区 | 亚洲九九爱 | 国产一级二级三级在线观看 | 久久久毛片 | 久久久国内精品 | 亚洲精品在线一区二区三区 | 视频一区在线免费观看 | 亚洲午夜精品久久久久久久久 | 国产第一页福利影院 | 中文字幕人成乱码在线观看 | 欧美在线视频a | 在线观看中文字幕视频 | 日韩在线视频国产 | jizzjizzjizz亚洲 | 亚洲国产高清在线 | 婷婷天天色 | 久久久综合九色合综国产精品 | 久久999精品 | 成人综合婷婷国产精品久久免费 | www.久久com| 日本高清久久久 | 亚洲六月丁香色婷婷综合久久 | 成人丁香花 | www.久久久精品| 一级免费看视频 | 97在线资源| 成人教育av | 999久久| 在线观看资源 | 国产伦理一区二区 | 亚洲视频精品 | 欧美一级性生活视频 | 日韩黄色一级电影 | 奇米网在线观看 | 亚洲少妇xxxx | 欧美日韩后 | 亚洲伊人网在线观看 | 久久久久国产视频 | 激情视频免费在线 | 综合激情 | 香蕉视频在线网站 | 99在线观看精品 | 国产一区免费在线观看 | 国产黄色一级片在线 | 综合色亚洲 | 中文伊人 | 久久99精品国产麻豆婷婷 | 欧美另类视频 | 日本三级吹潮在线 | 四虎亚洲精品 | 成人免费观看av | 日韩在线观看精品 | 日韩丝袜在线观看 | 99综合久久 | 久久成人国产精品 | 一级α片 | 日本aaaa级毛片在线看 | a√资源在线 | 亚洲一区不卡视频 | 天天做天天爱天天综合网 | 欧美成人精品在线 | 激情在线免费视频 | 日韩免费在线观看 | 99久久精品免费看国产免费软件 | 精品一区二区久久久久久久网站 | 色五月成人 | 黄色av成人在线 | 韩国三级在线一区 | 国产精品久久久久久久久久免费 | 天天人人综合 | 久久免费影院 | 久久婷婷综合激情 | 丁香九月激情综合 | 久久国产热视频 | 成人av在线观 | 成人影视片 | 久久99国产精品二区护士 | 成人精品一区二区三区中文字幕 | 国产不卡av在线 | 在线观看日韩免费视频 | 国产一区欧美在线 | 又黄又爽又色无遮挡免费 | 日韩在线观看视频在线 | 国产视频精品久久 | 日本中文字幕在线视频 | 免费在线观看国产精品 | 久久,天天综合 | 日韩3区 | 狠狠狠色丁香婷婷综合激情 | 一区二区三区免费看 | av色影院 | 成人免费中文字幕 | 国产在线播放一区二区三区 | 婷婷六月丁 | 四虎永久免费网站 | 国产精品中文字幕在线播放 | 亚州精品在线视频 | 亚洲激情六月 | 最近中文字幕完整高清 | 一级黄色在线视频 | 国产精品一区二区麻豆 | 亚洲成人家庭影院 | 国产精品九九九 | 久久社区视频 | 久草视频播放 | 91免费国产在线观看 | 亚洲一区天堂 | 在线看黄色的网站 | 五月天电影免费在线观看一区 | 欧美另类性 | 国产精品一区二区三区电影 | 91视频在线 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 免费在线观看一区 | 99久久精品久久久久久清纯 | 91精品一区二区三区久久久久久 | 日韩在线中文字幕 | 日日夜夜天天久久 | 亚洲精品影院在线观看 | 久草视频视频在线播放 | 一二区电影 | 欧美在线观看小视频 | 精品国产免费人成在线观看 | www.夜夜 | 国产精品女视频 | 亚洲精品美女在线观看 | 黄色www| 日韩精品一区在线观看 | 亚洲黄在线观看 | 免费精品在线视频 | 99精品国产免费久久久久久下载 | 久热这里有精品 | 国产乱对白刺激视频在线观看女王 | 久久久久二区 | 日本精品在线 | 国产免费一区二区三区最新6 | 久久爱导航 | 国产视频在线观看一区二区 | 亚洲六月丁香色婷婷综合久久 | 国内成人av| 国产精品亚洲a | 正在播放一区 | 亚洲欧美日本一区二区三区 | 欧美成人在线免费 | 亚洲女人天堂成人av在线 | www.人人草| 久久理论影院 | 91精品久久香蕉国产线看观看 | 天堂在线v | 中文字幕一区二区三区乱码在线 | 午夜久久电影网 | 91激情视频在线播放 | 一区二区三区电影在线播 | 91精品视频观看 | 高潮久久久久久 | av官网在线 | 日韩女同一区二区三区在线观看 | 免费影视大全推荐 | 成人久久精品视频 | 日韩va亚洲va欧美va久久 | 成片免费 | 黄色一级大片在线免费看国产一 | 97超碰中文字幕 | 狠狠干天天色 | 黄色av影院 | 日本激情视频中文字幕 | 成人av片免费观看app下载 | 天天天干夜夜夜操 | 99精品国产成人一区二区 | 日韩精品免费在线观看视频 | 国产性xxxx | 亚洲欧美日本国产 | 亚洲一区免费在线 | 亚洲区另类春色综合小说 | 在线观看亚洲精品 | av在线com | 成人试看120秒 | 国产专区视频 | 欧美日韩视频在线播放 | 亚洲精品三级 | 视频在线观看一区 | 天天天干夜夜夜操 | av免费网站 | 天堂av网站 | av高清不卡 | 中文在线字幕免费观 | 一级片视频免费观看 | 麻豆传媒精品 | 在线观看国产高清视频 | 国产原创91 | 日韩毛片在线播放 | 久久久久久久久网站 | 久久视频这里有久久精品视频11 | 日韩影视在线观看 | 国产女人免费看a级丨片 | 国产永久网站 | 国产亚洲精品福利 | 日日夜夜人人天天 | 在线观看的a站 | 久久久九色精品国产一区二区三区 | 国产九色视频在线观看 | 亚洲精品国产视频 | 国产精品自拍av | 伊人春色电影网 | 国产一级h | 中文字幕丝袜一区二区 | 在线成人免费电影 | 国产精品国产三级国产专区53 | 丰满少妇在线观看网站 | 在线黄色国产电影 | 日韩欧美在线综合网 | 国产99久久99热这里精品5 | 久久久激情网 | 在线欧美日韩 | 成人免费视频观看 | 久久综合久久鬼 | 天天色天天射综合网 | 国产亚洲精品电影 | 国产91全国探花系列在线播放 | 天天色天天射综合网 | 91精品视频一区 | 国产精品美女久久久久久 | 久久国产影院 | 久久综合狠狠狠色97 | av免费观看高清 | 免费男女网站 | 成人国产网站 | 中文字幕乱码一区二区 | 人人澡人人草 | 激情小说 五月 | 久久久午夜精品福利内容 | 亚洲一区二区视频在线 | 亚洲最新av| 久久免费视频在线观看 | 色中文字幕在线观看 | 国产精品第72页 | 日韩经典一区二区三区 | 久久婷五月 | 国产一区二区高清视频 | 色吊丝在线永久观看最新版本 | 免费看一级片 | 国产亚洲精品日韩在线tv黄 | 国产精品区免费视频 | 精品国产一区二区三区av性色 | 欧美成人h版电影 | 91在线视频在线 | 成年人在线观看网站 | 波多野结衣久久精品 | 四虎国产精品免费观看视频优播 | 国产精品免费久久久久 | 亚洲黄电影 | 视频成人免费 | 日本激情视频中文字幕 | 久久精品免费播放 | 久久免费看a级毛毛片 | 最近最新最好看中文视频 | av网站在线观看免费 | 国产精品综合av一区二区国产馆 | 天天久久夜夜 | 日韩精品一区二区免费 | 97福利在线观看 | 亚洲aaa级 |