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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

edittext禁止换行符但能自动换行简书_使用n-gram创建自动完成系统

發(fā)布時(shí)間:2025/3/20 84 豆豆
生活随笔 收集整理的這篇文章主要介紹了 edittext禁止换行符但能自动换行简书_使用n-gram创建自动完成系统 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

n-gram語言模型用于就是計(jì)算句子的概率,通俗來講就是判斷這句話是人話的可能性有多少。n就是將句子做切割,n個(gè)單詞為一組。

如何計(jì)算句子的概率?根據(jù)條件概率和鏈?zhǔn)揭?guī)則

P(B|A)=P(A,B)/P(A) ==>P(A,B) = P(A)P(B|A)

所以P(A,B,C,D) = P(A)P(B|A)P(C|A,B)P(D|A,B,C)

如果句子很長,那么這個(gè)式子就會很長,計(jì)算會變得很復(fù)雜。為了簡化,引入了馬爾科夫假設(shè):隨意一個(gè)詞出現(xiàn)的概率只與它前面出現(xiàn)的有限的一個(gè)或者幾個(gè)詞有關(guān)。

假設(shè)前面的例子當(dāng)中,一個(gè)詞出現(xiàn)的概率只和前面的一個(gè)詞有關(guān),那么

P(A,B,C,D) = P(B|A)P(C|B)P(D|C)

用公式來表達(dá),如果出現(xiàn)的一個(gè)詞出現(xiàn)的概率只和前面的k個(gè)詞(就是n-gram里的n)有關(guān),那么一個(gè)句子的計(jì)算概率就為

以下為翻譯文,原版是

https://github.com/tsuirak/deeplearning.ai/blob/master/Natural%20Language%20Processing/Course%202%20-%20Probabilistic%20Models/Labs/Week%203/C2-W3-assginment-Auto%20Complete.ipynb?github.com

在這篇文章里,你將創(chuàng)建一個(gè)自動(dòng)匹配系統(tǒng)。自動(dòng)匹配系統(tǒng),是你每天都能看到的

  • 當(dāng)在你google里搜索的時(shí)候,你經(jīng)常會得到一些提示來幫助你完成你的搜索。
  • 當(dāng)你在寫一封郵件的時(shí)候,你會得到一些對于你的語句中結(jié)束詞的建議

這這個(gè)任務(wù)的結(jié)尾,你將會開發(fā)類似于這個(gè)系統(tǒng)的原型。

大綱

1.加載和處理數(shù)據(jù)

1.1加載數(shù)據(jù)

1.2處理數(shù)據(jù)

2.開發(fā)一個(gè)n-gram基本語言模型

3.復(fù)雜性

4.創(chuàng)建一個(gè)自動(dòng)完成系統(tǒng)

自動(dòng)完成系統(tǒng)中,一個(gè)關(guān)鍵的創(chuàng)建區(qū)塊就是一個(gè)語言模型。一個(gè)語言模型給一個(gè)序列的所有詞分配概率,換句話來說最有可能的句子序列有更高的分?jǐn)?shù)

"I have a pen" 跟"I am a pen" 相比,我們希望它有更高的概率,因?yàn)樗谖覀兊膶?shí)際中,更加符合自然的句子

你可以利用概率計(jì)算去開發(fā)一套自動(dòng)完成系統(tǒng)。比如用戶輸入:

"I eat scrambled" ,那么你可以找到一個(gè)單詞x 使 "I eat scrambled x" 擁有最高的概率. 如果x = "eggs", 那么句子將會是 "I eat scrambled eggs"

現(xiàn)在已經(jīng)有很多種語言模型已經(jīng)被開發(fā)出來, 在這個(gè)任務(wù)當(dāng)中,我們使用 N-grams, 這個(gè)簡單又強(qiáng)大的方法去開發(fā)語言模型。

  • N-grams 同樣使用于機(jī)器翻譯和語音識別.

以下是這個(gè)任務(wù)的步驟

  • 加載和預(yù)處理數(shù)據(jù)
    • 加載數(shù)據(jù),然后分詞.
    • 把句子分成訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集.
    • 對于低頻詞,使用 <unk>代替.

    2.開發(fā)一個(gè)n-grams的基礎(chǔ)語言模型

    • 從一個(gè)給定的數(shù)據(jù)集中計(jì)算n-grams的數(shù)量
    • 使用k-平滑方式,估算下個(gè)一個(gè)詞的條件概率

    3.通過計(jì)算困惑度分?jǐn)?shù)來評估N-gram模型

    4. 利用的你模型,來預(yù)測你句子的下一個(gè)單詞

    先引入所需要的庫

    import math import random import numpy as np import nltk import pandas as pd nltk.data.path.append('.')

    Part 1: 加載和預(yù)處理數(shù)據(jù)

    Part 1.1: 加載數(shù)據(jù)

    你將使用twitter data. 運(yùn)行下面的代碼,加載和看前幾個(gè)句子。

    注意數(shù)據(jù)是一個(gè)包含很多很多推文的長長的字符串,在推文之間有換行符 "n" 分割。

    with open("en_US.twitter.txt","r") as f:data = f.read()print("Data type:", type(data)) print("Number of letters:", len(data)) print("First 300 letters of the data") print("-------") display(data[0:300]) print("-------")print("Last 300 letters of the data") print("-------") display(data[-300:]) print("-------")

    輸出:

    Data type: <class 'str'> Number of letters: 3335477 First 300 letters of the data -------


    "How are you? Btw thanks for the RT. You gonna be in DC anytime soon? Love to see you. Been way, way too long.nWhen you meet someone special... you'll know. Your heart will beat more rapidly and you'll smile for no reason.nthey've decided its more fun if I don't.nSo Tired D; Played Lazer Tag & Ran A "


    ------- Last 300 letters of the data -------
    "ust had one a few weeks back....hopefully we will be back soon! wish you the best yonColombia is with an 'o'...“: We now ship to 4 countries in South America (fist pump). Please welcome Columbia to the Stunner Family”n#GutsiestMovesYouCanMake Giving a cat a bath.nCoffee after 5 was a TERRIBLE idea.n"
    -------

    Part 1.2 預(yù)處理數(shù)據(jù)

    根據(jù)以下步驟預(yù)處理數(shù)據(jù):

  • 使用 "n" 做為分隔符,將數(shù)據(jù)成句子.
  • 將句子分詞。 注意在這篇文章里,我們使用 "token" and "words" ,他們是同一個(gè)意思.
  • 將句子分配進(jìn)訓(xùn)練數(shù)據(jù)機(jī)和測試數(shù)據(jù)集
  • 在訓(xùn)練數(shù)據(jù)機(jī)里,找到出現(xiàn)次數(shù)大于n的詞
  • 對于出現(xiàn)次數(shù)小于n的,使用<unk>帶地
  • Note: 在這項(xiàng)練習(xí)里,我們拋棄了驗(yàn)證數(shù)據(jù)集合。

    • 在真實(shí)的應(yīng)用中,我們應(yīng)該保留一部分?jǐn)?shù)據(jù)當(dāng)作驗(yàn)證數(shù)據(jù)集,去調(diào)整我們的訓(xùn)練
    • 為了簡單起見,我們跳過了這一步

    Exercise 01

    將數(shù)據(jù)分隔成句子

    def split_to_sentences(data):"""Split data by linebreak "n"Args:data: strReturns:A list of sentences"""sentences = data.split('n')# Additional clearning (This part is already implemented)# - Remove leading and trailing spaces from each sentence# - Drop sentences if they are empty strings.sentences = [s.strip() for s in sentences]sentences = [s for s in sentences if len(s) > 0]return sentences

    Exercise 02

    下一步就是將句子分詞 (將一個(gè)句子分成一系列的詞).

    • 將所有的詞都轉(zhuǎn)換成小寫,這樣的話大寫的詞和小寫的詞(比如big 和Big就可以當(dāng)作同一個(gè)詞)
    • 將每個(gè)一個(gè)句子的分詞列表添加道一個(gè)總的list里
    def tokenize_sentences(sentences):"""Tokenize sentences into tokens (words)Args:sentences: List of stringsReturns:List of lists of tokens"""# Initialize the list of lists of tokenized sentencestokenized_sentences = []# go through each sentence for sentence in sentences:# convert to lowercase letterssentence = sentence.lower()# convert to a list of wordstokenized = nltk.word_tokenize(sentence)# append the list of words to the list of liststokenized_sentences.append(tokenized)return tokenized_sentences

    Exercise 03

    使用以上定義的兩個(gè)方法獲取分詞數(shù)據(jù)。

    • 將數(shù)據(jù)分成句子
    • 給句子分詞
    def get_tokenized_data(data):"""Make a list of tokenized sentencesArgs:data: StringReturns:List of lists of tokens"""# get the sentences bt splitting up the datasentences = split_to_sentences(data)# get the list of lists of tokens by tokenizing the sentencestokenized_sentences = tokenize_sentences(sentences)return tokenized_sentences

    將數(shù)據(jù)分為訓(xùn)練集和測試集

    tokenized_data = get_tokenized_data(data) random.seed(87) random.shuffle(tokenized_data)train_size = int(len(tokenized_data) * 0.8) train_data = tokenized_data[0:train_size] test_data = tokenized_data[train_size:]

    Exercise 04

    并非有所的詞在訓(xùn)練里你都會用到,你只會用到高頻詞

    • 你只會關(guān)注在數(shù)據(jù)集里出現(xiàn)n次的詞
    • 首先需要計(jì)算詞出現(xiàn)的此時(shí)

    你需要嵌套兩個(gè)循環(huán),一個(gè)是sentences ,一個(gè)是sentences里的詞

    def count_words(tokenized_sentences):"""Count the number of word appearence in the tokenized sentencesArgs:tokenized_sentences: List of lists of stringsReturns:dict that maps word (str) to the frequency (int)"""word_counts = {}# Loop through the sentencesfor sentence in tokenized_sentences:for token in sentence:# If the token is not in the dictionary yet,set the count to 1if token not in word_counts.keys():word_counts[token] = 1# If the token already in the dictionary,increment the count by 1else:word_counts[token] += 1return word_counts

    處理 'Out of Vocabulary' words

    如果你的模型正在實(shí)現(xiàn)自動(dòng)完成,但是遇到一個(gè)在訓(xùn)練的時(shí)候從來沒有出現(xiàn)過的詞,沒法得到下一個(gè)詞的建議。這個(gè)模型不可以預(yù)測下一個(gè)詞因?yàn)閷τ诋?dāng)前詞(未出現(xiàn)的詞,它的數(shù)量是沒有的)

    • 這個(gè)新詞叫做 'unknown word', 或者 out of vocabulary (OOV) words.
    • unknown words 在測試集里的百分比叫做 OOV 率.

    在預(yù)測過程中,為了處理這些unknown words,我們用一個(gè)特殊詞'unk'表示 。

    修改訓(xùn)練數(shù)據(jù),方便訓(xùn)練一些 'unknown' words .

    • 在測試數(shù)據(jù)里將低頻詞轉(zhuǎn)換成"unknown" words
    • 在訓(xùn)練集里創(chuàng)建一個(gè)高頻詞列表,叫closed vocabulary .
    • 將所有非高頻詞都轉(zhuǎn)化成 'unk'.

    Exercise 05

    創(chuàng)建一個(gè)方法,使用文檔和一個(gè)數(shù)量門檻'count_threshold'

    • 任何詞頻大于 'count_threshold' 的被當(dāng)作 closed vocabulary.
    def get_words_with_nplus_frequency(tokenized_sentences, count_threshold):"""Find the words that appear N times or moreArgs:tokenized_sentences: List of lists of sentencescount_threshold: minimum number of occurrences for a word to be in the closed vocabulary.Returns:List of words that appear N times or more"""# Initialize ant empty list to contain in the words that# appear at least N timesclosed_vocab = []# Get the word counts of the tokenized sentences# Use the function that you defined earlier to count the wordsword_counts = count_words(tokenized_sentences)for word,cnt in word_counts.items():# Check that the word's count# is at least as greater as the minimum countif cnt >= count_threshold:closed_vocab.append(word)return closed_vocab

    Exercise 06

    • 除了高頻詞,其他都是'unknown'.
    • 將'unknown'.用"<unk>"表示
    def replace_oov_words_by_unk(tokenized_sentences, vocabulary, unknown_token="<unk>"):"""Replace words not in the given vocabulary with '<unk>' token.Args:tokenized_sentences: List of lists of stringsvocabulary: List of strings that we will useunknown_token: A string representing unknown (out-of-vocabulary) wordsReturns:List of lists of strings, with words not in the vocabulary replaced"""# Place vocabulary into a set for faster searchvocabulary = set(vocabulary)# Initialize a list that will hold the sentences # after less frequent words are replaced by the unkreplaced_tokenized_sentences = []for sentence in tokenized_sentences:# Initialize the list that will contain# a single sentence with unk replacementsreplaced_sentence = []for token in sentence:if token in vocabulary:replaced_sentence.append(token)else:replaced_sentence.append(unknown_token)replaced_tokenized_sentences.append(replaced_sentence)return replaced_tokenized_sentences

    Exercise 07

    現(xiàn)在我們已經(jīng)準(zhǔn)備通過組合之前已經(jīng)實(shí)現(xiàn)的方法來處理數(shù)據(jù).

  • 在訓(xùn)練數(shù)據(jù)集里,找到出現(xiàn)次數(shù)大于 count_threshold 的詞
  • 在訓(xùn)練數(shù)據(jù)集和測死數(shù)據(jù)集里,將出現(xiàn)次數(shù)小于count_threshold 的,使用 "<unk>" 代替
  • def preprocess_data(train_data, test_data, count_threshold):"""Preprocess data, i.e.,- Find tokens that appear at least N times in the training data.- Replace tokens that appear less than N times by "<unk>" both for training and test data. Args:train_data, test_data: List of lists of strings.count_threshold: Words whose count is less than this are treated as unknown.Returns:Tuple of- training data with low frequent words replaced by "<unk>"- test data with low frequent words replaced by "<unk>"- vocabulary of words that appear n times or more in the training data"""# Get the closed vocabulary using the train datavocabulary = get_words_with_nplus_frequency(train_data,count_threshold)# For the train data, replace less common words with "<unk>"train_data_replaced = replace_oov_words_by_unk(train_data,vocabulary)# For the test data, replace less common words with "<unk>"test_data_replaced = replace_oov_words_by_unk(test_data,vocabulary)

    Part 2: 開發(fā) n-gram 基本語言模型

    在這個(gè)章節(jié)里, 將會開發(fā) n-grams 語言模型.

    • 假設(shè)當(dāng)前詞的概率只和前面的 n-gram,有關(guān)
    • 前面的 n-gram 是指前面的一系列的n個(gè)詞

    這句子中,位置t的詞,它前面的詞是 wt?1,wt?2?wt?nwt?1,wt?2?wt?n ,它的條件概率是is:

    P(wt|wt?1…wt?n)

    你可以通過計(jì)算在訓(xùn)練集里這一序列的詞的次數(shù)來估算這個(gè)概率值.

    這個(gè)概率中,分子是位置t的詞(wt)出現(xiàn)在wt?n.....wt?1這一序列詞之后的次數(shù)。分母是wt?n.....wt?1這一序列的詞出現(xiàn)的次數(shù)。

    如果數(shù)量為0(無論是分子還是分母),可以通過添加k平滑修改這個(gè)概率計(jì)算公式。

    根據(jù)以上概率計(jì)算公式,對于分母我們需要計(jì)算n個(gè)詞組成的序列的次數(shù);對于分子,我們需要計(jì)算n+1個(gè)詞組成的序列的次數(shù)

    Exercise 08

    下面,你將會編寫一個(gè)可以計(jì)算n-grams 數(shù)量(n是任意值)的方法。

    計(jì)算之前,需要在句子面前添加n個(gè)<s>表明是句子的開頭,比如n=2,假若句子是"I like food",則需要將句子修改成"<s><s> I like food"。同時(shí),也要在句子后面添加<e>表明是句子的結(jié)尾。???

    Technical note: 在這個(gè)方法里, 你將會使用dictionary來保存數(shù)量.

    • dictionary 的key是一個(gè) n 個(gè)單詞的tuple (并非list)
    • dictionary 的value是出現(xiàn)的次數(shù)
    • key使用tuple而不是list的原因是list在python里是一個(gè)可變對象(可以修改的);但是 tuple 是不可變的,一旦創(chuàng)建就不能修改。
    def count_n_grams(data, n, start_token='<s>', end_token = '<e>'):"""Count all n-grams in the dataArgs:data: List of lists of wordsn: number of words in a sequenceReturns:A dictionary that maps a tuple of n-words to its frequency"""# Initialize dictionary of n-grams and their countsn_grams = {}for sentence in data:# prepend start token n times, and append <e> one timesentence = [start_token] * n + sentence + [end_token]# convert list to tuple # So that the sequence of words can be used as# a key in the dictionarysentence = tuple(sentence)# Use i to indicate the start of the n-gram# from index 0# to the last index where the end of the n-gram# is within the sentencem = len(sentence) if n==1 else len(sentence) -1 for i in range(m):# get the n-gram is in the dictionaryn_gram = sentence[i: i + n]# check if the n-gram if in the dictionaryif n_gram in n_grams.keys():n_grams[n_gram] += 1else:n_grams[n_gram] = 1return n_grams

    Exercise 09

    下一步,評估在給定的n個(gè)詞之后的單詞的概率。

    根據(jù)這個(gè)式子,如果n-grams在訓(xùn)練集里沒有出現(xiàn)過,那么分母就為0,上面的式子就行不通。為了處理這種數(shù)量為0的情況,我們加入了 k平滑。

    分子加入一個(gè)常量k,分母加入k|v|,任何數(shù)量為0的n-gram的概率都是1/v(v是單詞數(shù)量)

    def estimate_probability(word, previous_n_gram, n_gram_counts, n_plus1_gram_counts, vocabulary_size, k=1.0):"""Estimate the probabilities of a next word using the n-gram counts with k-smoothingArgs:word: next wordprevious_n_gram: A sequence of words of length nn_gram_counts: Dictionary of counts of (n+1)-gramsn_plus1_gram_counts: Dictionary of counts of (n+1)-gramsvocabulary_size: number of words in the vocabularyk: positive constant, smoothing parameterReturns:A probability"""# convert list to tuple to use it as a dictionary keyprevious_n_gram = tuple(previous_n_gram)# Set the denominator# If the previous n-gram exists in the dictionary of n-gram counts,# Get its count. Otherwise set the count to zero# Use the dictionary that has counts for n-gramsprevious_n_gram_count = n_gram_counts[previous_n_gram] if previous_n_gram in n_gram_counts else 0# Calculate the denominator using the count of the previous n-gram# and apply k-smoothingdenominator = previous_n_gram_count + k*vocabulary_size# Define n plus 1 gram as the previous n-gram plus the current word as a tuplen_plus1_gram = previous_n_gram + (word,)# Set the count to the count in the dictionary,# otherwise 0 if not in the dictionary# use the dictionary that has counts for the n-gram plus current wordn_plus1_gram_count = n_plus1_gram_counts[n_plus1_gram] if n_plus1_gram in n_plus1_gram_counts else 0# Define the numerator use the count of the n-gram plus current word,# and apply smoothingnumerator = n_plus1_gram_count + k# Calculate the probability as the numerator divided bt denominatorprobability = numerator / denominatorreturn probability

    計(jì)算所有詞的概率

    下面的方法是遍歷語料庫,計(jì)算所有詞的概率。

    def estimate_probabilities(previous_n_gram, n_gram_counts, n_plus1_gram_counts, vocabulary, k=1.0):"""Estimate the probabilities of next words using the n-gram counts with k-smoothingArgs:previous_n_gram: A sequence of words of length nn_gram_counts: Dictionary of counts of (n+1)-gramsn_plus1_gram_counts: Dictionary of counts of (n+1)-gramsvocabulary: List of wordsk: positive constant, smoothing parameterReturns:A dictionary mapping from next words to the probability."""# Convert list to tuple to use it as dictionary keyprevious_n_gram = tuple(previous_n_gram)# add <e> <unk> to the vocabulary# <s> is not needed since it should not appear as the next wordvocabulary = vocabulary + ['<e>','<unk>']vocabulary_size = len(vocabulary)probabilities = {}for word in vocabulary:probability = estimate_probability(word,previous_n_gram,n_gram_counts,n_plus1_gram_counts,vocabulary_size,k=k)probabilities[word] = probabilityreturn probabilities

    Count and probability matrices

    數(shù)量和概率矩陣。

    根據(jù)以上我們定義的方法,我們可以創(chuàng)建數(shù)量矩陣和概率矩陣。

    def make_count_matrix(n_plus1_gram_counts, vocabulary):# add <e> <unk> to the vocabulary# <s> is omitted since it should not appear as the next wordvocabulary = vocabulary + ["<e>", "<unk>"]# obtain unique n-gramsn_grams = []for n_plus1_gram in n_plus1_gram_counts.keys():n_gram = n_plus1_gram[0:-1]n_grams.append(n_gram)n_grams = list(set(n_grams))# mapping from n-gram to rowrow_index = {n_gram:i for i, n_gram in enumerate(n_grams)}# mapping from next word to columncol_index = {word:j for j, word in enumerate(vocabulary)}nrow = len(n_grams)ncol = len(vocabulary)count_matrix = np.zeros((nrow, ncol))for n_plus1_gram, count in n_plus1_gram_counts.items():n_gram = n_plus1_gram[0:-1]word = n_plus1_gram[-1]if word not in vocabulary:continuei = row_index[n_gram]j = col_index[word]count_matrix[i, j] = countcount_matrix = pd.DataFrame(count_matrix, index=n_grams, columns=vocabulary)return count_matrix

    vv

    sentences = [['i', 'like', 'a', 'cat'],['this', 'dog', 'is', 'like', 'a', 'cat']] unique_words = list(set(sentences[0] + sentences[1])) print('ntrigram counts') trigram_counts = count_n_grams(sentences, 3) display(make_count_matrix(trigram_counts, unique_words))

    可得如下結(jié)果

    計(jì)算概率矩陣

    def make_probability_matrix(n_plus1_gram_counts, vocabulary, k):count_matrix = make_count_matrix(n_plus1_gram_counts, unique_words)count_matrix += kprob_matrix = count_matrix.div(count_matrix.sum(axis=1), axis=0)return prob_matrixsentences = [['i', 'like', 'a', 'cat'],['this', 'dog', 'is', 'like', 'a', 'cat']] unique_words = list(set(sentences[0] + sentences[1])) print("trigram probabilities") trigram_counts = count_n_grams(sentences, 3) display(make_probability_matrix(trigram_counts, unique_words, k=1))

    可得如下結(jié)果

    Part 3: 困惑度

    困惑度用來衡量一個(gè)模型的好壞,困惑度越低,模型越好。

    在這節(jié)里,我們會在測試集里計(jì)算困惑度。

    • N 是句子的數(shù)量
    • n 是在n-gram中,單詞的數(shù)量 in the n-gram (e.g. 2 for a bigram).
    • 數(shù)字從1開始,而非0

    在代碼里,數(shù)組索引從0開始,所以在代碼里t的范圍改成從n到N+1將使用以下公式

    概率越好,困惑度越低.

    n-grams給我們提供越多的句子信息,困惑度越低。

    Exercise 10

    def calculate_perplexity(sentence, n_gram_counts, n_plus1_gram_counts, vocabulary_size, k=1.0):"""Calculate perplexity for a list of sentencesArgs:sentence: List of stringsn_gram_counts: Dictionary of counts of (n+1)-gramsn_plus1_gram_counts: Dictionary of counts of (n+1)-gramsvocabulary_size: number of unique words in the vocabularyk: Positive smoothing constantReturns:Perplexity score"""# length of previous wordsn = len(list(n_gram_counts.keys())[0]) # prepend <s> and append <e>sentence = ["<s>"] * n + sentence + ["<e>"]# Cast the sentence from a list to a tuplesentence = tuple(sentence)# length of sentence (after adding <s> and <e> tokens)N = len(sentence)# The variable p will hold the product# that is calculated inside the n-root# Update this in the code belowproduct_pi = 1.0### START CODE HERE (Replace instances of 'None' with your code) #### Index t ranges from n to N - 1(t的范圍是從n到N-1)for t in range(n, N): # complete this line# get the n-gram preceding the word at position tn_gram = sentence[t-n:t]# get the word at position tword = sentence[t]# Estimate the probability of the word given the n-gram# using the n-gram counts, n-plus1-gram counts,# vocabulary size, and smoothing constantprobability = estimate_probability(word,n_gram, n_gram_counts, n_plus1_gram_counts, len(unique_words), k=1)# Update the product of the probabilities# This 'product_pi' is a cumulative product # of the (1/P) factors that are calculated in the loopproduct_pi *= 1 / probability# Take the Nth root of the productperplexity = product_pi**(1/float(N))### END CODE HERE ### return perplexity

    Part 4: 創(chuàng)建一個(gè)自動(dòng)完成系統(tǒng)

    在這一章節(jié)里,我們將使用前面使用的方法,來創(chuàng)建一個(gè)自動(dòng)完成系統(tǒng)。

    在以下的方法中,使用了一個(gè)start_with方法,指定下個(gè)單詞的前幾個(gè)字母

    def suggest_a_word(previous_tokens, n_gram_counts, n_plus1_gram_counts, vocabulary, k=1.0, start_with=None):"""Get suggestion for the next wordArgs:previous_tokens: The sentence you input where each token is a word. Must have length > n n_gram_counts: Dictionary of counts of (n+1)-gramsn_plus1_gram_counts: Dictionary of counts of (n+1)-gramsvocabulary: List of wordsk: positive constant, smoothing parameterstart_with: If not None, specifies the first few letters of the next wordReturns:A tuple of - string of the most likely next word- corresponding probability"""# length of previous wordsn = len(list(n_gram_counts.keys())[0]) # From the words that the user already typed# get the most recent 'n' words as the previous n-gramprevious_n_gram = previous_tokens[-n:]# Estimate the probabilities that each word in the vocabulary# is the next word,# given the previous n-gram, the dictionary of n-gram counts,# the dictionary of n plus 1 gram counts, and the smoothing constantprobabilities = estimate_probabilities(previous_n_gram,n_gram_counts, n_plus1_gram_counts,vocabulary, k=k)# Initialize suggested word to None# This will be set to the word with highest probabilitysuggestion = None# Initialize the highest word probability to 0# this will be set to the highest probability # of all words to be suggestedmax_prob = 0### START CODE HERE (Replace instances of 'None' with your code) #### For each word and its probability in the probabilities dictionary:for word, prob in probabilities.items(): # complete this line# If the optional start_with string is setif start_with != None: # complete this line# Check if the word starts with the letters in 'start_with'if not word.startswith(start_with): # complete this line#If so, don't consider this word (move onto the next word)continue # complete this line# Check if this word's probability# is greater than the current maximum probabilityif prob > max_prob: # complete this line# If so, save this word as the best suggestion (so far)suggestion = word# Save the new maximum probabilitymax_prob = prob### END CODE HEREreturn suggestion, max_prob

    簡單測試下:

    sentences = [['i', 'like', 'a', 'cat'],['this', 'dog', 'is', 'like', 'a', 'cat']] unique_words = list(set(sentences[0] + sentences[1]))unigram_counts = count_n_grams(sentences, 1) bigram_counts = count_n_grams(sentences, 2)previous_tokens = ["i", "like"] tmp_suggest1 = suggest_a_word(previous_tokens, unigram_counts, bigram_counts, unique_words, k=1.0) print(f"The previous words are 'i like',ntand the suggested word is `{tmp_suggest1[0]}` with a probability of {tmp_suggest1[1]:.4f}")print() # test your code when setting the starts_with tmp_starts_with = 'c' tmp_suggest2 = suggest_a_word(previous_tokens, unigram_counts, bigram_counts, unique_words, k=1.0, start_with=tmp_starts_with) print(f"The previous words are 'i like', the suggestion must start with `{tmp_starts_with}`ntand the suggested word is `{tmp_suggest2[0]}` with a probability of {tmp_suggest2[1]:.4f}")

    輸出是

    The previous words are 'i like',
    and the suggested word is `a` with a probability of 0.2727
    The previous words are 'i like', the suggestion must start with `c`
    and the suggested word is `cat` with a probability of 0.0909

    獲取多條建議

    def get_suggestions(previous_tokens, n_gram_counts_list, vocabulary, k=1.0, start_with=None):model_counts = len(n_gram_counts_list)suggestions = []for i in range(model_counts-1):n_gram_counts = n_gram_counts_list[i]n_plus1_gram_counts = n_gram_counts_list[i+1]suggestion = suggest_a_word(previous_tokens, n_gram_counts,n_plus1_gram_counts, vocabulary,k=k, start_with=start_with)suggestions.append(suggestion)return suggestions

    使用任意長度的n-grams ,獲取多條建議

    祝賀你! 你已經(jīng)開發(fā)了自己的自動(dòng)完成系統(tǒng)需要的所有模塊。

    讓我們來看看基于任意長度的n-grams模型 (unigrams, bigrams, trigrams, 4-grams...6-grams).

    n_gram_counts_list = [] for n in range(1, 6):print("Computing n-gram counts with n =", n, "...")n_model_counts = count_n_grams(train_data_processed, n)n_gram_counts_list.append(n_model_counts) previous_tokens = ["i", "am", "to"] tmp_suggest4 = get_suggestions(previous_tokens, n_gram_counts_list, vocabulary, k=1.0)print(f"The previous words are {previous_tokens}, the suggestions are:") display(tmp_suggest4)

    輸出

    The previous words are ['i', 'am', 'to'], the suggestions are:
    [('be', 0.027665685098338604), ('have', 0.00013487086115044844), ('have', 0.00013490725126475548), ('i', 6.746272684341901e-05)]

    previous_tokens = ["hey", "how", "are", "you"] tmp_suggest7 = get_suggestions(previous_tokens, n_gram_counts_list, vocabulary, k=1.0)print(f"The previous words are {previous_tokens}, the suggestions are:") display(tmp_suggest7)

    輸出:

    The previous words are ['hey', 'how', 'are', 'you'], the suggestions are:
    [("'re", 0.023973994311255586), ('?', 0.002888465830762161), ('?', 0.0016134453781512605), ('<e>', 0.00013491635186184566)]

    總結(jié)

    以上是生活随笔為你收集整理的edittext禁止换行符但能自动换行简书_使用n-gram创建自动完成系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    日韩视频中文 | 欧美日韩高清一区二区 国产亚洲免费看 | 五月天激情在线 | 一级片色播影院 | 亚洲精品在线免费看 | 久草电影免费在线观看 | av在线网站免费观看 | 亚洲成人资源 | 天天插天天射 | 丁香六月婷婷开心 | 激情九九| 久久99中文字幕 | 亚州国产精品视频 | 日日摸日日碰 | 国产精品久久99综合免费观看尤物 | 久久99久久99精品免视看婷婷 | 国产永久免费 | 久久av福利| 中文字幕在线观看视频一区二区三区 | 国产 中文 日韩 欧美 | 国产精品岛国久久久久久久久红粉 | 热久久视久久精品18亚洲精品 | 三级午夜片 | 亚洲欧美国产视频 | 免费福利片 | 肉色欧美久久久久久久免费看 | 狠狠色婷婷丁香六月 | 国产探花在线看 | 中文字幕国产一区二区 | 国产精品不卡视频 | 黄色国产在线观看 | 五月天六月色 | 日韩欧美一区二区三区在线 | 日韩在线播放欧美字幕 | 国产午夜一区二区 | 97人人澡人人爽人人模亚洲 | 欧美一区二区在线免费看 | 国产成人不卡 | 久久精品国产第一区二区三区 | 国产一区免费在线观看 | 久久久免费观看完整版 | 天天色综合三 | 成人国产精品免费观看 | 欧美日韩1区2区 | 久久国产精品免费一区二区三区 | 91av九色| 亚洲电影在线看 | 亚洲免费观看视频 | 欧美精品少妇xxxxx喷水 | 日本aa在线| 久久少妇 | 久久久久久久久久久高潮一区二区 | 中文字幕在线观看第三页 | 久久久999免费视频 日韩网站在线 | 色片网站在线观看 | 亚洲精品99久久久久中文字幕 | 日韩精品极品视频 | 四虎在线免费观看 | 日韩电影中文,亚洲精品乱码 | 久久少妇免费视频 | 日韩精品欧美视频 | 精品一区二区三区久久久 | 天天操操操操操 | 偷拍精偷拍精品欧洲亚洲网站 | 欧洲精品视频一区二区 | 日本大片免费观看在线 | 国产一级一片免费播放放 | 色综合久| 99精品国产福利在线观看免费 | 中文视频在线看 | 香蕉久久久久久av成人 | 国产黄色理论片 | 久久精品视频3 | 日韩精品国产一区 | 国产日韩欧美在线影视 | 99综合电影在线视频 | 亚洲精品在线观看中文字幕 | 久久全国免费视频 | 国产精品视频免费在线观看 | 日韩在线观看视频免费 | 亚洲一一在线 | 国产福利免费在线观看 | 国产亚洲视频在线观看 | 国产精品自在线 | 国产精品爽爽爽 | 久久国产精品99久久久久久丝袜 | 国产午夜视频在线观看 | 天天操天天操天天操天天操天天操 | 五月开心激情 | 精品久久久久久久久亚洲 | 国产成人中文字幕 | 日本中文字幕在线看 | 亚洲美女免费精品视频在线观看 | 国产精品二区在线 | 成人一区二区在线 | 中文字幕在线播放av | 91视频久久 | 日本中文在线观看 | 色av婷婷 | 日韩av视屏 | 狠狠躁18三区二区一区ai明星 | 九色福利视频 | 96av在线| 国产精品18久久久久久vr | 久久免费一级片 | 免费日韩在线 | 日韩免费电影 | avcom在线 | 色婷婷啪啪免费在线电影观看 | 狠狠干网址 | 亚洲国产一区av | 午夜电影 电影 | 精品国产一二三四区 | 五月亚洲婷婷 | 亚洲美女免费精品视频在线观看 | 久久久高清视频 | 亚洲va欧美va人人爽 | 日本成人中文字幕在线观看 | 91成人在线看| 免费特级黄色片 | 97国产精品| 欧美激情视频一区二区三区 | 久久电影中文字幕视频 | 香蕉日日 | 91精品国产自产在线观看永久 | 婷婷在线视频 | 五月婷婷在线视频观看 | 天天爽综合网 | 亚洲一区二区精品3399 | 亚洲一区欧美精品 | 激情五月视频 | 在线v片| 日韩精品在线视频免费观看 | 亚洲午夜精品福利 | 久久天天躁狠狠躁夜夜不卡公司 | 一级片免费视频 | 国内精品久久久久久久久久久 | 久久久久亚洲天堂 | 国产成人一级 | 欧洲精品久久久久毛片完整版 | 91九色在线播放 | 色婷婷综合视频在线观看 | 国产无套精品久久久久久 | 97av视频在线| 亚洲精品小视频在线观看 | 久久久久99精品国产片 | 欧美亚洲国产日韩 | 丁香五月亚洲综合在线 | 在线黄色国产电影 | 99精品国产在热久久 | 国产精彩视频一区 | 亚洲精品福利在线观看 | 久久人人爽爽人人爽人人片av | 在线免费视频a | 日韩高清久久 | 亚洲欧洲国产精品 | 久久官网 | 午夜精品在线看 | 久草在线免费电影 | 中文区中文字幕免费看 | 91视频免费| 六月丁香婷婷久久 | 国产日韩精品一区二区 | 一区精品在线 | 国产无套精品久久久久久 | 有没有在线观看av | 99爱视频| 亚洲乱亚洲乱亚洲 | 九九免费精品视频 | 在线观看网站你懂的 | 欧美另类美少妇69xxxx | 国产精品久久久久久久婷婷 | 伊人超碰在线 | 91人人视频在线观看 | 麻豆精品视频在线观看免费 | 国精产品999国精产品视频 | 国产精品免费一区二区 | 欧美精品久久久久久久久老牛影院 | 亚洲精品色 | 波多在线视频 | 国产高清亚洲 | 免费成人短视频 | 永久免费毛片在线观看 | 久久久影视 | 欧美精品三级 | 少妇搡bbb | 国产精品久久久av | 天天干,夜夜操 | 友田真希x88av| 在线久热 | 91精品啪| 婷婷色影院 | 亚洲激情国产精品 | 国产精品午夜免费福利视频 | 五月婷在线播放 | 亚洲精品男女 | 最新国产精品拍自在线播放 | 久久久久久久久久久久久久电影 | 久久精品视频3 | 欧美一级电影 | 欧美小视频在线观看 | 国产精品免费在线播放 | 成人在线视频观看 | 午夜.dj高清免费观看视频 | 久久免费视频一区 | 日韩av影片在线观看 | 99 视频 高清 | 999视频在线播放 | a级国产乱理论片在线观看 特级毛片在线观看 | 婷婷丁香在线观看 | 天天操夜夜操夜夜操 | 五月综合色 | 人人爱爱人人 | 日日精品| 免费视频成人 | 日韩免费视频一区二区 | 99操视频 | 首页av在线 | 免费高清影视 | 久草在线最新 | 操高跟美女 | 成人av在线电影 | 玖玖爱免费视频 | 国产男男gay做爰 | 精品国产一区二区三区久久久久久 | 久久精品麻豆 | 国产精品手机看片 | 亚洲精品一区二区三区新线路 | 精品久久一区二区 | 国产中文字幕视频在线 | 狠狠操电影网 | 日韩在线高清视频 | 亚洲精品视频一 | 日韩成人免费在线 | 日日夜夜人人精品 | 国产一区二区三区免费视频 | 免费看片网址 | 中文字幕91 | 国产麻豆果冻传媒在线观看 | 成人欧美亚洲 | 婷婷精品进入 | 夜色成人网 | 国产视频一二三 | 91在线色 | 日韩精品久久一区二区 | 久久久久久99精品 | 日韩欧美99 | 不卡的av片 | 亚洲欧美日韩国产一区二区 | 美女av免费看 | 在线免费av网 | 色综合在 | 欧美在线久久 | 久草影视在线 | 中文字幕国产一区二区 | 久久久久久久久久久久久久av | 日韩av看片 | 国产中文字幕91 | 日韩美一区二区三区 | 夜夜躁日日躁狠狠躁 | 久久精品91久久久久久再现 | 日韩专区av| 美女视频又黄又免费 | 久久精品视频观看 | 97视频久久久 | 欧美日韩在线观看一区二区三区 | 国产精品porn | 夜夜骑首页 | 在线亚洲免费视频 | 日韩欧美区 | 色婷婷99 | 亚洲精品天天 | 中文字幕av影院 | 有码中文字幕在线观看 | 午夜久久久影院 | 久草在线官网 | 又黄又爽又刺激的视频 | aaawww| 午夜在线观看一区 | av亚洲产国偷v产偷v自拍小说 | 日韩精品不卡在线观看 | 久久久久久久久免费视频 | 天天射天天艹 | 亚洲欧美视频在线观看 | 超碰人人做 | 天天操福利视频 | 天天色天天艹 | 在线看的毛片 | 欧美日韩国产亚洲乱码字幕 | 久精品视频在线 | 首页av在线 | 99性视频| 久久久精品国产一区二区三区 | 日韩av资源在线观看 | v片在线播放| 亚洲精品理论片 | 久久伊人综合 | 天天操天天干天天插 | 91热爆在线观看 | 香蕉网在线观看 | 国产一区二区三区免费在线 | 久草电影网 | 丁香六月激情 | 91天堂在线观看 | 国产大陆亚洲精品国产 | 亚洲乱码一区 | 国产精品久久久久四虎 | 在线色资源 | 一区二区三区高清不卡 | 亚洲激情中文 | 在线网址你懂得 | 欧美一级艳片视频免费观看 | 91成人在线网站 | 91中文字幕在线播放 | 国产小视频在线播放 | 欧美日韩一区二区三区不卡 | 久久成人国产精品一区二区 | 日韩欧美在线中文字幕 | 成年人视频免费在线播放 | 黄色毛片网站在线观看 | 亚洲资源| 91精品1区2区 | 美女网站视频免费都是黄 | 嫩草91影院| 日韩理论电影在线观看 | v片在线播放 | 国产精品福利久久久 | 国产精品美乳一区二区免费 | 日韩高清免费在线 | 黄色电影网站在线观看 | 久久久久综合精品福利啪啪 | 国产视频2区 | 国产精品精品久久久久久 | 亚洲区色 | 中国一级片在线观看 | 久久久久久久电影 | av在线激情| 欧美日产一区 | 国产精品porn | 丁香网婷婷| 国产主播大尺度精品福利免费 | 在线亚洲观看 | 国产成人精品久久亚洲高清不卡 | 中文字幕日本特黄aa毛片 | 国产视频 亚洲精品 | 国产 欧美 在线 | 四虎在线永久免费观看 | 久久中文网 | 国产精品igao视频网入口 | 亚洲最大成人免费网站 | 亚在线播放中文视频 | 欧美a影视 | 91秒拍国产福利一区 | 在线视频观看91 | 久久久久久久久久久网站 | 精品一区二区三区在线播放 | 91桃色在线播放 | 日韩欧美综合 | 久艹在线免费观看 | 五月婷婷在线播放 | 国产精品一区二区吃奶在线观看 | 欧美精品中文 | 99re国产 | 亚洲成人av一区 | 久草网站 | 五月天色综合 | 久久久免费 | 欧美日韩国产色综合一二三四 | 久久一视频 | 一区二区三区中文字幕在线 | 美女国产网站 | 午夜视频在线观看一区 | 蜜臀一区二区三区精品免费视频 | mm1313亚洲精品国产 | 日批网站在线观看 | 欧美福利精品 | 97综合在线 | 在线观看不卡视频 | 久久久综合九色合综国产精品 | 粉嫩av一区二区三区入口 | 日本精品久久久久中文字幕5 | 天天干天天碰 | 成年人在线免费看 | 国产精选在线 | 日韩在线免费播放 | 夜夜躁狠狠躁日日躁视频黑人 | 欧美精品国产综合久久 | 99看视频在线观看 | 久草在线官网 | 中文字幕在线网址 | 精品在线观看一区二区三区 | 六月天综合网 | 亚洲最新在线视频 | 一区二区三区动漫 | 国产黄色免费 | 午夜精品电影 | 在线免费av播放 | www天天干com| 国产一区二区免费在线观看 | 丁香六月色 | 24小时日本在线www免费的 | 久久天天躁 | 菠萝菠萝蜜在线播放 | 精品视频一区在线观看 | 91精品视频网站 | 免费观看午夜视频 | 五月色综合| 日韩在线精品视频 | 久久亚洲国产精品 | 毛片网站在线 | 91精品视频免费看 | 色婷婷狠狠五月综合天色拍 | 天天操月月操 | 激情久久婷婷 | 在线观看av的网站 | 国产在线观看你懂得 | av久久久久久 | 久久草av| 欧美一级在线观看视频 | 丝袜一区在线 | 久久国产精品区 | 久久五月情影视 | 色久天 | 国产在线第三页 | 国产在线观看一 | 91xav | 国产成人一区二区三区在线观看 | 在线观看完整版 | 成人精品视频久久久久 | 日韩综合色 | 中文字幕在线国产精品 | 亚洲三级在线免费观看 | 又黄又刺激视频 | 国产精品一区二区精品视频免费看 | 丁香婷婷色综合亚洲电影 | 91久草视频 | 人人干网 | 在线观看视频一区二区三区 | 久久久久99精品成人片三人毛片 | 九九热免费在线观看 | 欧美一级性 | 成人欧美一区二区三区在线观看 | 国际精品久久久久 | 97视频亚洲 | 国产91在线看 | 亚洲日本国产精品 | 亚洲欧美国产日韩在线观看 | 国产精品视频永久免费播放 | 国产麻豆精品免费视频 | 久久精品免费电影 | 中国精品少妇 | 久久久蜜桃 | av一级片在线观看 | 精品99久久久久久 | 91传媒免费在线观看 | 色av色av色av | 久久这里精品视频 | 五月开心婷婷网 | 国产夫妻性生活自拍 | 草久在线观看视频 | 亚洲一级电影在线观看 | 日韩成人精品一区二区 | 精品美女久久久久久免费 | 亚洲 中文 欧美 日韩vr 在线 | 欧美日本不卡高清 | 国产裸体永久免费视频网站 | 亚洲精品小区久久久久久 | 国产字幕在线观看 | 在线最新av | 亚洲欧美日韩国产一区二区三区 | 久久 在线 | 超碰av在线免费观看 | 91人人澡人人爽 | 色天天综合久久久久综合片 | 91精品在线播放 | 亚洲国产偷| 1000部国产精品成人观看 | 国产成人一区二 | 中文字幕观看视频 | 99热在线观看 | 久久精品久久精品 | 91精品啪在线观看国产81旧版 | 免费看毛片网站 | 国产精品不卡视频 | 日韩成人看片 | 夜夜躁狠狠躁 | 在线一区电影 | 四虎影视成人永久免费观看视频 | 日韩av片无码一区二区不卡电影 | 伊人日日干 | 黄色三级免费片 | av日韩中文 | 黄色网大全 | 久久看片网 | 色婷婷天天干 | 免费看国产一级片 | 日韩a欧美 | 日韩精品久久久久久 | 高清不卡一区二区在线 | 激情综合五月天 | 超碰97国产在线 | 91久久久久久国产精品 | 亚洲春色综合另类校园电影 | 精品国产观看 | 天天综合天天综合 | 色网站中文字幕 | 亚洲视频1 | 国产女人18毛片水真多18精品 | 日本不卡一区二区 | 欧美一二三区在线观看 | 中文字幕一区二区三区四区视频 | 91精品国产91 | 激情中文在线 | 日本精品视频网站 | 亚洲一级片 | 在线亚洲天堂网 | 日日碰狠狠添天天爽超碰97久久 | 久久久久成人精品亚洲国产 | 最新的av网站 | 国产精品一级在线 | 国产三级视频在线 | 亚洲成人av一区 | 伊人六月 | 伊人网综合在线观看 | 国产精品国产三级国产不产一地 | 激情开心 | 国产中文字幕91 | 亚洲免费在线观看视频 | 成人黄色电影在线观看 | 色综合久久五月天 | 国产亚洲资源 | 成人黄色小视频 | 在线国产欧美 | 国产99中文字幕 | 五月天欧美精品 | www.超碰| 婷婷丁香久久五月婷婷 | 成人免费视频视频在线观看 免费 | 丁香在线观看完整电影视频 | 激情五月av| 免费在线视频一区二区 | 精品视频 | 最近中文字幕高清字幕免费mv | 国色天香av | 久久久久一区二区三区 | 天天操天天艹 | 国产精品青青 | 国产精品专区h在线观看 | 99精品在线直播 | 国产一级免费观看视频 | 日韩精品一区二区三区电影 | 欧美日在线观看 | 91av蜜桃| 91黄站| av亚洲产国偷v产偷v自拍小说 | 奇米影视在线99精品 | 婷婷在线看 | 在线免费视频 你懂得 | 国产中文欧美日韩在线 | 亚洲最大的av网站 | 国产精品一区二区三区视频免费 | 国产中文字幕网 | 91国内在线视频 | 婷婷国产v亚洲v欧美久久 | 久久影视精品 | 免费看三片 | 在线观看韩日电影免费 | 精品专区| 久久视精品 | 黄色一级大片免费看 | 成人黄色免费在线观看 | 麻豆果冻剧传媒在线播放 | 91久久奴性调教 | 久久久精品国产一区二区 | 在线观看免费视频你懂的 | 九九九九热精品免费视频点播观看 | 天天操人人干 | 免费色网 | av在线播放一区二区三区 | 国产无遮挡又黄又爽在线观看 | 999视频在线观看 | 精品国产一区二区三区久久久 | 亚洲欧美在线视频免费 | 波多野结衣电影一区二区三区 | 精品国产一区二区三区不卡 | 久久视频一区二区 | 亚洲国产免费网站 | av福利第一导航 | av中文在线 | 中文字幕色婷婷在线视频 | 欧美精品久久人人躁人人爽 | 91久久精| 99久久精品久久亚洲精品 | 91理论片午午伦夜理片久久 | 中文字幕av全部资源www中文字幕在线观看 | 久久伊人国产精品 | 91成人免费看片 | 色激情五月 | 久久久久久久18 | 欧美日一级片 | 免费一级特黄录像 | 日日夜夜免费精品视频 | 正在播放国产精品 | 久久不卡视频 | 97精品一区 | 蜜桃视频在线观看一区 | 日韩免费电影一区二区三区 | 91.dizhi永久地址最新 | 免费的黄色的网站 | 国产亚洲精品久久久网站好莱 | www.色午夜,com| 一区二区三区 中文字幕 | 欧美激情综合色综合啪啪五月 | 麻豆传媒精品 | 中文字幕中文字幕在线中文字幕三区 | av永久网址 | 免费在线观看av网站 | 国产精品 日韩精品 | 国产成人亚洲在线观看 | 日韩在线免费电影 | 日韩一级片网址 | 黄色免费高清视频 | 伊人久久影视 | 99久e精品热线免费 99国产精品久久久久久久久久 | 在线国产精品一区 | 国产精品网在线观看 | 日韩美女黄色片 | 91激情小视频 | 黄色av电影在线观看 | 欧美在线18 | 国产成人精品亚洲a | 国产美腿白丝袜足在线av | 97福利视频| 国产精品激情 | 国产小视频在线播放 | av电影免费在线看 | 精品美女在线视频 | 美女视频黄色免费 | 最近日本中文字幕a | 一区二区在线电影 | 在线激情小视频 | 久草视频在线资源 | 亚洲女欲精品久久久久久久18 | 91av视频在线免费观看 | 九九99靖品 | 国产精品永久久久久久久久久 | 日韩视频一区二区三区在线播放免费观看 | 久久99在线视频 | 天天干天天做 | 99久久精品无免国产免费 | 天天操天天舔天天爽 | 亚洲欧美在线观看视频 | 日韩欧美在线中文字幕 | 91成年人网站 | 日韩免费看视频 | 美女视频免费精品 | 91av视频网站 | 国产精品乱码久久久 | 91精品视频观看 | 亚洲 中文 在线 精品 | 91在线日本 | 伊人网站 | 国产精品成人久久 | 99免费精品视频 | 久久中文网 | 成人国产精品入口 | 国产录像在线观看 | 日韩免费在线观看视频 | 亚洲精品456在线播放第一页 | 国产精品一区二区久久精品爱微奶 | 521色香蕉网站在线观看 | 成人欧美在线 | 精品国产伦一区二区三区观看体验 | 国产爽视频 | 久久亚洲精品国产亚洲老地址 | 欧美日产一区 | 久久综合久久综合这里只有精品 | 国产精品18久久久久久久久 | 婷婷久久一区二区三区 | 97超碰.com | 9999亚洲 | 久草视频免费在线观看 | 69国产盗摄一区二区三区五区 | 久久高清av | 麻豆久久精品 | 视频二区在线 | av在线免费在线观看 | 久久久久女人精品毛片九一 | 国产视频在线观看一区 | 久久成人免费视频 | 亚洲精品9 | 免费看的黄网站软件 | 亚洲区另类春色综合小说校园片 | 9在线观看免费高清完整版在线观看明 | 亚洲美女视频在线观看 | 欧美日韩久久一区 | 丁香导航 | 99视频导航 | 91新人在线观看 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 日韩精品免费在线观看视频 | 国产精品久免费的黄网站 | 99久久精品一区二区成人 | 中文字幕高清av | 伊人久久影视 | 狠狠操精品 | 韩国av电影网 | 久久精品男人的天堂 | www.国产毛片 | 亚洲欧美日韩一区二区三区在线观看 | 最近日本中文字幕 | 日本久久成人中文字幕电影 | 一区二区三区日韩在线 | 免费成人在线网站 | 亚洲电影第一页av | 亚洲在线黄色 | 国产小视频在线免费观看视频 | 国产精品系列在线播放 | 国产精品二区三区 | 五月天伊人 | 国产日本在线观看 | 亚洲高清91| 日本成人黄色片 | 久久久久激情电影 | av一级片网站 | 亚洲精品动漫在线 | 久热爱 | 五月婷影院 | 欧美激情综合色 | 久久精品99国产国产 | 欧美国产日韩一区二区 | 欧美日韩三区二区 | 国产玖玖精品视频 | 在线成人国产 | 69亚洲精品 | 亚洲午夜久久久久久久久电影网 | 国产精品一区二区av影院萌芽 | 日韩电影在线视频 | 国产69精品久久99的直播节目 | 国产精品嫩草影院99网站 | 成年人黄色在线观看 | 成人高清av在线 | 日本99热 | 国产精品123| 天天摸天天舔天天操 | 日韩激情免费视频 | 国产精品美| 国产精品久久久久久久久久白浆 | 中文字幕在线色 | 不卡中文字幕av | 999久久a精品合区久久久 | 一本一道久久a久久精品 | 免费看日韩 | 婷婷国产v亚洲v欧美久久 | 亚洲黄色a| 日韩国产高清在线 | 国产打女人屁股调教97 | 色综合久久综合 | 国产福利资源 | 国产a网站 | 久久美女视频 | 天天拍天天操 | 国产黄在线 | 久久久精品国产免费观看同学 | 999久久国精品免费观看网站 | 少妇高潮冒白浆 | 亚洲综合色av | 国产亚洲精品成人av久久ww | 亚洲精品成人av在线 | 波多野结依在线观看 | 综合网伊人 | 日韩av黄| 亚洲精品在线电影 | 久久电影网站中文字幕 | 嫩草伊人久久精品少妇av | 91av精品 | 久久视精品 | 中文字幕在线免费 | 国产va饥渴难耐女保洁员在线观看 | 永久av免费在线观看 | 玖玖在线观看视频 | 91黄在线看| 国产毛片在线 | 91成人免费观看视频 | 97超碰人人澡人人爱 | caobi视频 | 日韩av图片 | 国产精品毛片一区视频 | 日韩欧美视频一区二区三区 | 一级黄色大片在线观看 | 天天操天天透 | 亚洲国产高清在线 | 丁香婷婷色月天 | 成人黄大片视频在线观看 | 亚洲日本三级 | 久久精品视频18 | 日韩精品一二三 | 视频在线亚洲 | 五月天最新网址 | 五月天久久狠狠 | 18国产精品福利片久久婷 | 免费观看全黄做爰大片国产 | 免费国产在线精品 | 日日狠狠 | 亚洲在线视频播放 | 日本中文字幕免费观看 | 国产中文在线播放 | 亚洲国产日韩在线 | 99精品国产免费久久久久久下载 | 日日干美女 | 亚洲狠狠婷婷 | 天天操天天干天天玩 | 99热这里是精品 | 操操操夜夜操 | 国内精品久久久久久久久久清纯 | 欧美日韩国产页 | 欧美福利精品 | 亚洲精品中文字幕在线 | 91爱看片 | 热久久国产精品 | 在线免费观看国产黄色 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 免费看十八岁美女 | 精品欧美一区二区三区久久久 | 国产一区二区在线影院 | 一区二区三区在线观看免费视频 | 久久久影院一区二区三区 | 九热在线| 成人va在线观看 | 欧美日韩aa| 99re国产| 极品美女被弄高潮视频网站 | 午夜精品久久久久久久99热影院 | 99久久久国产精品免费99 | 香蕉久久久久久av成人 | 97超碰在线久草超碰在线观看 | 精品国产乱码久久久久 | 国产在线最新 | 在线 你懂 | 在线观看aa | 亚洲国产三级在线 | 黄色av影院 | 欧美国产日韩一区二区三区 | www.狠狠干 | 色综合久久综合中文综合网 | 久久成人精品 | 国产小视频免费在线网址 | 草久在线观看视频 | 午夜黄色大片 | 五月天色丁香 | 97精品久久人人爽人人爽 | 日韩欧美高清一区二区 | 国内精品久久久精品电影院 | 国产成人一区二区三区久久精品 | 香蕉影院在线观看 | 97品白浆高清久久久久久 | 亚洲五月综合 | 亚洲精品综合在线观看 | av蜜桃在线 | 日韩电影一区二区三区在线观看 | 最近中文字幕在线中文高清版 | 国产麻豆传媒 | 在线观看不卡的av | 狠狠干夜夜操 | 天天爽网站 | 蜜臀久久99精品久久久酒店新书 | 亚洲视频h | 欧美一区二区免费在线观看 | 精品久久久久久综合 | 涩五月婷婷 | 日韩电影中文字幕 | www国产亚洲精品久久麻豆 | 香蕉视频日本 | 国产91在线观 | 欧美日韩一区二区在线观看 | 91成熟丰满女人少妇 | 国产 日韩 中文字幕 | 亚洲精品免费在线观看 | 丁香婷婷激情网 | 亚洲黄色片在线 | 在线亚洲精品 | 亚洲伦理中文字幕 | 99热99热| 伊人官网| 日韩欧美精品在线观看视频 | 99久久精品免费看国产免费软件 | 精品国产一区二区三区四区vr | 伊人视频 | 日韩在线视频不卡 | 99久久综合狠狠综合久久 | 去看片 | 天天干夜夜夜 | 国产亚洲视频在线免费观看 | www黄在线| 成人av片在线观看 | 久久久黄色av | 亚洲精品视频一 | 亚洲欧洲xxxx | 高清精品在线 | 精品视频在线免费观看 | 色婷婷综合成人av | 中文字幕乱码日本亚洲一区二区 | 国产精品免费麻豆入口 | 久久精品电影 | 午夜私人影院 | av网站免费看 | 亚洲妇女av| 亚洲免费av电影 | 国产精品一区二区三区久久 | 在线观看免费 | 色婷婷免费视频 | 9在线观看免费高清完整版在线观看明 | 免费看片黄色 | 干干操操| 99热精品国产 | 五月婷婷激情五月 | 91成人亚洲| 久草久| 久久女同性恋中文字幕 | 久久久精品免费看 | 在线一区电影 | www久久| 97视频精品| 亚洲伊人色 | av品善网| 免费一级特黄录像 | 美女黄久久 | 青青色影院 | 成年人在线观看 | 狠狠狠狠狠狠天天爱 | 中文日韩在线 | 99av国产精品欲麻豆 | 99精品免费视频 | 99精品国产99久久久久久97 | 午夜免费福利片 | 成人黄色在线看 | 色婷婷久久久综合中文字幕 | 色的网站在线观看 | 在线看不卡av | 92精品国产成人观看免费 | 久草视频免费在线播放 | 国产在线欧美日韩 | 麻豆影视在线观看 | 国产最新91| 免费在线国产黄色 | 日韩精品一区二区在线 | 久久在草 | 一区二区三区日韩视频在线观看 | 99看视频在线观看 | 国产一级片播放 | 久久少妇| 日韩美女av在线 | 夜夜高潮夜夜爽国产伦精品 | av在线免费观看黄 | 国产一区欧美日韩 | 黄p网站在线观看 | 久久夜视频 | 国产在线一线 | 久久久官网 | a级一a一级在线观看 | 99视频在线观看视频 | 中文字幕中文字幕在线中文字幕三区 | 91系列在线观看 | 欧美综合久久久 | 人人添人人澡人人澡人人人爽 | 欧美色图88 | 久久99久久99精品免观看粉嫩 | 91看片成人 | 婷婷丁香狠狠爱 | 激情综合网五月 | 色wwww| 亚洲理论电影网 | 午夜三级毛片 | 日韩美精品视频 | 极品嫩模被强到高潮呻吟91 | 成人午夜精品久久久久久久3d | 国产一区视频在线 | 人人草人| 77国产精品 | 国产午夜精品在线 | 99热在线观看| 久久有精品 | 亚洲三级黄 | 欧美一区二区三区在线视频观看 | 欧洲亚洲精品 | 99中文视频在线 | 亚洲国产精品电影 | 一二区精品 | 国产精品国产亚洲精品看不卡15 | 亚洲成a人片综合在线 | 91精品久久久久久综合乱菊 | 亚洲视频每日更新 | 四虎在线观看网址 | 亚洲 欧美 日韩 综合 | 天天干,狠狠干 | 在线观看爱爱视频 | 亚洲精品视频在线观看免费 | jizz18欧美18 |