亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

中文命名實體識別實戰(zhàn):BERT+BiLSTM+CRF完整項目解析

中文命名實體識別實戰(zhàn):BERT+BiLSTM+CRF完整項目解析 簡介面向中文命名實體識別任務融合BERT、BiLSTM與CRF的Python實現(xiàn)方案可對中文文本中的人名、地名、組織機構(gòu)等實體進行端到端識別包含完整源碼、項目說明、預訓練模型與標注數(shù)據(jù)適合計算機、人工智能等專業(yè)學生用于畢業(yè)設計、課程設計或NLP實戰(zhàn)練習。壓縮包共58個文件以16個py源碼、19個pyc編譯文件、9個txt說明為主輔以png結(jié)構(gòu)圖、md筆記、xml工程配置和csv數(shù)據(jù)整體13.75MB目錄按模型、數(shù)據(jù)處理、訓練等模塊劃分便于按圖索驥。從現(xiàn)有瀏覽數(shù)據(jù)看已有1209人學習下載。工程內(nèi)提供BILSTM_CRF、IDCNN_CRF、BILSTM_Attention_CRF、BERT_BILSTM_CRF等多種對比模型附帶人民日報和MSRA數(shù)據(jù)集預處理腳本可直接運行訓練與測試項目說明詳細且經(jīng)測試運行成功既適合小白逐步練習也可作為課設、畢設或初期項目立項演示能幫助深入理解NER中序列標注、特征融合與解碼的完整流程。1. 一個zip里裝著的成熟技術(shù)棧BERTBiLSTMCRF 到底是做什么的看到“基于BERTBILSTMCRF進行中文命名實體識別python源碼項目說明模型數(shù)據(jù).zip”這個打包名字懂行的人會先松一口氣這不是什么玩具 demo而是目前中文命名實體識別NER領(lǐng)域最經(jīng)典、最不容易翻車的三層結(jié)構(gòu)。BERT負責把每個字的語義編碼成向量BiLSTM在整句話里再做一輪上下文精修CRF在最后給標簽序列套上合規(guī)約束。三者的關(guān)系有點像“閱讀理解 上下文潤色 校對排版”。這套技術(shù)棧能解決的具體問題很直接從一段中文文本里自動抽出人名、地名、機構(gòu)名、時間、藥品名、案件名等實體片段。對畢業(yè)設計、法律文書抽取、醫(yī)療病歷結(jié)構(gòu)化、客服工單打標這些場景它都是最穩(wěn)的起點方案。在動手之前我要先幫你看清楚這個結(jié)構(gòu)為什么值得搭、每一步怎么落地、以及哪些地方會白白浪費你兩三天時間。2. 三層神經(jīng)網(wǎng)絡各司其職為什么非要把 BERT、BiLSTM、CRF 拼在一起2.1 中文NER難在哪邊界、歧義和嵌套中文命名實體識別和英文最大的差別在于“字”和“詞”的關(guān)系。英文里詞天然有空格分隔實體邊界基本等于詞邊界中文沒有這個天然分隔符所以中文NER通常退化成“序列標注”問題——每個字給一個標簽連起來才構(gòu)成實體。比如“我 在 北 京 上 班”這六個字需要給“北”“京”分別打上“B-LOC”“I-LOC”模型才能拼出“北京”這個地名。邊界還不是唯一難點。中文的歧義很要命“南京市長江大橋”既可以切成“南京市/長江大橋”也可以理解為“南京市長/江大橋”“小米上市了”里的“小米”是公司還是糧食要看句子上下文。更麻煩的是嵌套實體比如“北京大學附屬醫(yī)院”里同時存在“北京大學”和“北京大學附屬醫(yī)院”兩個實體但扁平式標注只能選一層。所以一個能干活的NER系統(tǒng)必須同時擁有“理解語義”和“利用上下文修正”的能力這正是三層結(jié)構(gòu)存在的理由。如果把NER比作流水線BERT是看懂了全文語義的閱讀者BiLSTM是把前后文線索反復咀嚼的校稿人CRF則是最后那道不許標簽亂跳的質(zhì)檢閘門。三層各管一段去掉任何一層效果都會肉眼可見地變差。2.2 為什么不能只用 BERT也不能只用 BiLSTMCRF先看只用BERT的情況。BERT經(jīng)過預訓練之后每個字會得到一個帶著整句上下文信息的向量理論上可以直接把這些向量喂給一個全連接層輸出每個字屬于每種標簽的概率。這樣做能出結(jié)果但在長句上問題很明顯BERT的解碼端沒有“記住剛才那個字是什么標簽”的能力。比如“李華在北京工作”中“李”被識別成B-PER后下一個“華”大概率也應該是I-PER但如果只看BERT輸出的概率向量“華”也可能被誤判成B-PER因為詞向量層面它并沒有“我是不是前一個實體的延續(xù)”這個信息。再看只用BiLSTMCRF的情況。BiLSTM能從兩個方向讀取序列信息CRF能約束標簽轉(zhuǎn)移這套經(jīng)典組合在十年前是標配。但它的天花板在于輸入特征如果還是用隨機初始化的字向量模型對語義的理解非常淺碰到“蘋果發(fā)布新手機”這種句子它很難把“蘋果”歸到ORG還是MISC因為沒有足夠的預訓練知識告訴它“蘋果”在科技新聞里指公司。在實際項目中我見過不少團隊把這三層拆開做對比實驗。結(jié)論很一致BERT單層F1大約在82-86BiLSTMCRF單跑大概在75-80三層疊加能上到90左右。差異來源主要就是“語義理解”和“標簽序列約束”這兩個能力缺一不可。另外BERT內(nèi)部其實包含12層Transformer已經(jīng)具備很強的特征提取能力所以疊加的BiLSTM通??梢宰龅脺\一些單層即可作用是對BERT輸出做一次序列級別的平滑聚合而不是重新提取特征。2.3 CRF的轉(zhuǎn)移矩陣沒有它標簽會亂跳CRF條件隨機場在NER里的核心作用是一個詞約束。它會學習一個標簽轉(zhuǎn)移矩陣比如“B-PER后面只能跟I-PER或者O不能直接跟B-LOC”“I-LOC前面必須是B-LOC或者I-LOC”。這種約束用代碼很難手寫全因為標簽組合太多而CRF會從訓練數(shù)據(jù)里自動統(tǒng)計這些轉(zhuǎn)移概率。具體來說BERTBiLSTM輸出的每個字的標簽概率會被送入CRF層CRF會結(jié)合“當前字的概率”和“前一個字的標簽”這兩部分信息利用維特比算法找出整條句子最優(yōu)的標簽路徑。舉個例子“我 在 北 京 上 班”如果沒有CRF模型可能給“北”打B-LOC、給“京”打O因為單獨看每個字“京”被識別成O的概率也不低但CRF知道“B-LOC 后面接 O”的轉(zhuǎn)移概率極低所以會把“京”強行糾正為I-LOC。注意CRF不是用來提升實體識別概率的它是用來壓制不合法序列的。訓練過程中你是否正確實現(xiàn)了“損失 真實路徑分數(shù) - log(所有路徑分數(shù)和)”這個公式直接決定了最終實體邊界是否整齊。理解了這個原理你在調(diào)參時才不會把“CRF的學習率”和“BERT的學習率”混為一談——這是后面實操里非常關(guān)鍵的坑。3. 本地跑通最小源碼環(huán)境、數(shù)據(jù)格式與第一個訓練循環(huán)3.1 環(huán)境準備依賴與預訓練模型下載在你打開那個zip之前先確認機器上已經(jīng)有了最基本的Python環(huán)境。這里的要求不算苛刻Python 3.8以上就可以顯卡有的話最好沒有也能用CPU硬跑只是訓練速度會慢很多。下面是我常用的創(chuàng)建環(huán)境命令# 創(chuàng)建獨立環(huán)境并激活避免把系統(tǒng)Python搞亂 conda create -n ner python3.8 -y conda activate ner # 安裝核心依賴按順序執(zhí)行 pip install torch --index-url https://download.pytorch.org/whl/cu118 pip install transformers4.21.3 pip install datasets pip install seqeval pip install tqdm numpy pandas說一下每個依賴為什么要裝torch是BERT和BiLSTM的底層框架transformers負責加載預訓練模型比如bert-base-chinese注意版本不要追新4.2x系列足夠新版本API差異反而容易讓你從網(wǎng)上抄來的訓練代碼報錯datasets用來把原始標注文件轉(zhuǎn)成pytorch能讀的Dataset對象seqeval是專門做序列標注評估的庫比手寫F1計算省心得多。預訓練模型這塊是很多人卡住的地方。HuggingFace上的bert-base-chinese大約400M如果網(wǎng)絡不穩(wěn)定建議設置鏡像環(huán)境變量# Linux/Mac下執(zhí)行 pip install -U huggingface_hub export HF_ENDPOINThttps://hf-mirror.com python -c from transformers import BertTokenizer, BertModel; BertTokenizer.from_pretrained(bert-base-chinese); BertModel.from_pretrained(bert-base-chinese)提示鏡像環(huán)境變量只對當前終端有效。如果你用pycharm跑代碼需要在運行配置里同樣把HF_ENDPOINT加進去否則代碼里from_pretrained會重新走默認源卡在下載。判斷預訓練模型有沒有下載成功看緩存目錄即可。Windows默認在C:\Users\你的用戶名\.cache\huggingface\Linux在~/.cache/huggingface/。看到模型文件完整躺在那里后面訓練就不會再為下載來回折騰。3.2 數(shù)據(jù)標注格式BIOES是什么意思你的數(shù)據(jù)要長什么樣中文NER的數(shù)據(jù)格式通常是“字標簽”逐行排列不同句子之間用空行隔開。標簽體系有BIO和BIOES兩種BIO標簽將所有實體的第一個字標為B-后續(xù)字標為I-非實體標為OBIOES在BIO基礎(chǔ)上多了E和S分別表示實體的結(jié)束字和單字實體。我在項目里優(yōu)先推薦BIOES因為它在實體邊界上的信息量更明確。舉個例子“我在北京上班”這句話的BIOES標注長這樣我 O 在 O 北 B-LOC 京 E-LOC 上 O 班 O而“王小明去北京”這種含單字實體的句子就必須用S來標單字人名王 S-PER 小 I-PER 明 E-PER 去 O 北 B-LOC 京 E-LOC如果你拿到的是BIO格式可以用一段小腳本轉(zhuǎn)成BIOES但轉(zhuǎn)換邏輯要小心處理“連續(xù)實體緊挨著”的情況BIO里連續(xù)兩個實體“北京上?!钡臉俗⑹恰癇-LOC I-LOC B-LOC I-LOC”轉(zhuǎn)BIOES時不能只看實體首尾必須判斷上一個字的標簽是B還是I否則會把“北京上”誤標成一個地名。這個轉(zhuǎn)換函數(shù)建議寫完以后用“北京市朝陽區(qū)”這種帶連續(xù)實體的句子手動驗一遍。3.3 數(shù)據(jù)讀取與標簽對齊數(shù)據(jù)格式讀完下一步是把文本轉(zhuǎn)成模型能吃的張量。這一步是整個項目里最容易出錯的地方核心原因是BERT的tokenizer給每個漢字可能拆成多個subword片段而你的標注是按“字”給的兩者對不上。我先展示一個最常見的數(shù)據(jù)讀取代碼然后解釋為什么要注意對齊# -*- coding: utf-8 -*- from transformers import BertTokenizer import torch MAX_LEN 128 def load_data(file_path): sentences, labels [], [] with open(file_path, r, encodingutf-8) as f: sentence, label [], [] for line in f: line line.strip() if line : if sentence: sentences.append(sentence.copy()) labels.append(label.copy()) sentence, label [], [] else: parts line.split() # 文件可能是“字 空格 標簽”也可能用制表符 sentence.append(parts[0]) label.append(parts[-1] if len(parts) 1 else O) return sentences, labels class NERDataset(torch.utils.data.Dataset): def __init__(self, sentences, labels, tokenizer, label2id, max_len128): self.examples [] for sent, tag in zip(sentences, labels): # 關(guān)鍵點設置return_offsets_mappingTrue, 才能拿到每個subword對應原文字符的映射 encoding tokenizer( sent, is_split_into_wordsTrue, max_lengthmax_len, truncationTrue, paddingmax_length, return_tensorspt, return_offsets_mappingTrue, ) # 標簽對齊到subword word_ids encoding.word_ids() aligned_label [] prev_word None for word_id in word_ids: if word_id is None: aligned_label.append(-100) # 特殊token不參與loss計算 elif word_id ! prev_word: aligned_label.append(label2id[tag[word_id]]) else: # 同一個word被拆成多個subword沿用第一個標簽 aligned_label.append(label2id[tag[word_id]]) prev_word word_id self.examples.append({ input_ids: encoding[input_ids].squeeze(), attention_mask: encoding[attention_mask].squeeze(), labels: torch.tensor(aligned_label, dtypetorch.long), }) def __len__(self): return len(self.examples) def __getitem__(self, idx): return self.examples[idx]這段代碼的關(guān)鍵在標簽對齊邏輯。word_ids()會返回每個token對應的原始字索引None表示CLS、SEP、PAD這些特殊token。遇到特殊token時我把標簽設為-100這樣在計算交叉熵損失的時候PyTorch會自動忽略-100所在的位置。遇到同一個字被拆成多個subword的情況后續(xù)subword直接用第一個subword的標簽保證標簽不串位。注意上面的代碼里有一個容易埋雷的小地方——tokenizer的is_split_into_wordsTrue參數(shù)。如果不把句子傳成詞列表而是直接傳字符串BERT會按自己的規(guī)則重新分詞原本的“字-標簽”對應關(guān)系就被打亂了。我在剛開始做項目時就在這里吃過虧換句話說是“標簽對不上”里最高頻的原因。數(shù)據(jù)集做好后按照8:1:1的比例劃分訓練集、驗證集和測試集。劃分的時候要按句子為單位隨機打亂不能按字符打亂否則會造成同一句子的標簽泄漏到不同集合里評估結(jié)果會虛高。4. 訓練參數(shù)這樣調(diào)batch size、max_len 與學習率的三方權(quán)衡4.1 一套默認能跑的參數(shù)模板模型搭建和訓練循環(huán)看起來代碼量不小但結(jié)構(gòu)是固定的。下面是一段可以直接套用的訓練核心代碼也是大多數(shù)NER項目的通用寫法# -*- coding: utf-8 -*- import torch from torch.utils.data import DataLoader from transformers import BertModel, BertTokenizer, AdamW, get_linear_schedule_with_warmup import torch.nn as nn class BertBiLSTMCRF(nn.Module): def __init__(self, bert_path, num_labels, lstm_hidden256): super().__init__() self.bert BertModel.from_pretrained(bert_path) self.bilstm nn.LSTM( input_sizeself.bert.config.hidden_size, hidden_sizelstm_hidden, num_layers1, bidirectionalTrue, batch_firstTrue, ) self.fc nn.Linear(lstm_hidden * 2, num_labels) self.crf nn.CRF(num_labels) # 如果使用pytorch-crf庫 def forward(self, input_ids, attention_mask, labelsNone): bert_out self.bert(input_idsinput_ids, attention_maskattention_mask) sequence_output bert_out.last_hidden_state lstm_out, _ self.bilstm(sequence_output) emissions self.fc(lstm_out) if labels is not None: loss -self.crf(emissions, labels, maskattention_mask.bool()) return loss else: return self.crf.decode(emissions, maskattention_mask.bool())這段代碼的層次關(guān)系很清晰BERT的輸出維度是768BiLSTM的hidden_size設為256雙向拼接后是512維再通過全連接層映射到標簽數(shù)量。注意CRF層直接放在了模型內(nèi)部loss計算時取負對數(shù)似然解碼時直接調(diào)用decode方法。如果你用的不是pytorch-crf庫也可以手寫維特比算法但既然有成熟的庫我建議直接用pip install pytorch-crf裝上省時又不愛出錯。提示上面對CRF的調(diào)用基于pytorch-crf這個庫。如果你拿到手的zip里是自己實現(xiàn)的手寫CRF類注意檢查它的decode是否接收了mask參數(shù)有些舊版實現(xiàn)不接收mask在padding部分會出現(xiàn)幻覺標簽這類問題特別隱蔽。4.2 學習率與BERT層凍結(jié)微調(diào)的重心應該放在哪訓練參數(shù)的首選清單看這張表參數(shù)推薦值說明batch_size16GPU/ 8CPU顯存不夠就減半不要硬扛learning_rateBERT2e-5微調(diào)預訓練模型的標準學習率太大容易災難性遺忘learning_rateBiLSTMCRF1e-3下游隨機初始化的層需要用更大的學習率max_len128超過128的真實句子占少數(shù)長了切掉短了補齊epochs20-30存best模型不需要訓滿全部warmup_ratio0.1前10%的step線性升學習率穩(wěn)定BERT微調(diào)有關(guān)鍵設計是分組學習率。BERT層用2e-5BiLSTM和CRF這些隨機初始化的層用1e-3這兩組參數(shù)放進同一個優(yōu)化器卻要用不同學習率。常規(guī)做法是在構(gòu)造optimizer時傳一個參數(shù)組列表# 構(gòu)造分組參數(shù)BERT層和下游層用不同學習率 optimizer_grouped_parameters [ {params: [p for n, p in model.named_parameters() if bert in n], lr: 2e-5}, {params: [p for n, p in model.named_parameters() if bert not in n], lr: 1e-3}, ] optimizer AdamW(optimizer_grouped_parameters, weight_decay0.01)還有一個常被忽略的選項是“凍結(jié)BERT的一部分層”。前幾層Transformer學習到的是通用字面特征對領(lǐng)域遷移幫助不大微調(diào)預算有限的話把第1到第8層的參數(shù)requires_gradFalse只訓練后幾層和下游結(jié)構(gòu)往往能省一半顯存、速度提升30%以上效果只掉零點幾個點。第一次把項目跑通時我不建議凍結(jié)先全量訓練拿到一個基線成績再說。4.3 訓練過程的監(jiān)控指標直接點說光看loss是不夠的。BERTBiLSTMCRF這類模型在訓練前期loss下降很快到了第3個epoch以后loss就“玄學”了震蕩到面無波瀾但實體F1還在漲。原因是CRF的loss分母是所有可能路徑的分數(shù)和這個值天然很大loss雖然不再好看但序列約束正在慢慢起作用。正確的監(jiān)控方式是每個epoch結(jié)束后在驗證集上計算實體級F1而不是整個標簽級準確率。標簽級準確率會被“O”標簽主導模型全部預測成O也能有接近80%的準確率數(shù)值毫無意義。我習慣在每個epoch跑一遍from seqeval.metrics import classification_report, f1_score def evaluate(model, dataloader, id2label): model.eval() all_true, all_pred [], [] with torch.no_grad(): for batch in dataloader: input_ids batch[input_ids].to(device) attention_mask batch[attention_mask].to(device) true_labels batch[labels].numpy() pred model(input_ids, attention_mask) # 去掉特殊token和padding只看實際標簽 for b_idx, word_idx in enumerate(true_labels): true_seq, pred_seq [], [] for i in range(len(word_idx)): if word_idx[i] ! -100: true_seq.append(id2label[word_idx[i]]) pred_seq.append(id2label[pred[b_idx][i]]) all_true.append(true_seq) all_pred.append(pred_seq) print(classification_report(all_true, all_pred, digits4)) return f1_score(all_true, all_pred)注意這里有兩個細節(jié)一是all_true和all_pred里存的是每句話的標簽序列不是單個樣本的平鋪數(shù)組因為seqeval要求對每個句子分別計算實體匹配二是跑模型前先model.eval()再包torch.no_grad()否則顯存會被推理時保存的梯度撐爆。如果你希望訓練中途自動存最好的模型可以維護一個best_f1變量每輪結(jié)束后對比一次超過就torch.save(model.state_dict(), best_model.bin)??窟@個機制我?guī)缀鯊牟恍枰獮椤癳poch設多少”糾結(jié)。5. 避坑記錄中文NER最常見的四個翻車現(xiàn)場5.1 標簽錯位預測結(jié)果全是對的但實體全都湊不齊現(xiàn)象模型在訓練集上loss正常下降驗證集F1卻一直徘徊在20分以下。把預測結(jié)果打印出來發(fā)現(xiàn)每個字的標簽看起來都有道理但組合成的實體要么缺頭、要么缺尾甚至有“I-PER”開頭的序列。原因這就是“標簽對齊”翻車了。最常見的情況是is_split_into_words參數(shù)漏傳tokenizer把“北京”這種連續(xù)字符當成了一個詞導致word_ids映射錯位原本“北B-LOC 京I-LOC”的標簽被錯誤地跟BERT的piece一一對應整個序列往后錯一位。還有一個變體是用了return_offsets_mappingTrue卻完全沒用它等于白拿映射做裝飾。解決在數(shù)據(jù)讀取階段把encoding[word_ids()]打印出來對照原始句子人工檢查前3條樣本??吹絒None, 0, 1, 1, 2, None]這種結(jié)構(gòu)就該意識到第1和第2號字被合并成了同一個word。標簽對齊那一段代碼不要直接復制要逐行理解后敲一遍。5.2 顯存OOM一跑就爆batch減半還是爆現(xiàn)象顯存8G的卡batch_size設16直接OOM改成8還在OOM最后改到2才勉強跑起來速度又慢得讓人想放棄。原因BERT本身占用不小尤其是max_len設成512時attention矩陣是平方級增長。8G顯存下batch_size16、max_len512幾乎是必爆配置。另外還有兩個隱形兇手一是paddingmax_length把短句也全補齊到128長度浪費大量顯存二是訓練時沒有設置torch.cuda.empty_cache()碎片累積偶爾也會頂爆顯存。解決把max_len降到128batch_size先設8短句padding策略臨時改成paddingTrue讓每個batch內(nèi)部對齊不全局補齊。如果想提速可以嘗試在模型里用gradient_accumulation_steps2相當于batch_size16但顯存占用只有8。注意梯度累積時loss要除以累積步數(shù)再回傳。5.3 預訓練模型下載失敗每次跑到一半就卡住現(xiàn)象第一次運行BertModel.from_pretrained(bert-base-chinese)進度條走到99%就超時或者直接報ConnectionError。重試幾次大概率仍失敗偶爾成功一次又會發(fā)現(xiàn)下載不完整。原因從HuggingFace官方源下載連接不穩(wěn)定文件接近400M中斷后緩存里的臨時文件會把后續(xù)下載也污染掉。這個問題的根源是網(wǎng)絡環(huán)境跟代碼沒有任何關(guān)系。解決換鏡像源下載在運行代碼前先執(zhí)行export HF_ENDPOINThttps://hf-mirror.comWindows在命令行里用set HF_ENDPOINThttps://hf-mirror.compycharm需要重啟kernel讓環(huán)境變量生效。如果鏡像也出問題先手動把模型文件下載到本地目錄然后在代碼里指定本地路徑model BertModel.from_pretrained(./chinese_bert_wwm_ext_pytorch/) tokenizer BertTokenizer.from_pretrained(./chinese_bert_wwm_ext_pytorch/)用本地路徑加載時目錄下面至少要包含config.json、pytorch_model.bin、vocab.txt三個文件缺一不可。這也是你從別人那里拷來預訓練模型時最愛踩的坑——他們給你的是一個壓縮包你解壓后發(fā)現(xiàn)缺了vocab.txt代碼跑不了一點。5.4 每個類別的F1差距離譜O標簽主導真實實體幾乎被淹沒現(xiàn)象訓練20個epoch驗證集標簽準確率96%但entity-level的F1只有55。翻看classification_report發(fā)現(xiàn)模型把幾乎所有token都預測成了O。原因數(shù)據(jù)里實體占比太少。一個典型的法律文書里“當事人”段落人名集中但全文正文大量是“O”標簽如果按句子隨機劃分數(shù)據(jù)集可能出現(xiàn)實體稀疏到?jīng)]法學的局面。更深層的原因是類別不均衡在序列標注里被滾動放大了O標簽在每個位置都成為超高先驗概率。解決這個現(xiàn)象要從數(shù)據(jù)配比入手。先把實體密度實體字符數(shù)/總字符數(shù)打印出來如果低于10%要考慮換數(shù)據(jù)源或調(diào)整驗證集劃分方式。其次可以在損失函數(shù)里給非O標簽更大的權(quán)重但我直接說結(jié)果——調(diào)權(quán)重只能提升1-2個點治標不治本。更正經(jīng)的辦法是引入真實實體詞典做注入或者在預測階段限制維特比解碼器禁止出現(xiàn)I開頭和孤立的E標簽。用代碼實現(xiàn)的話前者是在訓練前標記詞典命中詞的位置并替換那些位置的loss權(quán)重后者是自定義CRF約束條件普通項目用不到那么深。6. 從訓練到推理把模型接進真實文本的批量預測鏈路6.1 加載權(quán)重做單句預測訓練結(jié)束后best_model.bin就是全部成果。加載它做推理時最容易被坑的一點是必須用和訓練時完全一樣的tokenizer配置和標簽映射表。下面這段代碼是我的標準推理模板# -*- coding: utf-8 -*- from transformers import BertTokenizer import torch def predict_single(text, model, tokenizer, id2label, max_len128): model.eval() # 逐字拆成列表和訓練時的is_split_into_words保持完全一致 chars list(text) encoding tokenizer( chars, is_split_into_wordsTrue, max_lengthmax_len, truncationTrue, return_tensorspt, ) with torch.no_grad(): pred_ids model(encoding[input_ids], encoding[attention_mask])[0] # pred_ids是token級別的需要過濾掉特殊token再映射回原文 word_ids encoding.word_ids() entities [] current_entity None for token_id, word_id in enumerate(word_ids): if word_id is None: continue label id2label[pred_ids[token_id]] char chars[word_id] if label.startswith(B-): if current_entity is not None: entities.append(current_entity) current_entity {text: char, label: label[2:], start: word_id, end: word_id} elif label.startswith(I-) and current_entity is not None and current_entity[label] label[2:]: current_entity[text] char current_entity[end] word_id elif label.startswith(E-) and current_entity is not None and current_entity[label] label[2:]: current_entity[text] char current_entity[end] word_id entities.append(current_entity) current_entity None else: if current_entity is not None: entities.append(current_entity) current_entity None if current_entity is not None: entities.append(current_entity) # 去重避免S和B-E并存時重復輸出 return {text: text, entities: entities}這段推理邏輯最核心的地方在于按B-、I-、E-的標簽順序來拼裝實體。注意幾個邊界條件遇到O必須立刻結(jié)束當前實體遇到新實體緊挨著舊實體比如一個B-PER后面直接跟一個B-LOC要先把舊實體落盤再開新實體。如果你的標簽體系是BIO而不是BIOES格式判斷邏輯要相應簡化——但要小心“I實體跨界”的問題也就是I-PER后面接I-LOC這種情況只能靠CRF在訓練時從數(shù)據(jù)里學到轉(zhuǎn)移懲罰推理代碼里沒法徹底兜底。6.2 把實體序列映射回原文字符位置訓練時的tokenizer給定的是一個list輸出predict_single里的start/end已經(jīng)是原始字符下標了。但如果你想對一整段長文本做批量識別先切句再逐句推理必須記錄每個句子在原段落里的偏移量否則所有實體的start/end都是從0開始的。# 簡單的切句與偏移量對齊策略 import re def segment_with_offset(text): segments [] offset 0 for sent in re.split(r([。]), text): if not sent.strip(): continue segments.append((sent, offset)) offset len(sent) return segments def predict_long_text(text, model, tokenizer, id2label): result [] for sent, offset in segment_with_offset(text): pred predict_single(sent, model, tokenizer, id2label) for ent in pred[entities]: result.append({ text: ent[text], label: ent[label], start: ent[start] offset, end: ent[end] offset, }) return result這個方案只是按標點切句如果你處理的文本是PDF抽取出來的注意整段文本因為換行符被切碎的問題——遇到換行符時先做拼接再切句。還有offset的累加邏輯必須基于原始字符串的字符數(shù)不能基于去空格后的文本否則最終位置全部錯位。6.3 用測試集衡量真實召回最后一件事不是寫代碼而是用你的測試集做一次全量推理并看一眼錯誤樣例。我見過太多人訓練完只看訓練集F1這一看不要緊上線發(fā)現(xiàn)真實文本里大量實體漏檢。正確的姿勢是把測試集的預測結(jié)果和真實標簽逐句打印出來對照閱讀漏檢的句子大多長什么樣是實體長度普遍超過10個字還是大量嵌套結(jié)構(gòu)誤報的實體集中在哪幾個類別比如把“華為”預測成PER還是ORG模型在短句上的表現(xiàn)和長句上的差異是否巨大對于長實體識別率低的現(xiàn)象最簡單的補救是提高max_len上限到192或256因為BERT在長文本上的注意力分配會稀釋尾部的字符特征。如果仍然無法根治就要考慮對實體做重疊窗口推理——把長文本切出部分重疊的窗口分別預測再合并結(jié)果合并時以重疊區(qū)域的投票結(jié)果為準。我自己的習慣是每個實驗跑完后都把最好的checkpoint單獨保存一份把對應的tokenizer和label映射表打個zip放在旁邊日期寫清楚。因為幾周后再回來你大概率會忘記自己的label2id順序是什么忘掉的后果就是推理結(jié)果整個亂了套而且很難定位。保留好一份完整的“模型配置數(shù)據(jù)劃分seed”是這個方向里最實在的后悔藥。這個技術(shù)??雌饋砗苤氐珡臄?shù)據(jù)準備好到訓出一個能用的模型通常只需要一個晚上。你踩過的坑會讓下一個跑這個項目的人少走很多彎路希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
中文字幕丝袜国产第一页不卡| 国产精品自在线发布| 女人18精品一区二区三区| 无码人妻一区二区一牛影视| 亚洲欧洲另类| 婷婷深爱五月| 日韩AV熟女乱伦| 亚州一区二区成人片免费| 国产精品视频内谢女人| 欧美欧美少妇| 久久久啊啊啊| 亚洲成人AB| 天天操熟妇| 国产精品视频在线播放| 欧美 亚洲 综合 制服 另类| 久久久工口| 激情色播| 啊啊啊com| 日本三级久| 极品五月天噜噜| 久久久爆乳翘臀一线天伦理视频| 日日爽夜夜爽| 欧美躁死她一区二区| 日韩成人精品中文字幕| 久久久中文| 九九热精品在线| 免费一级视频特黄色大片| 欧美色综合影院| 五月丁香网站| 中国女人内射6XXXXX| 国产一区二区三三视频| 另类小说综合网| 绯色一区二区三区不卡少妇 | 青青草在线视频人人想人人上| 亚洲第一页色| 夜夜久久| 麻豆天天躁天天揉揉AV| 另类图片天天影视| 神马久久久久| 日韩黄片影院| 激情干在线| 婷婷色色网| 一区二区三区精品黑丝白丝酒店对鸡 | 在线综合色| 午夜福利视频在线一区| 婷婷五月成人| 97精品综合久久网| 欧美桃色网| 久久婷婷一区| se吧提供国产乱老熟视频胖女人| 日逼国产| 9超碰免费| 自拍啪啪视频| 综合av社区| 国产乱伦一二三区| aaa淫乱视频| 欧美色另类| 中国农村熟妇毛片视频| 在线国产一区二区av| 无码免费一区二区三区啪啪| 天天α片| 蜜臀无码视频在线观看| 欧美一级黄片免费播放| 久久久久久久久久久999| 熟妇人妻丰满久久久久久久无码| 午夜啪| 岛国小电影| 欧美 熟女 日韩| 综合国产97| baiduhicn.com。| 91免费看一区二区三区| 色妹子A V| 蜜臀久久久99久久久久| 五月天综合| 午夜福利一区二区三区四区五区色婷婷| 免费的很黄很污的全部视频| 日本日日色视频| 国产精品爆乳懂色蜜乳| 超碰国产情侣自拍网| 超碰地址久久| 毛片17S| 伊人国产成人av网站| 人妻丝袜无 码视频专区| 性色高清..……| 波多野结衣先锋影音| 色香伊人| 久久98| 视频在线97| 国内精品久久久久影院亚洲| henhen91| 欧美一二三区四五区| 热99这里有精品综合久久| 一色网男人的天堂| 久久色网| 久操九九九九| 2018天天日天天日| 东北女人操比视频| 日韩性爱电影一区| 亚欧操逼片在线观看 | 伊人网高清| 操操啪| 久久精品超碰| 啊啊啊用力在线观看| 黄骗免费网站| 亚洲精品一区二区三区新线路| 中国一级αV| 插老姨肥穴| 国产精品毛片?v一区二区三区| 伊人991| 国产一区二区在线电影| 91丝袜美女视频| 国产馆极品诱惑| 超碰日韩人妻| 日本精品久久久久久久| 免费视频a级毛片免费视频| 欧美成97爱| 防屏蔽在线视频| 一区在线精品中文字幕| 亚洲在钱| 97香焦色区| 人人贴人人摸| 亚洲色香| 大香交伊人网| 特级毛片特黄久久免费看| 超碰色美女| 美女啊啊啊啊啊啊啊| 日本色色视频网站| 久久禁| 91久久久久免| 高清国产成人无码| 大香蕉2017| 大香蕉伊利av| 中日高清无码操逼视频| 激情综合网激情综合| 亚洲综合射| 五月丁香激情综合网| 肏逼视频日本| 极品少妇久久久| 欧美日韩人人早| 天天插天天操| 99久久久久久亚洲精品不卡| 精品对白久久不卡| 欧美日韩人妻婷婷一区| 伊人AAA| 欧美人妻一区| 午夜福利1区2区3区| 国语精品对白| 另类专区加勒比| 嗯嗯啊在线视频| 久久久久久国产手机AV| 青草综合| 在线播放欧洲免费av| 色鬼在线综合| 六月丁香网| 欧美精品99久久久**| 97超碰色色| 60秒免费小视频| 久久久艹艹艹| 久久九色| 国产操逼逼网| 内射夫妻三片| 欧美日韩亚洲天堂| 国产精品3| 久久久亚洲精品电影免费看| 亚卅熟女乱色| 少妇无码av专区线| 99久久精品欧美国产| 亚洲日韩东京热一区| 嗯嗯嗯嗯啊啊啊好紧好大| 中文字幕精品资源在线| 免费中文在线| 日日操丁香五月天| 日韩免费三级黄片电影| 日本在线观看网址| 少妇熟女一区二区三区| 骚妻少妇精品性色无码四色A V| 啊啊啊啊在线观看网址| 欧洲无码一区二区| 国产精品小视频一区二区三区| 亚洲精品a人片在线观看视| 久久国产熟女影院| 日本操逼aaaaa| 91欧美色| 97超级色碰碰| 任你干在线视频| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 五月天婷婷色色| 亚洲女毛多水多21P| av一区二区三区四区| 91色图| 深夜国产福利| 97极品无码| 91白虎| 国产精品另类| 国产自偷| 91在线丝袜| 亚洲一区制服诱惑| 欧美一品道| 久神马| 国产精品视频播放| 91亚洲不卡一区| 亚洲天堂中文字幕无码男同| 性吧在线视频| 人妻在线臀日韩| 五月天黄色av| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 久久中出| 激情小说亚洲色图| WWW.操逼.COM| 啊啊啊在线观看| 婷婷丁香激情| 97这里只有精品| 亚洲日韩国产精品| 人人贴人人摸| 搡老人老9丨女老熟人| 99性爱在线观看| 人人做天天爱| 一区二区影院| 亚洲乱码尤物193YW| 欧美一区二区三区日韩| 久久婷婷五月天| 久久性爱视频| 国产精品suv一区| 爱妻综合网| 久9爱精品| 啊啊啊水好多| 日本中文熟女视频| 99re热有精品视频国产| 大香蕉免费乱伦视频| 日本精品一区二区中文字幕| 99热综合| 亚洲精品色| 99国产精品久久久在线播放| 欧美激情亚洲情色| 精品美女少妇一区二区| 亚洲加勒比久久日本道| 精品亚洲一区在线观看| 久久亚洲AV无码专区国产精品| 日本色色色色色视频| 在线观看精品国产免费| 99热精品在线观看| 91爰爱欧美| 丰满熟女人妻一区二区三五十一路| 久久人妻熟女一区二区| 国产极品精品美女视频| 最新日韩黄片| 乱日视频| 老女人91| 一级二级在线观看| 日韩欧美一级特黄大片| 日韩三级一区| 久久久久久久久久久999| 99re6在线视频精品免费完整版安卓版| 欧美三四五区| 一级岛国大片| 红杏大香蕉| 亚洲熟女乱熟乱熟妇综合网二区| 久草综合网| 国产精品爆乳懂色蜜乳| 日韩av一级黄片| 天天综合网国产| 欧美少妇性乱| 超碰色97| 国产特级毛片AAAAAA高潮流水| 天天干人妇| 亚洲人精品久久久喷水| 九九九不卡| .精品人妻一区二区三| 免費黃色視頻觀看一| 青青草在线成人视频| 91在线/欧洲| 亚洲色交| 亚洲精品国产精品乱码不99| 宗合情欲网| 快播久久人人aV| 亚洲伊人久久综合97| 亚洲二区精品在线观看| 亚洲男人的天堂V| WWW美腿丝袜香蕉中文| 91综合色噜噜| 精品一区二区三区蜜桃臀赵总 | 欧美伊人电影| 天堂а√在线最新版在线| 婷婷五月成人| 在线电影亚洲色图| 先锋激情∨在线视频播放| 五月天综合| 国产欧美黑人丰满在线| 欧 美 自 拍 偷 拍| 东京日日夜夜| 208天天久久九九九| 天天做天天爱夜夜爽毛片试看| 思思热免费视频观看| 91久久久视| 97超碰色情| 亚洲精品性爱片| 超碰久久中文| 殴美性天天| 国产精品成人无码av无码免费| 久久综合中文国产| 91天美| 自拍偷拍2025在线观看| 中文字幕文字幕无码一区二区三区电影99| 波多野结衣之双飞调教在线播放| 大香蕉男女超碰精品在线| 欧美中字不卡| 国产黄片精品在线| 高潮嗯啊性感美女久久久| 99热在线播放| 丁香五月社区| 97网色| 99久久99九九99九九九| 天天插天天操天天摸天天射天天看| 韩国三级一线观看久| 人妻久久久久久久久久久久久久久 | 超碰色中文| 91美女小视频| 婷婷亚洲综合| 欧美BT 亚洲色图| 亚欧高清在线| 91在线一起| 在线观看岛国有码| 91影视亚洲| 多毛小伙内射老太婆| 国产极品久久久| 日韩操啪| 大香蕉色网| 日本乱人伦片中文三区| 亚洲综合色男人网| 另类图片天天影视| 久久欧美按摩999| 加勒比综合| 亚洲精品一区中文字幕乱码| 青青草中文字幕| 嗯嗯啊操我| 色97干| 欧美日韩国产在线| 香蕉综合网| 欧美性猛交美女自慰91| 日本久久女同性恋视频| 婷婷综合在线观看| 黄色大片免费在线| 熟女精品一区二区在线观看| 国产日产精品久久快鸭的功能介绍| 欧美人妻色| 欧美性爱91| 国产精品久久久久久久久久久久久久久久 | 国产精品在线一区二区| 爆操无码| 欧美日韩狠狠爱| 婷婷在线播放| 操逼视频国产无套| 亚洲熟女一区| 国模少妇一区二区三区| 亚洲色图A| 麻豆天美国美国产| 国产一级137片内射麻豆| 人妻少妇精品久久久| 少妇高潮对白在线观看| 91高清欧美| 能看的av| 日韩熟女操逼| 中文字幕精品亚洲熟女| 熟女人妻久久中文字幕一二区| 亚洲九九九| 超碰 av 女人天堂| 亚洲熟女中文字幕在线| 麻豆久久一区二区三区| 国产女人9999| 国内毛片无码一级毛片| 久久久久久99AV无码免费网站| A啊啊在线观看| 国产精品嫩草久久久久| 综合少妇网| 中文字幕精品人妻丝袜| 日本性爱不卡视频| 91国产丝袜白虎| 免费农村成人少妇人妻Aa一区二区视频| 富女玩鸭子一级毛片| 欧美午夜视频| 天天干,天天日| 91色色网站| 国产精品久久久999| 色色激情| 性爱免费视频成人| 欧美加勒比| 99久热精品99re6热| 在线播放中文字幕| 蜜乳Av成人片网站| sewuyueav| www.91欧美| 五月丁香六月婷综合成人综合| 亚洲av噜噜噜噜噜噜| 亚洲性综合| 日本久操视频| 黄色欧美性爱视频| 欧美高清18A片| 夫妻AV网站| 国内91熟女人妻丝袜天天精品视频在线| WWW啪啪的com| 久久女人| 肉丝中文无码高清| 欧美成不卡网| 国产九月婷婷| 日韩成人大片在线观看| 免费一级性爱久久| 后入式免费视频| 91无码人妻| 极品粉嫩一区二区| 99热这里是精品| av最新免费中文字幕| 97精品久久| 99在线精品观看视频中文| 久草新免费| 欧美久久伊人| 日韩成人在线性爱视频| 免费精品国偷自产在线在线 | 秋霞一级A片黄色视频| 91美女精品| 中文字幕人乱码中文字的预防方法 | 蜜臀久久99'精品久久久| 真实高潮91| 91狠狠综合久久| 东北丰满熟女国产一区| 蜜臀久久99精品久久久久久无删减| 天天在线91| 97超碰久久色| 国产传媒1234区| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 久久婷婷电影网| 3P丝袜熟女 色综合| 97爱欧美| 精品国产网站| AV色天香在线| 久久久久久午夜男人的天堂| 欧美黄色片AAAAA| 中文字幕一二区二三区人妻专区| 91精品人妻偷情| 91日韩| 亚洲国产天堂| 麻豆熟妇乱妇熟色A片在线看| 本道在线| 91精品婷婷国产综合久久| 粉嫩AV输入| 亚洲熟女综合| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 91精品少妇搡搡搡| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 啊啊啊水好多| 青青草原av| 51一区二区三区| 青青草男人天堂| 久久999久| 蜜臀99999| 91天堂视频| 青青草手机在线免费观看| 国产专区路线| 亚码人妻| 搡老女人老91妇女熟女| 99国产精品自在自在| 九9热伊人| 欧洲精品久久| 激情文学亚洲| 欧美日韩制服| 国产传媒av天美传媒在线| 九九九九国产| 精品国模无码| 91碰超| 人人摸人人干人人拍97| av资源在线播放天堂| 中文字幕在线高清男人的天堂| 欧美黄色大香蕉一区二区| 蜜乳av首页| 婷婷五月综合激情| 91九色精品熟女内射| 91精品伊人久久久大香线蕉91| 自慰白浆在线观看| 亚洲午夜免费狠狠干| 亚洲情色五月天 | 无码久| 天堂涩涩| 精品美女少妇一区二区| 99久久99久久免费精品蜜臀| 欧美特大AA级黄片| 秋霞网—男女啪啪亚洲免费体验区 | 日韩一区二区高清在线观看的| 久久精品国产亚洲AV高级北京| 国产成人免费观看在线视频| 在线观看黄色电话| 五月丁香六月激情综合| 亚洲男人的天堂一区二区| 亚洲自拍欧美国产首页网曝| 清清草影| 清纯唯美亚洲另类| 国产91福利小视频在线观看| 日韩人妻有码免费视频| 日韩视频啪啪| 91oumei| 69精品人人人人| 台湾佬中文娱乐网久久久久久久久久com | 日韩免费大片一级播放| 日本中文字幕在线视频| 天天日日舔舔| 日产123区精品免费观看| 国产精品一区二区密臀| 国产亚洲深夜激情| 搡老熟女老女人老熟妇免费视频| 欧美大香蕉卡久久| 日本三级韩国三级美三级91| 欧美少妇色图| 亚洲一卡2卡3卡4卡乱码网站| 五月丁香激情综合| 久热大香蕉网站| 久久男人的天堂| 天天摸夜夜添无码小视频| a级成人毛片免费视频高清| 99精品无码| 91美女在线视频| 天天综合,91入口| 翔田千里爆乳巨臀无码| 午夜福利成人免费视频| 久久內射| 久久久一区二区三区四区五区| 天天摸夜夜添无码小视频| 五月天激情小说| 一区二区首页| 久久久极品| 欧美亚洲色图另类国产| 日本免费不卡二区| 天美久久久久| 免费自拍三级综合| 四虎影库国产精品免费| 极品美女嘿咻| 久久精品国产亚洲AV高清演员表| 色蜜AV| 国产欧美日产一区二区三区 - 国产欧美日 | 超碰国产精品无码| 91国产精品在线看| 久久国产精品视频| 看大黄色大片原件| 亚洲人精品久久久喷水| 校园春色第一页| 亚洲天堂人妻熟妇视频| 色第一页| 亚洲欧美成人网站AAA| 国内三级自拍小视频在线观看| 啊啊啊啊二区好大| 波多野结衣之双飞调教在线播放| 欧美色五月| 欧美色道啊| 大香蕉123| 麻豆熟妇乱妇熟色A片在线看 | 99久久这里只有精品| 超碰 欧美| 久久美女国产| 97精品一二区| 99热精品在线| av绯色| CCYY草草影院地址入口| 600国产精品视频| 色偷偷2020免费视频播放| 国产精品成人福利在线| 亚洲另类色图片| 东京热毛片177b2viP| 色情成人五月天| 国产97在线播放| 精品亚洲黄色片 国产精品导航一区二区| 国产又大又粗又长视频在线| 青娱乐淫乱1314| 久久日韩毛| 啊啊啊啊网站| 亚洲天堂中文字幕无码男同| 欧美激情视频一区二区| 9九九九九视频在线观看| 骚熟女AV网| 伊人热综合| 欧美男人的天堂| 欧美人妖内射| 人人操人人摸人人看人人干| 欧美狠狠弄| 亚洲高清视频在线免费观看| 亚洲无码久久久久久久| 无码抄逼网| 美女露胸露屁股| 久久久网站| 欲女人妻性色av| av毛片aaaaa免费看| 精品人妻av在线播放| 国产福利一区二| 91爰爱欧美| 国产精品一区二区校花| 一区二区三区色综合| 久久久久久AⅤ无码免费肉站| 国产白丝精品在线观看| 精品成人亚洲午夜电影| 黄页网站成人免费| 九九亚洲视频| 久久精品 六十路 熟女 欧美| 天天性射网| 啊啊啊啊啊啊啊啊啊在线观看| 超碰三级秋霞| 性色av蜜臀av色欲aV| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 亚洲se电影| 久久毛卡| 久久精品国产亚洲妲己影视| 人妻激情在线视频| 香一区二区三区| 久久婷婷伊人| 91free福利| 国产在线观看91精品一区| 欧美综合第一页| 久久精品72| 久久人人爽爽人人爽人人片αV| 精品无码一区二区三区色欲| 日本孕妇一区二区视频操逼免费看| 欧美性爱日韩性爱| 一级黄色性爱A级片| 秋霞鲁丝午夜无码一区二区三| 你操综合| 国产精品一区二区三区,亚洲综合| 思思视频免费看网站| 国产精品永久免费10000| 久久毛卡| 人人操天天爽| 韩国嫰模上门援交视频| WWW.操逼.COM| 爱射综合| 欧美中文综合| 熟女色图在线| 免费看A片毛毛片在线播| 久久精品超碰| 一区二区蜜臀| 国产女性无套 免费观看| 少妇被c 黄 免费观看| 欧美国产操逼| 丁香五月天婷婷姐| 国岛片视频| 中文字幕欧美丝袜07资源| 9长久久精品| 91大学精品激情戏| 天天操夜夜操狠很操| 欧美性暴力猛交| 精品一区二区麻豆| 91超级碰碰| 日韩操逼HD| 欧美色图第一页| 亚洲色性情三级| 色99视频| 中文字幕精品日韩中文字幕| jazzjazz国产精品麻豆| 欧亚日本情色| 青春草A| 天天综合精品| 亚洲五码一区二区三区| 日韩三级伦理中文字幕| 成人青青草原伊人| 久久爱超碰网| 亚洲天堂中文字幕无码男同| 亚洲欧美国产成人综合不卡| 无码操逼视频一下| 91丨人妻丨国产丨丝袜| 久久久久九九九九九| 日少妇亚洲版| 久久婷婷色综合一区二区三区| 国产福利影视| 久久精品久久九九精品| 视频一区二区免费在线| 日韩综合97p| 丰满人妻一区| 桃色六月天| 中文字幕 码 自拍 视频 区| 亚洲 欧美 手机在线观看| 100啪啪视频大全| 综合久久97| 色路综合| 久草电影网| 日韩人妻丝袜美腿中文| 神马久久网| 爱欲AV| 日本美女性生活久久久久久久| 久草五月| 99久久九九| 天天干天天狼在线视频| 欧美视频一区二区在线| 久久久一区二区三区三州| 免费AV中文网在线观看| 五月婷亚洲精品天堂| 亚洲欧美在线丝袜| 久久久啊啊啊| 亚洲综合嫩| 亚洲天堂少妇| 久久精品无码熟妇一区二区三区视频导航| 加勒比伊人综合| 91网站18在线| 97精品视频网站| 日本不卡二三区| 青青草白白色| 美女主播色欲91抠b在线播放| 天天摸天天插天天日| 91亚洲黑人| 亚洲成人av色网| 激情网五月天| 女优视频第10页| 日韩人妻资源在线看| 大香樵伊人网| 精品久久久久久亚洲| 日本大片日本一区二区免费高清 | 老鸭窝成人| 91美女国产在线| 久久亚洲日韩国产欧| 亚洲情色综合网| 亚洲视频一二区| 国产丰满少妇久久久精品影院| 久久精品72| 人妻在线大香蕉| 五十路熟女工口| 中文字幕在线2| 成人精品欧洲亚洲| www.成人无码| 大香蕉中文201| 日韩成人人妻网站| 台湾佬大香蕉| 97aiaiai| 日韩精品色呦呦| 久久久久亚洲AV无码专区少妇| 国产不良强奸视频免费看| 日韩图区 偷拍| 日本高清_区二区三区| 少妇滛荡视频| 婷婷五月天影院| 亚洲综合激情五月久久| 91AV老熟女视频| 青久操| 热热色国产一二区AV| 成人AV在线网站| 精品亚洲天堂| 国产三级资源在线观看| 乱伦1色页| 97在线精品| 四虎影库国产精品免费| 久久国产精品91| 欧美亚洲美少妇一区二区| 97久久国产亚洲精品超碰热| 丰满人妻一区二区三区四区| 国产一级高清免费观看| 3PAV乱伦视频| 亚洲中文国际强奸字幕| 天天色播| 97精品久久久久久久| 国产精品久久久久久夜夜夜夜| 超碰97综合在线| 日语五十路和六十路亚洲国产精品| 亚洲欧洲日韩天堂av| 亚洲啪啪性视频| 日韩99999色| 夜夜操夜夜高潮夜夜爽国产精品区| 91色亚洲| 国产成人拍国产亚洲精品| 欧美黑人精品一区二区| 先锋精品av色鲁| 日韩精品9999| 啊啊啊啊嗯嗯在线久久久| 亚洲国产精品无石码久久| 尤物黄色在线观看网站| 欧美日韩91| 嗯嗯,好大,好爽,好骚 | 岛国在线免费视频| 欧美黄片视频在线观看免费 | 青青草久久一区网| 日韩综合色网| 激情小说图片亚洲首页| 亚洲熟女中文字幕在线| juliaann精品熟女一区| 超碰97资源网亚洲| 亚洲无码精品AV久久久| 国产免费永久精品无码| 亚洲av热热色| 快灬快灬 一下爽蜜桃在线观看| 久久久久亚洲三级电影| 激情小说五月天| 日本精品性生活久久久| 91熟女丨老女人| 久久亚洲AV无码专区国产精品 | 超碰激情808| 欧美三级偷拍| 国产成人综合在线播放| 爱射综合| 亚洲双插| 自怕偷自怕亚洲精品| 亚洲色图激情小说| 欧美在线干| 成人乱人伦一区二区| 熟妇熟女视频一区二区三区| 台湾佬中文娱乐网久久久久久久久久com| 精品人妻一区二区三区在| 色综合久久88色综合久久天天| 人人摸人人干| 欧美精品庄| 色青青久久影视| 超碰人妻中文在线| 欧美Ⅴ性爱| 99热这里只有精| 97超碰人操| 成 人片 黄色大片| 1956日韩精品| 亚洲精品欧洲色| 婷婷中文网| 大香蕉琪琪日本女优不卡| 人人操人人摸人人骑| 最新日韩黄片| 天天综合网~91综合网| 丰满美女一级毛片在线播放| 中文字幕国产精品1区| 97资源站国产精品| 中文字幕狠狠玩| 久神马| 中文精品一区二去| 国内黄色精品| 风月影院十八禁| 裸体美女免费看网站青草| 男人天堂最新手机版在线青青草| 亚洲人妻中文高清| 麻豆一区二区三区精品| 74成人在线| 熟妇女人妻呻吟久久AV| 粉嫩av在线| 亚洲一区深夜| 超碰人妻97| 免费观看有码高清视频| 91在线观看,天天综合| 免费一级欧美片片线观看| 91美女国产在线| 欧美人妻一区| 国产精品电| 无码视频黄色网战| 亚洲好色人妻| 日本片日本片祼观看网站在线看中文版网页在线看 | 综合免费无码中文| 91久久久老司机| 在线播放一级无码视频| 操淫穴亚洲五月丁香| 一本一道波多野毛片中文在线| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 欧美一级在线观看成人| 亚洲 日本 一 二 三| 热热色91| 久久超碰爱| 东京太热男人的天堂久久久| 亚洲色欲天天人妻无码系列专区| 精品大全99999| 日韩欧美国产高清视频| 疯操AV| 九九人人操| 亚洲激情视频| 人妻天天爽夜夜爽爽| 天天干天天舔| 超碰碰激情97+久| 黑人无码一区二区| 久久精品国产97欧美精品亚洲 | 日本一区不卡| 玖玖综合色| 波多野结衣被操50分钟免费视频| 黄总AV色图| 国产在线激情视频| 蜜臀无码一区二区| 人妻AV在线| 超碰97中文| 99re只有精品| 亚洲高清无码在线桃色| 久久久精品,3| 97天天爽| 免费αⅴ在线观看| 激情婷婷丁香网| 看日韩美女二区三区免费操逼视频 | 丁香五月综合| 人人搞人人插人人操| 搞中出视频在线观看| 国产操操日韩三级黄| 欧美黑人与女人91| 美女啊啊啊啊啊啊啊| 国产性爱在线视频一区二区| 婷婷久久久精品| 97超级久久强资源| 欧美亚洲色图另类国产| 日本ZZ高免费A级视频| 天天干2区3区| 视频国产精品未满十八禁止在线观看| 性高潮久久久久久久久久久| 97亚洲性爱| 亚洲日韩美女中文字幕乱| 国产激情在线| 精品无码久久久| 国产极品美女高潮无套在线观看 | 色综合久久av| 青青草公开在线免费不卡视频| 天天干2019| 成人自拍三级在线观看| 激情文学小说一区二区 | 97超碰磁| 中文字幕免费在线观看| 中文字幕91综合| 91精品无码人妻系列| 天天肏天天干| 大屁股熟女一区二区三区| 天天影视色香色欲| 国产精品999zyz| 国产精品噜噜噜日日日| 蜜屁Av| 亚洲高潮少妇| 啪啪啪精品视频| 天美传媒精品一区二区| 婷婷精品国产一区二区三区日韩| 91超级碰| 天天看天天日| 国产精品另类一区大香蕉| 久久久久久中文字幕中文字幕最新| 狠狠色噜噜狠狠狠狠狠色综合久久| 干少妇视频| 国产av色网| 69AV女优男人的天堂| 日韩中文字幕二区| 日本人妻伦在线中文字幕| 91精品导航| 日韩精品电影| 熟妇亚洲一区二区三区| av资源在线播放天堂| 国产成人无码啪| 久久久久久久97| 熟女久久久| 久久久av爱| 熟女突然公开看18禁影片| 手机看片91人妻| 另类小说欧美激情校园春色| 97欧美色综合| caopeng97人妻| 天天综合91在线| 人妻精品视频一区二区| 久久一区二区高清免费| 熟妇综合一区二区三区| 78精品| 天天日骚逼熟女| 亚欧美综合网。| 殴美综合色88| 欧美性猛交美女自慰91| 亚欧国产无码精品在线| 欧美一级黄片视频在线| 中文操逼字幕| 91精品老女人| 精品少妇99| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 人人艹亚洲| 被窝影院午夜看片无码| 精品人妻一区二区免费蜜桃视频| 美女十八禁| 91亚.色| 男人的天堂无码| 亚洲欧美爆| 天天影视网综合少妇| 亚洲五月婷| 黄片免费看黄片免费看| 性爱视频无打码在线观看| 香蕉欧美| 97欧美超碰| 丁香九月婷婷| 久操免费观看| 亚洲欧美在线丝袜| 久久精品国产97欧美精品亚洲 | 国产亚洲精品自在线亚洲情侣| 亚欧无码在线| 偷拍自拍在线视频观看| αⅴ天堂| av绯色| 很黄很色的视频在线观看| 日韩性爱毛片操骚逼| 欧美午夜视频免费观看| 91精品久久久久五月天精品 | 亚洲欧美不卡线| 好爽视频在线观看| 亚州性色| 后入式免费视频| 亚洲人天堂| 色欧洲| 亚洲国产美女久久久久| 久久永久无码人妻视频| 亚洲无码精品AV久久久| 久久久精品网站| 中国人高清www色视频免费| 久久久97| 天天影视色香欲综合网小说| 国产亚洲色停停久久99精品91| 国产粉嫩蜜臀av一区二区三区| 五月天我淫我色av| 中文字幕一区二区三区字幕| 18禁中文字幕| 日本三级网页| 国产精品成人无码av| 国产激情综合| 盗摄 精品 另类 一区| 天天做天天爽| 人人妻人人操人人乐| 国产传媒美日韩av| 久久国产对白激情浪潮| 夜夜爽爽夜夜精品视频| 青青草久草AV| 青青草原香蕉日本Ap| 欧美综合色图网| 超碰色综合| 精品人妻一区二区三区四区石在线| 免费av在线播放二区| 国产精品 久久久精品一牛| 日逼国产| 日韩人妻精品久久久久| 欧美精品在线观看| 先锋音影AV| 后入式999| 超碰在线一区二区| 网站A V在线| 人人看欧美性爱| 亚洲精品无码少妇久久| 夜夜中出国产| 天天综合网入口~91| 免费草草草草草视频| 日本二三四区| 久久产精品一区二区三区电影| 天天操夜夜操狠很操| 99久久精品国产高潮| 青青草视频这里只有精品| 欧美色图私拍91| 97视频在线观看网站| 97色在线视频| 99re免费视频精品全部| 亚洲欧美国产其他二区| 男人夜色天堂ss| 粉嫩AV输入| 久热伊人| 日韩熟女乱伦中出| 在线播放成人网站| 67194无码不卡| 99热99re6国产在线播放| 亚洲黄色AV电影| 免费一级精品啪啪视频| 2024人人操人人摸| 香蕉久久精品| 精品人妻一区二区三区不卡断| 人人弄人人摸| 曰韩av中文字幕专区| 精品网站9999| 人人妻人人色一区二区三区| 中文字幕蜜乳av| 色色色天美视频| 久久9 9 9精品| 国产精品午夜精品| 伊人一级免费黄片| 妺妺跟我一起洗澡没忍住| 后入内射蜜桃臀| 职场同事知名国产国产精品久久欧美日韩| 丝袜综合网| 日韩不卡在线一区二区| 亚洲熟妇自偷自拍另欧美| 青木玲在线不卡| 97日韩| 免费黄色A片| 97视频在| 久久啊啊| 91人妻尻屄视频| 日韩二级| 亚洲人久久久久日| 丝袜美腿制服人妻二区中文字幕 | 最近的最新的中文字幕视频| 久久夜嗨| 超碰久超碰久| 强奸乱伦大香蕉| 欧洲中文字幕| 国产91美女视频| japan日本高清乱xxxx| 青青草九九九九九| 99热线麻豆 | 久久草草欧美精品| 亚洲欧美综合网站| 一区二区三区亚洲| 激情自拍 校园春色| 情色图区| 插日本熟女视频| 区一二区日韩亚洲乱码av电影| 丰满人妻一区二区三区四区| 操逼视频亚洲| 操操操操网黑人| 最新国产精品| 亚洲人人操| 啊啊啊轻点在线观看| 国产精品久久久久久无码红治院| 蜜桃精品一区二区三区ww| 91网站18禁| 毛片电影一区二区三区| 亚洲麻豆18发?| 中国zzijzzijzzwww精品| 久9久| 欧美精品三区| 色综合色综合网| 亚欧操逼片在线观看| 五月天丁香婷婷综合网站| 青久操| 国产午夜福利专区综合| 欧洲综合视频| 天天做天天爱| 韩日精品四区| 国际精品久久久| 亚洲国产日韩欧美熟妇在线| 不卡六六在线91| 一级特级aaaa毛片免费观看| 亚洲综合九| 欧美性爱免费短视频| 超碰99热中文字幕| 澳门黄片一香蕉视频| 日本不卡三级网在线播放| dy888午夜老子影视达达兔| 懂色AV一区二区三区| 国产9l 大屁股| 五月激情天| 欧美日韩欧美| 亚洲精品男人的天堂| 97色香蕉| 国产亚洲一黄| 麻豆天美一区二区| 色综合91| 东京热男人的天堂| 日韩免费一级性爱视频| 性在久久久久久| 2026国产精品视频| av一区二区三区四区| 超碰中文字幕人妻草一区| 青娱乐欧美激情一区二区| 国产极品久久久| 日逼逼免费看| 欧美在线色| 久久久久国产精品喷潮免费观看臀| 国产精品3| AV不卡在线| 国内外毛片在线观看| 五月婷婷丁香| 91n处女在线观看| 久久午夜伦| 欧美人黑A片无码免视费| 中文字幕丝袜美腿| 欧美日韩啪啪电影| 国产成人天堂| 少妇高潮对白在线观看| 色欧美色交综合| 久久婷婷亚洲| 久久精品一区二区| 色婷婷在线视频精品导航| 操www| 国产精品色约约| 狠狠综合网| 尤物视频视频官网| 欧美韩国你懂得在线| 久久6热视频免费观看| 欧美色蜜桃97| 青娱乐av在线|