99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

詩歌接龍:用Python實(shí)現(xiàn)古詩續(xù)寫的NLP項(xiàng)目全解析

詩歌接龍:用Python實(shí)現(xiàn)古詩續(xù)寫的NLP項(xiàng)目全解析 簡介面向NLP入門與Python實(shí)踐者的詩歌接龍項(xiàng)目完整代碼包聚焦中文分詞、詞性標(biāo)注、拼音轉(zhuǎn)換、押韻規(guī)則匹配及網(wǎng)絡(luò)爬蟲等核心環(huán)節(jié)適合希望通過完整實(shí)戰(zhàn)案例理解自然語言處理流程的學(xué)生與開發(fā)者。壓縮包共17個(gè)文件主要包含Python源碼、jieba/pypinyin等庫的依賴說明、預(yù)訓(xùn)練數(shù)據(jù)文件、可執(zhí)行程序、txt說明文檔及docx詳細(xì)設(shè)計(jì)文檔其中docx對項(xiàng)目背景、模塊設(shè)計(jì)與調(diào)用流程做了系統(tǒng)說明整體大小僅5.86MB輕量便于快速部署。已有496人學(xué)習(xí)瀏覽。項(xiàng)目中除基礎(chǔ)爬蟲與文本處理外還提供了基于規(guī)則與統(tǒng)計(jì)方法的接龍算法實(shí)現(xiàn)并附有項(xiàng)目目標(biāo)、實(shí)現(xiàn)過程與使用方法能幫助讀者從分詞、音韻匹配到算法調(diào)優(yōu)獲得完整實(shí)戰(zhàn)閉環(huán)適合作為課程設(shè)計(jì)或NLP入門練習(xí)的參考。1. 詩歌接龍是什么一個(gè)讓Python寫詩的下一個(gè)字的NLP項(xiàng)目“詩歌接龍”聽起來像語文課上的游戲但落到程序里它其實(shí)是NLP自然語言處理里最典型的序列生成任務(wù)用戶給出一句詩或半句詩程序需要預(yù)測下一個(gè)字甚至把后面的詩續(xù)完。用Python實(shí)現(xiàn)這樣一個(gè)項(xiàng)目意味著你要走完中文語料清洗、序列建模、概率采樣、結(jié)果評估的完整鏈路。它的難度比文本分類高一檔但比從頭做對話機(jī)器人低很多特別適合用來檢驗(yàn)?zāi)銓ython字符串處理、數(shù)據(jù)結(jié)構(gòu)和簡單模型的掌握程度。你做出來的東西也不是那種跑完loss就扔掉的玩具——它能把“床前明月光”續(xù)成“地上鞋兩雙”也能在調(diào)好參數(shù)后生成像模像樣的五言句。這個(gè)項(xiàng)目適合誰剛學(xué)完P(guān)ython基礎(chǔ)、想找?guī)谋緢鼍暗捻?xiàng)目練手的人或者已經(jīng)在用n-gram做關(guān)鍵詞提取、想跨進(jìn)生成式NLP的人。接下來我按自己實(shí)際做過的思路把這條路上的選型、代碼、參數(shù)和坑一次講清。2. 先想清楚接龍的數(shù)學(xué)邏輯從n-gram到序列模型的選型思路2.1 詩歌接龍不是在寫詩是在預(yù)測下一個(gè)字很多人第一次做詩歌接龍腦子里想的是“讓AI學(xué)會作詩”于是直接上GPT。但真正的第一步是把問題簡化成條件概率給定前文“床前明月”下一個(gè)字是“光”的概率是多少如果模型能算出候選字在給定上下文下的概率分布那么接龍就變成一個(gè)采樣問題——按概率分布挑一個(gè)字然后把它拼到輸入末尾繼續(xù)預(yù)測下一個(gè)字。這個(gè)思維決定了技術(shù)路線。詩歌接龍的輸入輸出都是字符序列本質(zhì)是語言模型Language Model。語言模型做的事就是最大化序列概率 P(text) P(w1) * P(w2|w1) * ... * P(wN|w1..wN-1)。而接龍只要計(jì)算 P(下一個(gè)字 | 當(dāng)前已生成序列)所以訓(xùn)練的樣本就是“給定前面N個(gè)字預(yù)測第N1個(gè)字”。這個(gè)視角統(tǒng)一了所有后續(xù)做法n-gram里的轉(zhuǎn)移概率表、LSTM里的softmax輸出、Transformer里的自回歸解碼全部是在求這個(gè)條件分布。這里要強(qiáng)調(diào)一個(gè)容易被新手搞混的點(diǎn)接龍其實(shí)不需要先分詞。中文詩歌很多時(shí)候一個(gè)字就是一個(gè)語義單元按“字”做語言模型比按“詞”做更穩(wěn)。詞表就是全部出現(xiàn)過的字幾百個(gè)字就夠用訓(xùn)練快、可控性強(qiáng)。按詞的話古詩里大量典故、人名、地名會切成碎片反而學(xué)不好。我一般默認(rèn)用字符級建模除非要做主題分類才考慮詞級特征。2.2 數(shù)據(jù)準(zhǔn)備把古詩庫變成模型能吃的序列樣本數(shù)據(jù)是詩歌接龍的命根子。常見做法是用公開的古詩數(shù)據(jù)集里面包含唐詩、宋詞、詩經(jīng)等文本。拿到的原始數(shù)據(jù)通常是這種格式[{author: 李白, title: 靜夜思, paragraphs: [床前明月光, 疑是地上霜]}]也有的是純文本一行一首詩或描寫段落后跟詩句。第一步是把所有詩句抽出來去掉作者、標(biāo)題、注釋。注意古詩里會有繁體字、異體字比如“裏”和“里”“閒”和“閑”。我一般會統(tǒng)一轉(zhuǎn)成簡體做法是用opencc庫pip install opencc-python-reimplemented然后import opencc cc opencc.OpenCC(t2s) # 繁體轉(zhuǎn)簡體 text cc.convert(raw_text)轉(zhuǎn)完之后還要做清洗去掉空格、換行、標(biāo)點(diǎn)保留句號逗號也行但接龍目標(biāo)是詩句通常去掉標(biāo)點(diǎn)讓模型自己學(xué)去掉長度小于4或大于12的行因?yàn)槲逖越^句一般是5或7個(gè)字一句太短的行多半殘缺太長的可能是散文混入。清洗后的語料長這樣床前明月光 疑是地上霜 舉頭望明月 低頭思故鄉(xiāng)有了這個(gè)純文本列表就可以構(gòu)造訓(xùn)練樣本了。如果是n-gram需要統(tǒng)計(jì)“前N-1個(gè)字 - 下一個(gè)字”的計(jì)數(shù)如果是LSTM需要把每句詩轉(zhuǎn)成整數(shù)序列再用滑動(dòng)窗口切出輸入和標(biāo)簽。這一步是整個(gè)項(xiàng)目的地基沒做好后面模型再強(qiáng)也白搭。2.3 選型對照n-gram、LSTM與Transformer該用哪個(gè)搞清楚任務(wù)本質(zhì)后選型就清晰了。常見做法是分三檔n-gram字符級簡單到用Python字典就能實(shí)現(xiàn)。它統(tǒng)計(jì)“前面n-1個(gè)字”這個(gè)狀態(tài)出現(xiàn)時(shí)后面跟的每個(gè)字的次數(shù)然后算概率。優(yōu)點(diǎn)是訓(xùn)練只要一次遍歷語料完全沒有GPU需求缺點(diǎn)是只能記住連續(xù)n個(gè)字內(nèi)的關(guān)系n設(shè)大了矩陣稀疏爆炸n設(shè)小了生成出來的句子前后邏輯差。對詩歌接龍這種短文本n3或4已經(jīng)能生成語法通順但內(nèi)容隨機(jī)的小詩。LSTM/GRU能捕捉遠(yuǎn)距離依賴比如律詩里上下句的語義呼應(yīng)。訓(xùn)練需要神經(jīng)網(wǎng)絡(luò)框架我一般用PyTorch因?yàn)閯?dòng)態(tài)圖方便寫采樣邏輯。LSTM接收前文序列的embedding最后一個(gè)時(shí)間步的輸出通過全連接層映射到字典大小的向量softmax后就是下一個(gè)字的概率。它比n-gram學(xué)到的泛化能力強(qiáng)你輸入一句不在語料里的“半句詩”LSTM也能接出個(gè)差不多的下句。缺點(diǎn)是訓(xùn)練時(shí)間受序列長度和數(shù)據(jù)量影響字符級詞表小的情況下CPU也能跑但效率低還是建議裝個(gè)CUDA版PyTorch。Transformer/預(yù)訓(xùn)練模型如果你手里有百G語料或者想直接用中文GPT-2那效果肯定最好但這不是普通“python實(shí)現(xiàn)NLP項(xiàng)目”該走的路。預(yù)訓(xùn)練模型像是拿電鋸切豆腐模型下載幾個(gè)G、顯存要十幾G而詩歌接龍本身數(shù)據(jù)量不大幾百KB古詩就夠。除非你后來要做風(fēng)格遷移、多輪對詩否則用Transformer從頭訓(xùn)是在給自己找罪受。我自己的建議路線是先花半小時(shí)用n-gram跑通整個(gè)“輸入-生成-輸出”流程感受一下概率采樣的效果再花兩小時(shí)把同樣的數(shù)據(jù)喂給LSTM對比質(zhì)量差異。兩條路寫一遍你對序列生成的理解會深很多。下面的章節(jié)我就按這個(gè)順序展開。3. 用純Python實(shí)現(xiàn)第一個(gè)可用的詩歌接龍字符級n-gram與beam search3.1 編碼與計(jì)數(shù)構(gòu)建轉(zhuǎn)移概率表n-gram的實(shí)現(xiàn)核心是計(jì)數(shù)器。我以“三元語法”為例也就是n3用前兩個(gè)字預(yù)測下一個(gè)字。你需要一個(gè)字典key是長度為2的字符串或元組value是另一個(gè)字典記錄每個(gè)下一個(gè)字的出現(xiàn)次數(shù)。import os import random from collections import defaultdict, Counter def load_lines(path): lines [] with open(path, r, encodingutf-8) as f: for line in f: line line.strip() if len(line) 5 and len(line) 7: # 只保留五言或七言 lines.append(line) return lines def build_trigram(lines): # key: 前兩個(gè)字組成的字符串, value: Counter(下一個(gè)字 - 次數(shù)) model defaultdict(Counter) for line in lines: # 在開頭加兩個(gè)特殊字符讓首字母也有前文 padded ^^ line $ for i in range(len(padded) - 2): context padded[i:i2] next_char padded[i2] model[context][next_char] 1 return model這段代碼做了兩件關(guān)鍵的事。第一給每一行首尾加了特殊字符^表示句首$表示句尾。這樣生成的時(shí)候模型知道如何開始和結(jié)束。第二用defaultdict(Counter)構(gòu)建兩層字典外層的key是“前兩個(gè)字”內(nèi)層的key是“下一個(gè)字”。統(tǒng)計(jì)完成后你隨時(shí)可以查model[明月][光]得到“明月”后面跟“光”的次數(shù)。注意我過濾了長度在5到7之間的行。嚴(yán)格來說五言是5字七言是7字但古詩里也有四言和雜言過濾掉能減少噪聲。如果你想讓模型也能生成七言和五言混合就不要死卡長度可以在構(gòu)造樣本時(shí)把句子按逗號再分割逐句加入。下一步是把這個(gè)計(jì)數(shù)模型轉(zhuǎn)成概率模型。因?yàn)橐玫诫S機(jī)采樣我直接保留計(jì)數(shù)生成時(shí)再除以總數(shù)或者用random.choices按權(quán)重采樣。后者更省事。3.2 beam search采樣讓接龍不只會重復(fù)有了模型最樸素的生成是貪心每次選概率最大的字。但這樣會陷入循環(huán)比如“床前明月光”之后永遠(yuǎn)接“疑是地上霜”因?yàn)橛?xùn)練語料里這個(gè)組合頻率高。更糟糕的是如果模型只學(xué)到高頻搭配你就會得到“床前明月光床前明月光”的復(fù)讀機(jī)。解決手法是用beam search束搜索每一步維護(hù)K個(gè)候選序列每個(gè)候選序列按累計(jì)log概率排序下一輪對每個(gè)候選繼續(xù)展開所有可能的字再取前K個(gè)。這樣生成的質(zhì)量遠(yuǎn)好于貪心又比純隨機(jī)穩(wěn)定。def beam_search(model, prefix, beam_width5, max_len10): # prefix: 用戶輸入的字符串至少2個(gè)字符因?yàn)閚3 start prefix[-2:] # 取后兩個(gè)字作為初始context candidates [(start, prefix, 0.0)] # (context, full_text, log_prob) for _ in range(max_len - len(prefix)): new_candidates [] for ctx, full, lp in candidates: counts model.get(ctx) if not counts: continue # 沒有見過這個(gè)context放棄該分支 total sum(counts.values()) for ch, cnt in counts.items(): prob cnt / total new_lp lp math.log(prob) new_full full ch new_ctx ctx[1] ch new_candidates.append((new_ctx, new_full, new_lp)) # 只保留分?jǐn)?shù)最高的beam_size個(gè) new_candidates.sort(keylambda x: x[2], reverseTrue) candidates new_candidates[:beam_width] # 若所有候選都斷了提前結(jié)束 if not candidates: break # 返回分?jǐn)?shù)最高的完整文本 candidates.sort(keylambda x: x[2], reverseTrue) return candidates[0][1]這個(gè)函數(shù)每步對當(dāng)前所有候選展開所有可能的下一個(gè)字計(jì)算累計(jì)對數(shù)概率然后截?cái)嗟絙eam_width。對數(shù)概率避免了很多個(gè)小概率相乘導(dǎo)致的浮點(diǎn)下溢這是做beam search必須養(yǎng)成的習(xí)慣。參數(shù)beam_width越大生成的多樣性越好但耗時(shí)線性增加。對詩歌接龍5到10就夠。3.3 三個(gè)關(guān)鍵參數(shù)n、溫度、beam size怎么設(shè)n-gram里的n決定記憶力長度。n2時(shí)很容易生成無厘頭的順口溜n4時(shí)生成的句子更像原詩片段但數(shù)據(jù)稀疏非常明顯很多context沒見過導(dǎo)致生成中斷。我實(shí)測下來n3是性價(jià)比最高的。如果你語料量大到幾萬首可以試n4但要把未登錄詞處理做好——比如context沒見過時(shí)回退到較低階的n-gram這叫backoff。beam width不能太大太大容易讓所有候選都來自同一高頻分支反而失去多樣性。這里有個(gè)反直覺點(diǎn)beam search的目標(biāo)函數(shù)是“序列整體概率最高”這意味著它會優(yōu)先選語料里出現(xiàn)過的整句而不是有創(chuàng)意的句子。所以如果你想看到模型“創(chuàng)作”新詩而不是背誦原詩需要在采樣時(shí)引入溫度參數(shù)。溫度temperature是軟max里的縮放系數(shù)。在生成時(shí)我們把概率換成p_i exp(log(p_i)/T)再歸一化。T1時(shí)分布變平緩低概率字也有機(jī)會被選中T1時(shí)分布變陡峭趨向貪心。我用n-gram時(shí)一般不在beam search里加溫度因?yàn)閎eam search本身就是取top溫度會影響排序。正確做法是想要質(zhì)量高、像古詩用beam searchT1想要花樣多、能“作詩”改用random sample并按溫度重新加權(quán)概率。兩種路徑我都保留在代碼里隨場景切換。另外一個(gè)容易忽略的參數(shù)是最大生成長度。詩歌接龍通常續(xù)3到4個(gè)字就能構(gòu)成完整一句因?yàn)橛脩糨斎氚刖浠蛘呦肜m(xù)下一句。我的經(jīng)驗(yàn)是如果用戶輸入的是“床前明月”最大長度設(shè)為10讓它生成通順的七言如果用戶輸入的是完整“床前明月光”再接龍就是出下一句最大長度設(shè)為12也夠。長度太長會讓模型變散文失去詩的節(jié)奏感。到這里你已經(jīng)有一個(gè)不開GPU也能跑的詩歌接龍腳本。它會讀古詩文件記住所有三字結(jié)合接著用戶輸入的半句詩返回一個(gè)續(xù)句。如果你想繼續(xù)提高生成質(zhì)量下一步就該上深度學(xué)習(xí)了。4. 把接龍升到深度學(xué)習(xí)用LSTM做更自然的續(xù)句4.1 構(gòu)造訓(xùn)練數(shù)據(jù)滑動(dòng)窗口生成特征與標(biāo)簽深度學(xué)習(xí)的訓(xùn)練數(shù)據(jù)不再是計(jì)數(shù)表而是整數(shù)序列。先把所有詩句拼接成一個(gè)長序列或者按句切割。我傾向于按句切割但為了學(xué)習(xí)上下文關(guān)系也可以把整首詩作為一個(gè)序列中間用分隔符連接。這里提供一種簡潔的按句切法def build_dataset(lines, seq_len5): # 建立字-id映射 chars sorted(set(.join(lines))) char2id {c: i for i, c in enumerate(chars)} id2char {i: c for c, i in char2id.items()} X, y [], [] for line in lines: ids [char2id[c] for c in line] # 用前seq_len個(gè)字預(yù)測后面所有字 for i in range(len(line) - seq_len): X.append(ids[i:iseq_len]) y.append(ids[iseq_len]) return X, y, char2id, id2char這段代碼的核心是滑動(dòng)窗口。比如句子“床前明月光”轉(zhuǎn)成ids后seq_len3時(shí)[床,前,明]預(yù)測月[前,明,月]預(yù)測光。這個(gè)做法讓一條五言詩句產(chǎn)生兩個(gè)訓(xùn)練樣本。注意我沒有把整首詩不分句來滑窗因?yàn)楣旁姷纳舷戮渲g有語義呼應(yīng)但接龍通常只延續(xù)半句跨句訓(xùn)練反而會讓模型去記憶下一句開頭降低泛化性。如果你要玩藏頭詩、要續(xù)一整首那再改成跨句滑窗。seq_len是模型看到的“上文長度”。n-gram里的n是固定的3LSTM里的seq_len可以靈活調(diào)。對七言詩seq_len設(shè)為7能覆蓋完整的一句但我發(fā)現(xiàn)seq_len5到6已經(jīng)足夠因?yàn)榻育垥r(shí)用戶給的前綴通常不會太長而且LSTM內(nèi)部有隱狀態(tài)理論上能記住更長信息。設(shè)太長會加大訓(xùn)練負(fù)擔(dān)還會讓模型過于依賴前文的精確順序。4.2 搭建一個(gè)可訓(xùn)練的中文詩歌LSTM模型這里用PyTorch搭一個(gè)兩層LSTM。詞表大小就是剛才的char2id長度一般幾百到一千。embedding維度我選128隱藏單元選256。下面是完整模型定義import torch import torch.nn as nn class PoemLSTM(nn.Module): def __init__(self, vocab_size, embed_dim128, hidden_dim256, num_layers2, dropout0.3): super().__init__() self.embedding nn.Embedding(vocab_size, embed_dim) self.lstm nn.LSTM(embed_dim, hidden_dim, num_layers, batch_firstTrue, dropoutdropout) self.fc nn.Linear(hidden_dim, vocab_size) def forward(self, x): # x: (batch, seq_len) emb self.embedding(x) # (batch, seq_len, embed_dim) out, _ self.lstm(emb) # (batch, seq_len, hidden_dim) last out[:, -1, :] # 取最后一個(gè)時(shí)間步 logits self.fc(last) # (batch, vocab_size) return logits這里有幾個(gè)關(guān)鍵點(diǎn)batch_firstTrue讓輸入形狀變成(batch, seq_len, feature)這是PyTorch LSTM的習(xí)慣性寫法out[:, -1, :]只取序列最后一個(gè)時(shí)間步的輸出因?yàn)轭A(yù)測目標(biāo)就是最后一個(gè)字之后的字。如果你用雙向LSTM這里要拼接前后兩個(gè)方向但古詩接龍只能看上文所以用單向LSTM更合理。訓(xùn)練時(shí)用交叉熵?fù)p失但注意別把標(biāo)簽做成one-hot直接用nn.CrossEntropyLoss()配合整數(shù)標(biāo)簽就行。優(yōu)化器我常用Adam學(xué)習(xí)率設(shè)0.001。下面是訓(xùn)練循環(huán)的骨架def train_model(model, X, y, epochs30, batch_size128, lr0.001): optimizer torch.optim.Adam(model.parameters(), lrlr) loss_fn nn.CrossEntropyLoss() dataset torch.utils.data.TensorDataset( torch.tensor(X, dtypetorch.long), torch.tensor(y, dtypetorch.long) ) loader torch.utils.data.DataLoader(dataset, batch_sizebatch_size, shuffleTrue) for epoch in range(epochs): total_loss 0 for xb, yb in loader: model.zero_grad() logits model(xb) loss loss_fn(logits, yb) loss.backward() optimizer.step() total_loss loss.item() if (epoch 1) % 5 0: print(fepoch {epoch1}, loss {total_loss/len(loader):.4f})訓(xùn)練結(jié)束后保存model.state_dict()方便下次加載。注意embedding層會把每個(gè)字映射成一個(gè)向量LSTM學(xué)的是“在這種向量排列下下一個(gè)字通常是什么”。如果你的語料只有幾千首過擬合會很明顯所以訓(xùn)練到loss降到一定值后就得停止不要追求完美。4.3 訓(xùn)練與采樣loss降到多少才夠用訓(xùn)練loss不是越低越好。我拿全唐詩五萬多首做實(shí)驗(yàn)字符級詞表大約3000字在兩層LSTM 256隱藏單元下loss約在1.8左右就能穩(wěn)定生成通順句子降到1.5以下時(shí)模型開始傾向于復(fù)讀原句生成創(chuàng)新性下降。這個(gè)規(guī)律挺反直覺的——很多NLP項(xiàng)目追求loss越低越好但生成任務(wù)里loss太低等于記住了訓(xùn)練集。采樣時(shí)深度學(xué)習(xí)模型不像n-gram有硬性的context匹配失敗問題因?yàn)樗鼘θ我廨斎攵寄芙o出softmax分布。但正因如此沒有temperature調(diào)節(jié)的話它更容易生成高概率的常見字。我常用temperature0.8生成既能保住通順度又有一定創(chuàng)新。下面是采樣代碼def sample(model, prefix, char2id, id2char, seq_len, max_len20, temperature0.8): model.eval() # 把prefix補(bǔ)到seq_len長度 chars list(prefix) for _ in range(max_len - len(prefix)): # 取最后seq_len個(gè)字不夠則左側(cè)補(bǔ)起始符這里用第一個(gè)字的id補(bǔ) context chars[-(seq_len-1):] if len(chars) seq_len-1 else chars if len(context) seq_len: pad [char2id[chars[0]]] * (seq_len - len(context)) context_ids pad [char2id[c] for c in context] else: context_ids [char2id[c] for c in context[-seq_len:]] # 確保長度正確 context_ids context_ids[-seq_len:] x torch.tensor([context_ids], dtypetorch.long) with torch.no_grad(): logits model(x)[0] # 溫度采樣 logits logits / temperature probs torch.softmax(logits, dim-1) next_id torch.multinomial(probs, 1).item() chars.append(id2char[next_id]) return .join(chars)采樣時(shí)每次只取最后seq_len個(gè)字作為輸入然后逐個(gè)生成。注意我用了torch.multinomial而不是argmax這是生成任務(wù)的關(guān)鍵——純argmax會生成大概率但無聊的句子multinomial按概率隨機(jī)抽配合temperature可以得到多樣且合理的輸出。如果你想讓輸出更像格律詩可以在采樣后加一個(gè)大體檢測檢查最后一個(gè)字的韻腳或者檢查每句字?jǐn)?shù)。但這些都算是后處理放在進(jìn)階技巧里展開。5. 詩歌接龍避坑指南數(shù)據(jù)、生成與環(huán)境的四個(gè)典型翻車點(diǎn)5.1 古詩庫的編碼坑繁體、異體和不完整的標(biāo)點(diǎn)現(xiàn)象模型生成的句子全是簡體字但訓(xùn)練語料里的“里”和“裏”被當(dāng)成兩個(gè)不同字導(dǎo)致“故里”這個(gè)常見詞被拆散。更嚴(yán)重的是有的古詩庫直接從古文獻(xiàn)掃描OCR出來混有“丨”“丶”等生僻符號會拉高詞表大小浪費(fèi)訓(xùn)練空間。原因數(shù)據(jù)來源不是為機(jī)器學(xué)習(xí)準(zhǔn)備的原始文本包含繁體、異體和噪聲符號。我一開始偷懶直接用原始語料跑結(jié)果詞表里冒出3000多個(gè)罕見的收字模型把所有精力用在區(qū)分這些低頻字上生成質(zhì)量大打折扣。解決訓(xùn)練前統(tǒng)一做三步先用opencc轉(zhuǎn)簡體再手動(dòng)清掉非漢字字符最后過濾掉長度異常的行。這一步?jīng)]法全自動(dòng)需要定期抽查樣本。血的教訓(xùn)是別相信任何“已經(jīng)清理好”的古詩下載包自己跑一遍清洗才放心。5.2 訓(xùn)練時(shí)的loss不降學(xué)習(xí)率與序列長度現(xiàn)象LSTM訓(xùn)練50個(gè)epochloss一直在3.0附近徘徊生成的全是“之乎者也”一類的高頻虛詞。原因最常見的是學(xué)習(xí)率太大導(dǎo)致loss震蕩或者學(xué)習(xí)率太小導(dǎo)致模型卡在較差局部解。另一個(gè)隱藏原因是序列長度太短比如seq_len2模型根本學(xué)不到語義。還有一個(gè)容易忽略的沒有加embedding的初始化或者輸入id從0開始但字典里有0填充導(dǎo)致padding干擾。解決先把學(xué)習(xí)率調(diào)到0.0005batch_size調(diào)小一點(diǎn)觀察loss是否有下降趨勢。如果序列長度小于5先改成5。如果還是不動(dòng)檢查輸入數(shù)據(jù)是否真的被正確塑形用print(X[0], y[0])看一眼前后對應(yīng)關(guān)系。我遇到過把X和y錯(cuò)位一行的情況模型等于在猜隨機(jī)數(shù)loss當(dāng)然不降。5.3 生成內(nèi)容全是“的”“了”溫度太低與詞頻熵現(xiàn)象無論用戶輸入什么生成的下一句都是“春風(fēng)得意馬蹄疾”這種高頻詩句或者反復(fù)輸出“的”“了”這種虛詞。原因古詩語料里“之”“人”“風(fēng)”等字出現(xiàn)頻率極高模型學(xué)到的先驗(yàn)分布被這些高頻詞主導(dǎo)。如果temperature設(shè)得太低比如0.2softmax輸出幾乎等同于argmax模型就只會選這些高頻詞。beam search的寬度如果設(shè)得太大也會導(dǎo)致候選全是高頻組合看起來反而單一。解決把temperature調(diào)到0.81.2多試幾次。另外可以在采樣時(shí)對高頻虛詞做降權(quán)比如把“的”“了”“之”的logits減去一個(gè)大常數(shù)。這個(gè)方法雖然粗暴但很有效。還有一個(gè)技巧如果使用beam search從5個(gè)候選中挑一個(gè)“不是最順口”的反而更有詩意。5.4 環(huán)境依賴numpy版本和Python 3.8的兼容問題現(xiàn)象代碼在一臺機(jī)器上跑得好好的換到另一臺裝了Python 3.8的機(jī)器上import torch直接報(bào)錯(cuò)或者numpy操作報(bào)AttributeError: module numpy has no attribute float。原因PyTorch版本和numpy版本不匹配老版本numpy里np.float這種別名在numpy 1.24之后被移除了。很多詩歌接龍項(xiàng)目demo寫于兩三年前里面用了np.float、np.int在新環(huán)境里直接崩。解決給項(xiàng)目寫一個(gè)requirements.txt鎖定版本。我常用的組合是python3.8.18、numpy1.23.5、torch2.0.1。不要一上來就裝numpy 2.x除非你確認(rèn)代碼里沒用舊別名。還有一個(gè)更穩(wěn)做法用from numpy import float這種地方全改成float或者干脆pip install numpy1.23.5一步到位。環(huán)境問題雖然不大但能卡你半天這真不是玄學(xué)。6. 進(jìn)階技巧從單一接龍到藏頭詩與風(fēng)格控制當(dāng)你的接龍模型能穩(wěn)定續(xù)出通順句子時(shí)下一步可以讓輸出更“好玩”或者更“可控”。這里我給你三個(gè)我實(shí)際用過、效果明顯的小改造。第一個(gè)是藏頭詩生成。用戶指定四個(gè)字比如“山河無恙”要求每句開頭分別是這四個(gè)字。實(shí)現(xiàn)思路叫約束beam search在beam search擴(kuò)展候選時(shí)對于每一句的第一個(gè)字符只允許候選等于指定字。具體來說你可以在生成前設(shè)置一個(gè)forced_chars列表第i句生成時(shí)將beam search的每一步查詢改為當(dāng)生成的字符位置是句首時(shí)直接過濾掉不是目標(biāo)字的候選。這樣做需要注意被強(qiáng)制選擇的字如果在模型里概率很低整句的log概率會比其他候選低于是beam search可能把整個(gè)分支剪掉。解決方法是放寬剪枝對被強(qiáng)制的字乘上一個(gè)放行權(quán)重或者干脆直接不讓概率參與排序只讓后面的詞決定排序。這種方法雖然簡單但能讓輸出每句都以指定字開頭實(shí)現(xiàn)成本不到20行代碼。第二個(gè)是風(fēng)格控制。你想讓模型生成“李白一點(diǎn)”還是“杜甫一點(diǎn)”可以在訓(xùn)練數(shù)據(jù)上下功夫把作者信息作為條件在輸入序列最前面加一個(gè)“風(fēng)格標(biāo)記”。比如對李白的詩輸入為“[李白]床前明月光”對杜甫的詩輸入為“[杜甫]國破山河在”。訓(xùn)練時(shí)模型會把風(fēng)格標(biāo)記當(dāng)作前文的一部分生成時(shí)你也把“[李白]”拼在輸入前綴前面。這樣同一個(gè)模型能感知不同詩人的用詞習(xí)慣算是很輕量的conditional language model。如果你不想重新訓(xùn)練也可以在采樣后做規(guī)則過濾比如檢測是否含“劍”“酒”“月”——但規(guī)則永遠(yuǎn)不如數(shù)據(jù)條件自然。第三個(gè)是韻律校驗(yàn)。古詩接龍最讓人頭疼的是最后一句的韻腳。你可以準(zhǔn)備一個(gè)韻表在生成最后一個(gè)字時(shí)只采樣壓韻母的字。做法很簡單把logits中不符合當(dāng)前韻部的位置全部置為負(fù)無窮然后重新softmax。注意必須先確定本首詩壓什么韻通常是第一句的最后一個(gè)字決定。如果用戶輸入的是“床前明月光”最后生成的字必須壓“ang”韻于是“霜”“鄉(xiāng)”“望”“裳”成為候選。這個(gè)校驗(yàn)可以放在溫度采樣之后也可以直接把采樣空間限制在韻部內(nèi)。我的習(xí)慣是先限制韻部再采樣這樣既快又自然。我自己做過一版用藏頭詩LSTM的生成器翻車的地方在于強(qiáng)制字常常是“之”“以”這類虛詞導(dǎo)致整句變成“山之高兮水之長兮”雖然壓韻但不口語。后來我把強(qiáng)制字出現(xiàn)的概率閾值放寬甚至在候選為空時(shí)允許放棄該句改用次優(yōu)句才算穩(wěn)定下來。這是血淚經(jīng)驗(yàn)約束越多生成質(zhì)量越容易崩需要給模型留一條“破例”的后路。這個(gè)項(xiàng)目做到最后你會發(fā)現(xiàn)詩歌接龍的核心價(jià)值不在于“寫詩有多像”而在于你對語言模型生成機(jī)制的完整理解——從計(jì)數(shù)到神經(jīng)網(wǎng)絡(luò)從貪心到beam search從過擬合到溫度調(diào)節(jié)。這些經(jīng)驗(yàn)會直接遷移到其他生成任務(wù)比如切詞、評論生成、甚至簡單對話。希望我的這些踩坑記錄和參數(shù)習(xí)慣能幫到你少走點(diǎn)彎路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
人人色AV| 婷婷丁香花五月天| 亚洲五月天天| 日本色色网站| 亚洲区视频| 久久婷婷影院| CAOBIBI| 综合五月天婷婷色| 日韩啪啪视频| 91精品无码久久久久久五月天| 丁香久月| 丁香婷婷啪啪啪| 99九九这里有免费视频| 天天做天天爱| 久久er99| 色婷婷基地在线| 五月婷婷 婷婷五月 一区二区 久久久| 九九热在线观看6| 国产成人亚洲综合A∨婷婷| 久久久天堂国产精品女人| 99愛国产| 玩熟女五十AV一二三区| 婷婷五月综合色拍| 色婷婷小说网| 成人视频婷婷| 人人操人人爱丁香五月| 精品久久久久久久久久久久人妻| 日韩成人电影Av| 99操视频| 色色性爱视频| 五月激情六月宗合| 五月天综合婷婷| www,26uuu,c0m,色情| 超碰国产在线| 一级片sese片.COM| 天综合日日夜综合7799| 高清av在线国产| 五月综合激情| 大学生高潮无套内谢视频| 久久er免费视频| 丁香六月婷| 久艹大香蕉| 欧美婷| 激情网色五月| 热婷婷久| 婷五月天丁香婷五月| 久久一级AV| 久久久五月天| 狠狠色综合网| 五月天婷婷影院| 91在线日| 久久九九色| 日韩在线视频网站| 国产免费一区二区三州老师F1F1| 激情 婷婷 插| 色婷婷五月亚洲| 66久久视频在线| 狼人狠狠操| 丁香五月婷婷99| 最新日韩AV中文字幕| 99燥99日| 97在线视频 欧美| 九九热视频精品999| 婷婷激情5月| 久久人人九九| 五月激情丁香久久综合网| 激情 婷婷| 亚洲色图五月丁香五月婷婷| 婷香狠狠爱五月| 久热在线中文字幕色999舞 | 久久一热| 久久作爱| 极品人妻VIDEOSSS人妻| 99亚洲视频| 婷婷婷婷婷婷婷五月丁香| 99热久草| 五月天婷婷无码视频| 天天色,天天操,天天射| 99re66热这里只有精品| 99福利导航| 天天综合天综合久久网| 操久久精| 美女天天久久| 久热这里只有精品视频免费观看| 夜夜操,天天撸| 九九热这里只有精品在线观看| 婷婷五月丁香五月| 亚洲成人av在线播放| 久久sp免费视频| 五月丁香狠狠爱婷婷综合| 五月婷婷欧洲| 天天性视频| 开心五月婷婷五月| 夜夜爽天操| www.婷婷.com| 欧美交换配乱吟粗大25P| 91九色白丝| 国内一级精品| 丁香五月婷婷丫| 开心六月婷| 色婷婷婷av| 日操| 综合网啪| 五月停视频天堂| www.超碰| 欧美性猛交99久久久99| 青草视频在线蜜臀| 亚洲精品无码久久| 九九综合图片网| 国产69久久久欧美黑人A片| 久久无码成人| 亚洲乱码在线观看| 亚城区在线| 99热a片免| 99精品自拍视频| 久久人妻精品| 91久久综合亚洲鲁鲁五月天| va婷婷| 色婷婷香蕉| A久久| 九九99精品视品| 婷婷六月视频| 天天五月天综合网址| 午夜五月天| 五月天婷婷免费视频| 丁香婷婷色五月| 99在线免费视频播放| 日本色频| 影音先锋777xfplay色资源网站| 日韩精品一品二区三区的使用体验 | AA片在线观看视频在线播放| 免费啪啪啪网站| 欧美在线骚货| 思思热视频| 丁香五月婷婷www..com| 久噜久噜| 五月激情综合婷婷| 区区欧美你爱| 五月婷婷香蕉| 亚洲99在线| 97干在线观看视频| 欧美人久久| www.成人婷婷综合| 大香蕉丁香| 天天综合五月| 欧美婷婷色| 无码一区二区三区四区五区91c| 97久久五月丁香婷婷| 色婷婷丁香AV综合| 操日本99| 色五月偷偷| wwwC0maV五月花| 天天天天操| 亚洲午夜一区二区| 欧美综合五月丁香六月婷| 99久久这里只有精品| 综合性爱网| 深爱激情五月网| 天天日天天久久青青| 成人AV网站在线| 亚洲99在线视频| 久热伊人| 伊人五月天97| 天天骑天天操| 99热99极品观看| 九九热免费| 男同色五月开心五月激情五月| 色99自拍| www.婷婷六月天| 色婷婷四虎| 色噜噜狠狠狠综合曰曰曰| 黄色中文字目| 婷婷五月天美女21p| 免费看成人747474九号视频在线观看| 日日操夜夜擼| 婷婷色在线| 丁香蜜臀黄色婷婷五月天| 婷婷六月成人| 亚洲人成色A777777在线观看| 思思热在线视频精品| 亚洲超碰在线| 亚洲愉拍99热成人精品| 色婷婷五月网| 夜夜嗨一区二区三区直播内容| 亚洲操逼片| 日日操夜夜爽天天天| 99免费在线视频| 超级黄色片| 人妻综合网| 五月婷婷啪啪| 六六久久黄色| 91精品久久久久久| 五月婷婷丁香色吧网| 丁香五月天影院| 色婷婷久久综合久色综| ..真实国产乱子伦毛片| 黄色激情五月天| 日本精品人妻无码77777| www.婷婷,com| 男女99免费视频| 开心激情婷婷| 五月宗合激情网| 好看的国产精品| 97色色视频| 久久成人综合五月天| 成人无码髙潮喷水A片| 玖玖玖婷婷婷| 五月天播播| 色五月婷婷激情五月| 国内精品99| 五日激情综合| 夜夜涩涩涩| 九月丁香婷婷| 婷婷丁香人妻天天爽| 香蕉久日夜| 婷婷五月综合网| 丁香综合伊人| 亚洲V国产V欧美V久久久久久| 日韩成人精品一区久久久久| 久热久re| 亚洲情综合五月天| ww久久| 成人AV在线电影| 淫五月停停| 五月丁了香蕉综合| 97久久超视频| 婷婷综合仓库中文| 日本片日本片祼观看网站在线看中文版网页在线看| 激情文学五月丁香六月婷婷| 青青久久五月| 亚洲妇女熟BBW| 女高怪谈在线观看| 婷婷干五月综合在线播放| 丁香五月激情六月欧亚激情综合导航| 国产99久久久国产精品免费看| 清色五月天| 六月婷婷啪啪| 五月丁香久久丝袜啪啪| 亚洲无码性爱| 色色色热热热| 天天爱天天秀天天做| 激情五月天丁香| 丁香99| 色色丁香| 丁香婷婷久久| 丁香九月激情| 91九九| 玖玖婷婷综合| 成人电影在线免费试看| 五月丁香啪啪啪| www.久久66| www.日本久久videos| 免费观看的av| 九九视频在线观看| 99激情| 亚洲成人网站在线播放| 九九热在线视频| 99热久久这里只有精品2010| 婷婷丁香五月在线播放| 日本色色色| 色五月婷婷大| 色丁香五月综合网| 九九热99热| 操逼国产91| 嫩模草| 搡BBBB搡BBB搡18| 六月 丁香 视频| 97丁香五月| 丁香五月天亚洲视频| 激情小说 五月天| 婷婷五月天成人动漫 | 国产69久久久欧美黑人A片| 91viP在线看| 婷婷五月激情天| 99r这里| 热久久视频99| 六月色色综合| 丁香婷在线| 丁香色五月婷婷91桃色| 婷婷五月天激情电影小说| 色婷婷丁香香香蕉视频| 久久久无码精品成人A片小说| 欧美性色五月天| 丁香五月激情站| 丁香婷婷人妻综合网| 丁香六月婷婷高清| 91碰操| 狼人伊人天堂| 182TV大香蕉| 91成人电影| 97碰在线| 五月丁香六月婷婷免费视频| 色播激情五月天| 五月婷婷婷婷婷婷艺术| 日本色五月| 91综合国免费久入| 久草热久草在线视频| 五月天激情亚洲| 亭亭玉月丁香| av在线免费播放观看| 亚洲AV电影美洲AV电影| 五月婷俺去也| 丁香六月婷婷色XXXXX| 亚洲AV网站在线观看| 久久久婷| 久草视频大香蕉99| AV伊人青草丁香六月| 岛国资源网| 五月激情六月宗合| 九热精品| 超碰97免费在线| 九九五月天| 六月久久婷婷| 丁香五月天在线观看视频| 婷婷五月天成人导航| 丁香五月亚洲激情婷婷射| 99色1| 夜夜夜夜夜骑撸| 丁香九月久久| 五月黄色婷婷| 久久伊人日日夜夜| 涩五月色婷婷| 99在线免费观看| 亚洲天堂青草| 天天操天天日天天爽| 色噜噜婷婷| 亚洲国产精品综合色区| 99热这里只有精品在线| 久久婷婷激情久久| 亚洲国产精品综合色区| 大香蕉五月天| 久久久WWW| 日韩啪啪视品| 天天日天天插天天操| 九一99| 亚洲综合无码| 久久一品区| 亚洲婷婷丁香五月亚洲| 开心激情网五月天| 超碰在线观看9| 我爱va亚洲va52| 91九色国产| 婷婷丁香激情五月天色色色| 久久久er热| 无码区婷婷五月花开| 国产精品久久久久久久久久免费| 成人在线高清| 99愛国产| 日本44久久在线| 性爱网五月婷婷| 色色色999| 色婷婷亚洲六月婷婷中文字幕| 伊人色综合久久久| www.激情com| 五月婷婷综合色拍| 99热久久这里只有精品| 台湾综合丁香五月蜜桃| www.色婷婷| 99碰网站| 国产午夜精品久久久观看| 亚洲精品无码一区二区| 狠狠爱青青草| 五月婷婷成人w| 久久精品人妻| 色婷婷瘦婷婷日韩| 丁香五月影院| 亚洲视频国产一区| 激情綜合W W W,激情五月天| 黄色99热| 六月丁香婷婷综合在线| 久久久五月天网站| 色欧美影院| 丁香久久激情俄| 天天综合天综合| www...com黄在线观看| 丁香婷五月天| 久热re视频在线观看网站| 都市激情蜜桃婷婷五月天 | 久久精品婷婷五月丁香| 五月婷婷综合久久| 婷婷五月色播网| 人人射人人高潮| 亚洲图色五月天| 亚洲色婷婷视频| 欧美日韩国产一二区| 日日爽天天| 丰滿爆乳一区二区三区| 色狠狠999综合| 美女天天久久| 97ai婷婷| 久久99热这里只频精品6学生| 99热99| 亚洲中文乱字字幕在线永久| 不卡在线中文字幕无| 伊人婷婷五月| 超碰99资源站| 亚洲亚洲人成综合网络| 婷婷射丁香| 狼人婷婷综合| 国产69久久久欧美黑人A片| 97福利视频| www.激情五月天| 97成人在线视频| 婷婷成人五月天| 丁香九月婷| 99热在线观看这里只有精品| 综合性爱网| 亚洲中文乱字字幕在线永久| 看逼中文字幕| 亚洲五月婷| 九九机热| 亚洲思思热久| 亚洲成人av在线观看| 五月婷婷激情综合网 | 九九综合久久| 天天久久九九| 五月婷婷综合视频| 久久久久人妻网址| 激情网 五月天| 五月婷婷丁香五月| 日本丁香五月| 婷婷五月丁香五月综合网| 99久久婷婷| 666555。COm毛片| 丁香五月婷婷黑人妻黄色电影院| 91人操人人人操人| 亚洲综合在线丁香五月| 久久婷婷青草五月天| 可以看的av| 色色哒五月婷婷六月丁香| 91操屁股| 中文字幕视频色婷婷| 91干在线| 婷婷五月无码| 婷婷六月丁香色| 中文字幕丰满人妻无码专区| 男人的天堂在线婷婷| www狠狠| 99视频网址| 这里只有精品在线看| 婷丁五月| 丁香婷婷六月激情文学| 另类视频综合| 九九九日本熟女| 中文成人在线| 中文字幕+中文在线| 日日影院 | 亚洲激情综合| 狠狠色噜噜狠狠狠狠综合| 97亚洲婷婷| 五月天婷婷色综合| 天天日本夜夜谢| 五月婷婷综合潮喷| 天天爽天天摸| 婷婷色情六月| 久久免片| 日韩一级网站| 操操国产| 丁香五月久久| 俺去也五月天| 亚洲妇女熟BBW| 五月丁香成人网| 久操人妻| 久久99热这里只频精品6学生| 九九热精品6| 亚洲成人AV一区在线观看| 影音先锋美国A| 国产精产国品一二三在观看| 色爆五月| 九九视频在线观看视频在线播放69| 五月丁香六月婷婷网| 一区二区三区视频| 人妻AV在线| 三人荫蒂添的好舒服A片| 国产偷人爽久久久久久老妇APP| 欧美在线视频免费播放| 97精品欧美91久久久久久久| 思思热这里只有精品| 色99色| www久| 秋霞免费视频| 九九色黄色| 色五月婷婷激情基地| 麻豆AV一区二区三区| 99在线精品免费视频| 色色网站毛片| 免费无码毛片一区二区A片 | 亚洲自拍天堂| 五月丁香大香蕉| 99 频99热国里只有精品| 婷婷六月婷婷| 99久在线精品99re8| 色婷久| 久久九九热视频| 色播五月婷婷| 色婷婷女优有码五月亭| 91欧美| 婷婷色在线观看| 很很干天天干| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 欧美性爱五月天| 色综合色欲综合天天免费 | 97超碰在线免费观看| 五月丁香婷婷六月| 97涩婷婷| 色婷婷六月性| 婷婷五月无码| 色人久久| 成人色图情色成人网 www.5b5b5bcom 五月天| 亚洲五月花| 成人av免费观看| 全部老头和老太XXXXX| 美女被肏网站在线看| 久99久热| 婷婷五月骚厕所| 久久婷婷网| 9l视频自拍九色9l视频在线观看| 婷综合| 99丁香婷婷综合网| 久久综合爱| 亚洲久久婷婷| 久久性爱视频网站| 五月婷婷丁香六月| 狠狠干狠狠操狠狠爱| www.婷婷五月天,com| 日韩99色99| 中文AV网| 99热丁香| 天天婷婷综合亚洲亚洲| 国产XXXX搡XXXXX搡麻豆| 少妇性BBB搡BBB爽爽爽视頻| 91操在线视频| 日本颜色视频人人爱| 色情综合网| 色吊丝永久访问网址| 五月天激情中文字幕| 99操碰| 色五月综合| 激情五月天啪啪| 婷婷五月丁香综合亚洲| 欧美天堂久久| 久久香蕉婷婷| 婷婷五月天精品| 五月天俺去也| 男人天堂99| www色哟哟| 婷婷丁香五月天在线视频| 丁香五月影视| 日本女人久久| 五月丁香婷婷免费视频| 九九久久玖玖爱| 日批在线看| 久久思思热| 99热综合网| 99这里都是精品6| 偷拍丁香九月激情| 色五月成人在线| 四LLL少妇BBBB槡BBBB| 99久热| 日本色色图| 成人Av在线大片| 狠狠色综合精品视频在线| 婷色影院| 91wwmm导航| 97色射| 亚洲综合婷婷| 色婷丁香91| α久久| 欧美怡红院黄站| 五月丁香婷婷综合激情基地| av大片在线| 日韩久久视频| 婷婷五月天伊人| 五月综合视频| 婷婷美女精品视频| 婷婷五月激情基地| 99视频这里只有精品10| 六月婷婷色色色| 9久久久久久久久久久| 久草婷婷网 | 五月婷婷综合网| 精典久久| 色婷五月天| 电影爱拉战争免费观看| 亚洲V国产V欧美V久久久久久| 99热爱爱干干日| 婷婷五月天激情网| 日本本土色网第一区| 一点色成人网| 激情综合网五月激情| 91人人妻人人操| 欧日韩成人| 五月天色导航婷婷资源婷婷| 久久AAAA片一区二区| 热久久国产视频| 99国产欧美视频| 色哟哟www| 五月总合激情网| www.9操| 99re思思久久| 国产成人精品一区二三区熟女在线| 色婷网| 欧美搡BBBBB摔BBBBB| www五月天激情com| 色婷婷五月在线| 开心五月婷婷| 五月丁香婷婷视频| 五月丁香亭亭成人电影| 日本在线视频看se99| 久久色情| 五月婷婷精品无在线| 婷婷操超碰| 国产看真人毛片爱做A片| 五月丁香拍拍激情综合| 任你日热视频| 蜜桃成语时李时珍 免费| 色噜噜狠狠插综合| 日韩 欧美 国产 一区 二区| 五月丁香偷拍| 亚洲国产精品二二三三区| 五月天啪啪啪| 色五月开心开心五月激情五月| 精品久久久91久久影视网| 色婷婷亚洲婷婷| 99在线观看视频精品| 9久操| 99久久www| 天天操夜夜玩!| 狠狠色噜噜狠狠狠狠综合| 综合天堂AV久久久久久久| 婷婷色在线视频| 91久久18| 风流少妇A片一区二区蜜桃| 丁香五月婷婷大香蕉| 玖玖精品视频99| 99日本精品视频热| 激情五月天婷婷色色色色色色色色色色色| 任你搞网站| 五月婷色啪| 狠狠干五月天婷婷网| 超碰97色| 五月丁香激情综合网| 狠狠高潮精品亚洲1| 夜夜骑日日夜夜| 超碰AV在线| 五月婷久久久| 一区中文字幕电影| 婷婷五月激情四射手| 天天干天天色综合| 97碰久久| www.91在线观看| 激情亚洲网| 色色日韩无码| 婷婷五月天激情综合婷婷五月天激情综合| 婷婷综合在线视频| 五月天婷婷Av| 色综久久久| 99燥99日| 中文字幕黄色片| 伊九九三级区| 97在线精品视频| 九热视频精品| 午夜日韩久久久网站| 狠狠色婷| 无码人妻一区二区一牛影视| 日韩AC在线免费观看| 人妻体体内射精一区二区| 九九色婷婷| 九九99久久| 天天日天天爽夜夜爽| 色五月色五天色情网| 久婷婷婷| 久久XX| 综合色播| 五月天色五月| 五月天激情综合网| 亚洲乱码精品久久久久..| 亚洲啪视频| 婷婷射丁香| 五月天操逼激情| 天天干在线播放| 狠狠操狠狠色| 精品九九久久| 五月婷婷色啪| 五月色亭丁香| 另类亚洲视频| 九九碰九九爱97| 天天艹天天综合网| 色青青五月| 五月天丁香网| 丁香婷婷激情五月色| 夜夜天天天天天干天天爽| 色婷婷影音| 丁香涩涩爱| 五月丁香欧美综合| 婷婷激情五月天7| 另类丁香五月天区图| 互月天综合| 综合色色色| 9久热免费视频99| 婷婷五月丁香基地| 亚洲愉拍99热成人精品| 9999综合99综合人| 国产精品人妻欲求不满| 99 频99热国里只有精品| 六月天无码网址| 丁香六月色婷婷| 五月丁香性爱| 五月激情在线| 欧美日本高清视频99| 亚洲高清在线| 日本欧美国产| 色婷婷网| www.玖玖九| 97热这里精品在线视频| 五月激情开心婷婷| 亚洲激情综合| 大地资源色婷婷视频在线| 99在线一区| 五月天国产成人| 99re免费精品视频| 亚洲综合色五月| 9色在线视频| 九九色网专区| 伊人久久艹| 狠狠色综合五月| 深爱激情五月婷婷| 欧美超碰亚洲| 【乱子伦】黄色| 狠狠插狠狠操| 国产黄大片在线观看画质优化| 色综合久久之分久久| www.maotanji.com| 亚洲久热无码| 超碰免费在线| 久久婷婷五月综合色奶水99啪| 亚洲成人在线播放| 激情綜合W W W,激情五月天| 五月天色色色| 99热综合网| 久热这里只有精品99re| 99精品偷自拍| 丁香五月婷婷亚洲激情四射| 五月丁香久久综合精品| 色综合色色| 婷婷五月精品中文| 丁香五月天五码婷婷| 婷婷五月天堂| 天天干天天日蜜臀av| 色狠狠狠干| 91综合色| 狠狠综合色网| 婷婷色av| 婷婷五月天VI| 婷丁香五月天| 播播网色播播| 99热18| 狠狠干在线| 99视频日韩| 九九爱看亚洲| 欧美性生交XXXXX无码小说| 伊人久久婷婷| 秋霞A V毛片| 欧美天天搞| 日韩AV大全| 亚洲天堂婷婷| 999热成人在线综合网| 粉嫩AV久久一区二区三区 | 色狠狠伊人久久五月丁香| 这里只有精品久久| 操碰97| 99热99色| 久久xxxx| 97色碰| 97AV在线视频| 色婷婷电影网| 蜜臀AV在线成人| 五月婷婷无码| 婷婷五月综合婷婷| 五月丁香综合| 丁香五月色综合色播五月| 欧美成人精品A片免费一区99| 超碰永久在线| 五月亭亭性| 久久婷婷激情四射五月天| 五月天久久91| 丁香久久综合| 狠狠草狠狠草| 五月婷丁香| 国产激情综合五月久久| 操操操av| 99久久久久久| 色婷丁香| 五月天伊人| 色综合久久天天综合网| 五月停视频天堂| 天天日天天爽夜夜爽| 色综合网上班开心婷婷久久| 婷婷亚洲丁香五月| 伊人九热| 婷婷久久丁香| 五月丁香999| 久久久com| 天天拍夜夜爽| 亚洲热久| 九九久久五月天综合伊人| 超碰2021| 91超级碰在线视频| 激情综合青草| 亚洲正能量欧美| 丁香六月综合激情| 天天天久久久| 91狼友视频网页更新| 丁香五月综合在线| 超热久碰.com| 久久综合五月天| 久久机只有这里精品| 日本九九九九九九| 五月婷婷成人| 永久AⅤ1| 日韩九区| 5月丁香美女影院| 五月婷婷草| 婷婷五月丁香五月丁香| 五月丁香A片| 综合色色网| 日日操,夜夜爽| 狠狠五月激情丁香六月| 色婷婷小说| 丁香六月婷婷综合| 99在线观看这里都是精品 | 开心五月深爱五月| 欧美噜噜免费观看| 色丁香五月婷婷综合久久| 99热.com| 99区视频| 激情綜合網址| 国产婷婷色综合AV蜜臀AV | 99久在线精品99re5热视频| 亚洲综合新99视频| 久人操| AV在线大香蕉| 久久久久99精品成人片| 丁香六月色婷婷| 99久久超级| 婷婷成人视频| 久久这里只有精品网| 九洲一级A片| 91色综合久久| 婷婷色导航| 超碰人人99| VA婷婷亚洲| 思思久久99热| 伊人久久丁香狠狠婷婷综合香蕉| 色婷婷小说| 婷婷狠狠久久| 成人av免费观看| 久久日韩婷婷五月| 日韩视频99| 色五月丁香婷婷久草| 婷婷精品视频| 超碰在线综合| 色综啪啪啪啪啪啪| 日韩AV在线影片| 五月丁香777| 99热热这里只精品996小说| 热99精品视频| 丁香五月综合在线| 五月天天丁香婷婷在线中| 97性视频| 大香蕉人人网| 丁香婷婷婷| 深夜婷婷 丁香| 色婷婷电影网| 色婷婷综合网| 天天插综合| 人妻久久久久久久久久久| 99热日本| 六月婷婷日| 综合激情五月丁香9999久久精| 婷婷五月综合免费在线| 精品人妻伦一二三区久| 欧美日韩成人| 久久久久婷婷| 久久色情| 婷婷99狠狠躁| 成人五月天视频播放| 九九热手机在线视频| 亚洲综合色丁香五月天| 另类精品视频在线观看| 婷婷狠狠18禁久久| 97精品在线| 九热精品| 久久伊人五月天| 五月婷婷基地| 丁香五月综合高清在线| 亚洲成片在线观看| 亚洲有码在线视频| 97丁香五月| 91久久精品无码一区二区三区| 五月天丁香婷婷网| 成人国产网| 91人无码久久久久久| 五月丁香日逼| 欧美婷婷精品激| 99久re热| 在线色色| 开心五月婷婷五月| 再次出发二| 91精品无码久久久久久五月天| 久久丁香综合精品综合| 1024在线观看免费视频| avv在线| 99热主页日本| 五月婷丁香花| xxx综合在线| 丁香六月激情综合啪啪| 538在线精品| 99热综合网| 99色色网| 偷拍九九热| 视频久久9| 色色色激情| 白天AV月月| 一区二区三区四区五区| 996热re视频精品视频这里| 热99在线| 开心激情网在线| http:色情日本com| 亚洲欧洲一二| 色色婷婷五月| 久久一二三视频| 天天日天天爽| 91精品丝袜久久久久久| 久久免费高| 五月婷婷人人人操| www.色婷婷。com| 天天久| AV操操操| 99热8在线| 九九热10| 欧美韩日AAA网站| 99热色精品| 99自拍视频在线观看| 色婷婷狠狠久久综合五月 | 五月丁香婷婷无码A∨| 九九这里只这里只有精品| 六月丁AV| 这里有精品| 色停停影院五月天| 五月丁香综合啪啪啪啪啪| 五月婷婷开心深| 五月婷婷少妇之| 婷婷八月丁香激情综合| 国自产拍偷拍精品啪啪一区二区| 日韩啪啪网| 综合色视频| site:esunnet.com| 伊人玖玖网| www,999日本色| 免费婷婷| 涩五月色婷婷| 亚洲成人综合在线| 色五月偷偷| 激情综合色五月丁香六月亚洲| www.激情五月天| 国产无套精品一区二区| 人妻丰满精品一区二区A片| 婷婷5月久久综合网站| 超碰激情网| 日本久久爱| 成人国产欧美大片一区| 中文字幕91,综合| 狠狠干2007| ji'qi'luan'ren'lun| 国产精品色色| 五月天婷婷激情六月久久| 五月激情四射婷婷丁香| 色婷婷免费观看| 97超碰在线观看免费| 激情综合五月.....| 九九AV| 97电影99热| 激情婷婷五月社区| 久草热8精品视频在线观看 | 国产成人AV在线播放 | 五月天色丁香| 欧美日韩成人h| 欧美综合婷婷网| 99天堂网| 五月激情丁香五月| 婷婷丁香97| 亚洲精品在线视频| 四色五月婷婷| 91啦丨九色丨刺激中文| 色五月成人在线| 91碰| 久久久久久久久久91| 青草激情综合| 九九视频在线观看视频在线播放69| 99久久99九九九99九他书对| 九九精品亚洲| 天堂五月婷婷| 伊人五月综合网| 婷婷综合在线视频| 丁香六月色婷婷| 99热黄| www.ppypp| 九九九激情网| 开心五月天激情网站| 久久看九九90| 久久久久人妻中文| 亚洲中文AV| 十月丁香九月婷婷综合| 色综啪啪啪啪啪啪| 天天天干夜夜夜操| 欧美 日韩 成人| 婷婷 伊人 久久| 非洲一级AV| 婷婷色网站| 久9视频| 玖玖婷婷五月天| 婷婷五月天堂网| 天天做天天爱天天爽| 五月婷伊人| 日韩精品一区二区三区,四区,五区视频| 色婷婷五月在线| 成人 在线 日韩| 婷婷久久五月天| 91久久婷婷| www.久久66| 成人va在线| 五月天婷婷色色网| 婷婷五月天激情网| 五月丁香婷婷色| www激情网| 日本三日本三级少妇三级66| 五月天伊人久久久久| 国产精品人妻欲求不满| 91婷婷| 伍月婷丁香花全集| 五月婷婷www| 久久99久久久久久| 清色五月天| 九九九九九九九九九九九九九国产精品 | 99视频精品全部免费观看| 99在线看视频| 五月丁香啪啪婷婷| 婷婷五月蜜桃成人桃色丁香| 九九爱激情| 欧美成人va| 五月婷婷六月丁香激情深爱| 五月天激情美女久久| 婷婷丁香五月色| 亚洲综合在线伊人婷| 色吧婷婷五月亚洲| 影音先锋91| 精品无码色| 婷婷综合激情| 99这里只有精品|v| 综合网狠狠| 五月天综合色| Www,五月天| 亚洲成人免费在线| 91碰免费视频| 99自拍视频在线| 丁香社区婷婷五月| 日本超碰在线| 激情五月天婷婷丁香| 人人操人人爱丁香五月| 九九黄色网| www.婷婷五月| 久久少妇视频| 久久综合网免费视频| 麻豆精品| 午夜少妇在线观看视频| 五月婷丁香| 日日鲁鲁夜夜爽爽| 久久婷.com| 亚洲成人av在线观看| 久久99热这里只有精品| 日日干日日色| 综合色网站| 岛国在线观看91| 99re思思热久久| 久机视频这只有精品| 99热99思午夜精品| 六月丁香婷婷综合狠狠爱夜夜爱| 五夜婷婷| 久久机热/这里只有精品| 爱爱色五月天| 超碰二区| 91色欲综合| 99久久户外勾搭| 婷婷激情图片| 91ncm视频| 婷婷五月天狠狠搞干| 人人色性网| 美日韩成人| 色婷婷先锋| 天天婬色综合| 性按摩玩人妻HD中文字幕| 亚洲色色香蕉| 森林影视大全,最好看的2019年视频 | 99视频| 久久92| 日韩视频99| 互月天综合| 加勒比色色| 思思久久99热| 99精日本久久| 国产精品激情AV久久久青桔| 色婷婷五月天偷拍| 碰碰91| 一区二区免费看| 久久久月丁香| 激情五月天啪啪视频| 婷婷99中文字幕| 九九人人自拍| 黄久久久| 伊人玖玖婷婷| 性爱激情小说AV五月丁香花| 九九Y精品热播| 岛囯综合激情网| 天天干夜夜谢| 这里只有精品免费| 亚洲人妻AV| 丁香五月久久| 狠狠干狠狠色| 亚洲操B| 亚洲激情久久| 婷婷激情综合网| 97香蕉碰碰人妻国产欧美| 久久这里都是精品| 久久丁香五月| 五月婷婷激情综合| 丰满女老板BD高清A片| 日本女人久久| 操逼视频一区| 五月丁香婷婷久久| 在线99热| 成人短视频在线观看| 色婷婷99| 婷婷99狠狠躁天天久久久九九九| 婷婷五月天激情网| 五月丁香天堂网| 丁香五月天堂网| 三年高清大片免费观看国语| 高清不卡一区| 青青草五月天| AA片在线观看视频在线播放| 中文字幕视频色婷婷| 31色区视频免费看| 操人精品| 丁香五月婷婷色情综合| 成人看片网站| 91色九| 亚洲小视频免费播放| 亚洲色婷婷婷婷人人爽| 丁香欧美| 思思热视频在线| 97碰啪啪| 午夜不卡久久精品无码免费| 国产AV一区二区三区日韩| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 婷婷丁香人妻天天爽| 日本色天堂| 26uuu国产| 色九月综合| 新激情五月天| 激情五月天色婷婷综合| 国在线激情网| 天天干天天操天天爱| 色噜噜狠狠色综无码久久合欧美 | 99啪99| 99热啪啪| 亚洲a片免费观看| 99视频在线播放大全| 色五月丁香五月激情五月激情| 激情五月婷黄版| 五月婷婷激情69| 日本女人久久| 狠狠色狠狠| 极品人妻VIDEOSSS人妻 | 国产精品久久久久久久久久免费| 操熟女成人网| 亚洲成人无码网站| 久久久月丁香| 五月婷婷在线观看黄| 色综合婷婷| 色原狠狠综合| 狠狠艹狠狠艹| 人妻久久久久久久 | 亚洲欧美999| 色五月婷婷丁香五月| 激情综合网婷婷五夜| 亚洲综合久| 超碰人人草| 国产婷婷五月天| 这里只有精品无码| 丁香网站| 永久免费视频| 日本五月视频| 99久在线精品99re8| 97婷婷在线视频| 五月丁香激情综合六月涩涩爱| 激情五月色综合国产精品| 久久五月激情综合| 99欧美精品99日本精品| 婷婷五月丁香基地在线视频官网| 欧美天天干五月丁香| 激情六月天婷婷| 婷婷中文字幕网站| 精品99这里有| 97碰人人操| www日本熟妇99在线视频| 婷婷五月天成人在线视频| 天天更新天天亚洲| 97久久人人| 午夜色丁香| 99热这里有精品2| 99热精品在线观看| 丁香六月婷婷久久高清| 婷婷五月天激情网站| 强辱丰满人妻HD中文字幕| 97干在线视频| 91热网址| 丁香五月很很肏| 亚洲激情区| 婷婷五月天丁香| 色色婷婷丁香| 9这里只有精品| 丁香五月婷婷基地| 亚洲九区| 玖玖爱综合网| 1024操逼| 另类图片激情五月天| 97人人干| 超碰国产一区| 五月婷婷精品视频| 日产精品一线二线三线芒果| 99亚洲精品视频在线观看| 色99自拍| 久综合九| 99这里有精品视频| 区啪精品| 五月婷婷开心五月| 日韩小视频在线99| 操婷婷基地| 激情小说五月欧美亚洲丁香| av高清无码| 操操人人| 久久综合丁香| 婷婷五月天综合久久| 五月丁香六月婷| 99精品久久久久| 亚洲色夜| 26UUU欧美激情一区二区| 婷婷综合一二三| 91肏| www.五月婷婷.com| 肏屄色播伊人97婷婷| 丁香激情久久| 久久久久妻| 丁香五月性爱| 婷婷五月天视频在线观看|