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

ARTICLE DETAIL

資訊詳情

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

文本歸一化與規(guī)則引擎:營銷引流文本檢測實(shí)戰(zhàn)

文本歸一化與規(guī)則引擎:營銷引流文本檢測實(shí)戰(zhàn) 在日常社區(qū)運(yùn)營和內(nèi)容審核的對接中一類高頻出現(xiàn)的文本總是讓人頭疼賬號在評論區(qū)、商品問答區(qū)、私信入口批量投放“哈嘍我們是源頭工廠有需要就找我呀”這類攬客話術(shù)。它不算明顯的違規(guī)廣告單看每個字都很正常但架不住量大、變體多、人工審不完。本文就以此為切入點(diǎn)完整實(shí)現(xiàn)一個可運(yùn)行的營銷引流文本檢測小工具從文本歸一化、規(guī)則設(shè)計(jì)、權(quán)重打分到配置外置、灰度上線全流程拆解。讀者不需要機(jī)器學(xué)習(xí)基礎(chǔ)只要會寫 Python 函數(shù)就能跟著跑通已經(jīng)做過內(nèi)容風(fēng)控的同學(xué)也可以直接拿去對照自己的規(guī)則庫查漏補(bǔ)缺。1. 從一個真實(shí)場景說起營銷引流文本為什么需要工程化治理先把問題定義清楚。所謂“營銷引流文本”指的是那些目標(biāo)明確、但表述上刻意模糊的商業(yè)推廣內(nèi)容自稱廠家、批發(fā)、一手貨源引導(dǎo)用戶離開當(dāng)前平臺去私下溝通制造限時緊迫感等等。這類內(nèi)容在電商評論區(qū)、二手交易區(qū)、內(nèi)容社區(qū)、在線客服會話里都非常常見。它和傳統(tǒng)意義上的垃圾廣告有幾個明顯區(qū)別也正因?yàn)檫@些區(qū)別簡單的關(guān)鍵詞黑名單很難奏效。1.1 這類文本的三個技術(shù)特征第一個特征是詞匯本身是正常詞?!霸搭^工廠”“批發(fā)價”“有需要找我”這些詞單獨(dú)拎出來在正規(guī)的商品描述、售后說明、用戶提問里都會出現(xiàn)。你把“源頭工廠”整個拉黑第二天就會收到一堆誤傷投訴。所以規(guī)則必須建立在詞組組合上而不是單詞上。第二個特征是變體成本極低。加個全角字母、塞幾個零寬字符、把“微信”寫成“薇信”、把漢字重復(fù)幾遍都能在不改變?nèi)搜坶喿x效果的前提下繞過字面匹配。這一點(diǎn)在后文會專門用一節(jié)講文本歸一化因?yàn)檫@是所有文本風(fēng)控的第一道地基。第三個特征是分級困難。一句“我是源頭工廠歡迎咨詢”到底該直接攔截還是人工復(fù)核如果全部攔截誤傷率會高到業(yè)務(wù)方無法接受如果全部放過等于沒做。實(shí)際工程里必須有中間檔位也就是“疑似”狀態(tài)把判斷權(quán)交給人。1.2 幾種常見方案的邊界對比在動手寫代碼之前先看清楚幾種技術(shù)路線的適用邊界避免一上來就選錯工具。方案實(shí)現(xiàn)成本可解釋性變體對抗能力適合階段純關(guān)鍵詞黑名單極低強(qiáng)很弱冷啟動、兜底歸一化 組合正則低強(qiáng)中等規(guī)則庫主力詞向量/文本分類模型高弱強(qiáng)有標(biāo)注數(shù)據(jù)后大模型語義判別中中強(qiáng)增量補(bǔ)充、復(fù)核輔助需要強(qiáng)調(diào)的是這幾條路線不是替代關(guān)系而是疊加關(guān)系。一個成熟的文本風(fēng)控系統(tǒng)通常是歸一化打底規(guī)則引擎跑主力模型負(fù)責(zé)兜底和兜住長尾人工復(fù)核處理爭議樣本最后把復(fù)核結(jié)果回流成新的規(guī)則和訓(xùn)練數(shù)據(jù)。本文聚焦第二條路線因?yàn)樗亲钊菀自趦芍軆?nèi)上線、并且效果立刻可量化的方案。對于日均評論量在幾萬到幾十萬量級的業(yè)務(wù)一套設(shè)計(jì)良好的規(guī)則引擎能得到超過八成的問題召回誤傷也完全可控。1.3 本文要實(shí)現(xiàn)的系統(tǒng)能力具體來說我們要做的東西包含這幾個能力點(diǎn)輸入一條原始文本輸出一個 0 到 100 的分?jǐn)?shù)以及block/review/pass三檔結(jié)論。支持解釋不僅告訴你“這條有問題”還要告訴你“命中了哪條規(guī)則、命中了哪幾個字”。支持配置化規(guī)則庫不寫死在代碼里能通過文件修改并生效。支持批量與單條兩種調(diào)用方式便于本地調(diào)試和接入服務(wù)。附帶單元測試保證改了規(guī)則之后不會悄悄把已有能力改壞。下面進(jìn)入環(huán)境準(zhǔn)備。2. 環(huán)境準(zhǔn)備與項(xiàng)目結(jié)構(gòu)2.1 運(yùn)行環(huán)境與依賴選擇這個項(xiàng)目刻意只使用 Python 標(biāo)準(zhǔn)庫原因很實(shí)際內(nèi)容審核往往要嵌到已有的服務(wù)里多引一個第三方包就多一份版本沖突風(fēng)險和供應(yīng)鏈風(fēng)險。re、unicodedata、json、argparse、unittest全部內(nèi)置裝好 Python 就能跑。環(huán)境說明Python 版本建議使用 3.8 及以上。本文用到的dataclasses在 3.7 之后是標(biāo)準(zhǔn)庫f-string 的格式說明符在 3.6 之后可用。具體小版本請按你自己的項(xiàng)目統(tǒng)一這里不寫死。操作系統(tǒng)Windows、macOS、Linux 均可代碼中沒有平臺相關(guān)調(diào)用。編輯器PyCharm、VS Code 都行建議開啟保存時自動格式化。不需要數(shù)據(jù)庫、不需要 Web 框架全部邏輯跑在單進(jìn)程內(nèi)存里。如果你后續(xù)要接到 Flask / FastAPI 的接口里直接把RuleEngine實(shí)例掛在應(yīng)用啟動階段初始化一次即可規(guī)則編譯是一次性的運(yùn)行期只有正則匹配開銷。2.2 目錄結(jié)構(gòu)設(shè)計(jì)項(xiàng)目結(jié)構(gòu)如下保持扁平方便直接復(fù)制text_guard_demo/ ├── text_guard/ │ ├── __init__.py │ ├── normalize.py │ ├── rules.py │ ├── engine.py │ └── cli.py ├── config/ │ └── rules.json ├── samples.txt └── tests/ └── test_engine.py這里的分層是按職責(zé)切的normalize.py只負(fù)責(zé)把文本洗干凈rules.py只放規(guī)則數(shù)據(jù)engine.py負(fù)責(zé)匹配和打分cli.py只做輸入輸出。這樣切的好處是將來你想把規(guī)則換成模型只動engine.py想把規(guī)則換成數(shù)據(jù)庫下發(fā)只動rules.py的加載邏輯。很多人在寫這類小工具時喜歡全塞在一個文件里調(diào)試時舒服上線后維護(hù)會很痛苦。2.3 安裝與運(yùn)行方式創(chuàng)建目錄并初始化mkdir -p text_guard_demo/text_guard text_guard_demo/config text_guard_demo/tests cd text_guard_demo touch text_guard/__init__.py tests/__init__.py__init__.py可以為空它的作用是讓text_guard成為一個包這樣python -m text_guard.cli才能正常找到模塊。tests/__init__.py同理方便測試發(fā)現(xiàn)。運(yùn)行單元測試python -m unittest discover -s tests -v運(yùn)行命令行工具python -m text_guard.cli -t 哈嘍我們是源頭工廠有需要就找我呀下面開始寫真正的邏輯。3. 文本歸一化把變體拉回可比較的形態(tài)3.1 為什么歸一化是第一步先看一組例子。下面這五條文本人一眼就能看出是同一句話但字符串比較的結(jié)果全是“不相等”哈嘍我們是源頭工廠有需要就找我呀 哈嘍,我們是源頭工廠,有需要就找我呀 哈嘍我們是源頭工廠有需\u200b要就找我呀 哈嘍我們是源頭工廠有需要要要找我呀 哈嘍我們是源頭工廠有需要就找我丫第一條用的是全角逗號第二條用半角逗號第三條中間插了一個零寬空格U200B第四條把“要”重復(fù)了三遍第五條把“呀”換成了字形接近的“丫”。如果你把規(guī)則寫成re.search(有需要就找我, text)只有第一條能命中。這不是規(guī)則寫得不對而是輸入沒有對齊。所以歸一化的定位不是“美化文本”而是把所有等價寫法映射到同一個可比較形態(tài)把對抗成本從規(guī)則方轉(zhuǎn)移回發(fā)布方。3.2 三類必須處理的字符噪聲第一類全角與兼容字符。全角字母到、全角數(shù)字到、全角標(biāo)點(diǎn)、帶圈數(shù)字、羅馬數(shù)字都屬于 Unicode 的兼容字符區(qū)。Python 的unicodedata.normalize(NFKC, text)可以把它們統(tǒng)一折疊成常見形態(tài)。這個函數(shù)不需要額外依賴一次調(diào)用就能把大量“換皮”寫法拉平。需要注意的是NFKC 是冪等的重復(fù)調(diào)用結(jié)果不變所以在整條流水線里調(diào)一次就夠不必每步都調(diào)。第二類不可見字符。零寬空格U200B、零寬非連接符U200C、零寬連接符U200D、左右方向標(biāo)記U200E、U200F、字節(jié)序標(biāo)記UFEFF、軟連字符U00AD這些字符在終端里看不見卻真實(shí)存在于字符串中。用正則把這些區(qū)間整體刪掉即可。同時把 ASCII 控制字符除\t、\n、\r外也一并清理避免日志里出現(xiàn)亂碼。第三類夸張重復(fù)。把某個漢字重復(fù)兩三次是極常見的規(guī)避手法。處理方式是用反向引用壓縮連續(xù)三個及以上相同字符折疊成一個。這里有一個細(xì)節(jié)必須注意——數(shù)字不能壓縮。如果你無腦用(.)\1{2,}那么“最后100件”會被壓成“最后10件”價格和型號信息就丟了后續(xù)如果要做數(shù)量識別會出錯。所以正則里要把數(shù)字和空白排除掉。3.3 歸一化順序?yàn)槭裁床荒茈S意調(diào)換歸一化的每一步都有先后依賴順序錯了會留下漏洞。推薦順序是刪除不可見字符和控制字符。NFKC 折疊全角與兼容字符。統(tǒng)一轉(zhuǎn)小寫。壓縮重復(fù)字符。壓縮連續(xù)空白并去掉首尾空格。為什么“刪不可見字符”要放在最前面因?yàn)檫@些字符可能夾在 Unicode 組合序列中間先折疊再做刪除有可能產(chǎn)生新的組合結(jié)果導(dǎo)致漏刪。為什么不轉(zhuǎn)小寫就壓縮重復(fù)大小寫混寫如vv折疊前后是兩種形態(tài)先轉(zhuǎn)小寫能保證壓縮邏輯看到的是同一個字符。另外提醒一點(diǎn)本文的規(guī)則庫是針對中文話術(shù)設(shè)計(jì)的所以沒有做繁簡轉(zhuǎn)換。如果你的業(yè)務(wù)場景里繁體內(nèi)容占比不低建議在 NFKC 之后、轉(zhuǎn)小寫之前插入一步繁簡統(tǒng)一用開源的字表映射即可不要自己手寫幾百對字符。這一步加不加取決于你的實(shí)際數(shù)據(jù)分布不要為了“完整”而堆功能。4. 規(guī)則設(shè)計(jì)與打分模型4.1 用組合詞而不是單詞這是規(guī)則庫設(shè)計(jì)里最容易踩的坑。假設(shè)你把“工廠”設(shè)為關(guān)鍵詞后果是什么用戶問“這個工廠的生產(chǎn)資質(zhì)能看下嗎”直接被判成營銷。誤傷幾次之后業(yè)務(wù)方就會要求關(guān)掉整個功能。正確的做法是把詞拆成“意圖信號”每個信號用詞組或短語表達(dá)身份宣稱類源頭工廠、源頭廠家、一手貨源、廠家直銷、工廠直供、原廠直供。注意這里全都是兩到四個字的組合單獨(dú)一個“工廠”或“貨源”不構(gòu)成信號。引導(dǎo)聯(lián)系類加V、加微信、留聯(lián)系方式、私信我、私聊我、滴滴我、扣1。這類信號的危險度最高因?yàn)樗哪康木褪前讶藦钠脚_導(dǎo)走。招呼攬客類有需要就找我、歡迎咨詢、歡迎來撩、隨時找我。這是最典型的“哈嘍體”尾巴。價格誘惑類批發(fā)價、出廠價、低價清倉、一件代發(fā)、量大從優(yōu)。緊迫感類限時、秒殺、手慢無、僅限今天、最后 N 件。批量起訂類N 件起批、起訂量、大量現(xiàn)貨。這樣拆分以后單條文本的召回和精準(zhǔn)度都會好很多。同時規(guī)則具備可解釋性命中了哪一類審核人員一眼就能看懂原因。4.2 權(quán)重怎么定有了信號之后要給權(quán)重。權(quán)重的意義不是“精確概率”而是相對危險度的排序。本文的取值思路是規(guī)則權(quán)重理由引導(dǎo)聯(lián)系25直接觸達(dá)用戶風(fēng)險最高招呼攬客18典型攬客尾巴但可能出現(xiàn)在客服場景身份宣稱15單獨(dú)出現(xiàn)不足以判定需組合價格誘惑12常見于正常促銷緊迫感10廣告常用但正常活動也用批量起訂8補(bǔ)充信號幾個設(shè)計(jì)要點(diǎn)值得說明。第一同一條規(guī)則在一條文本里只計(jì)一次分。有人會想“命中三次就乘三”這會讓刷分變得極其容易——重復(fù)五遍“加V”就能把分?jǐn)?shù)頂?shù)缴舷?。用re.search而不是re.finditer天然做到一條規(guī)則一次計(jì)分。第二分?jǐn)?shù)要有上限。所有命中權(quán)重求和后做一次min(raw, 100)避免后續(xù)加規(guī)則時分?jǐn)?shù)計(jì)算溢出預(yù)期區(qū)間也方便閾值調(diào)整。第三權(quán)重是調(diào)出來的不是想出來的。上線后一定要跑真實(shí)的復(fù)核樣本把誤判的樣本和漏判的樣本分別列出來看是該調(diào)權(quán)重還是該補(bǔ)規(guī)則。憑感覺調(diào)權(quán)重兩周之后沒人記得為什么是 15 而不是 12。4.3 閾值分級與人工復(fù)核三檔閾值的取值建議score 45→block直接攔截或折疊展示。20 score 45→review進(jìn)入人工復(fù)核隊(duì)列。score 20→pass正常放行。為什么中間要留這么寬的一檔因?yàn)闋I銷文本的判定本質(zhì)上是概率性的兩檔攔/放會逼著你在“誤傷太多”和“漏放太多”之間二選一。有了 review 檔你可以先用較寬的規(guī)則召回再通過人工復(fù)核把樣本標(biāo)出來逐步把規(guī)則收緊。這也是冷啟動階段最務(wù)實(shí)的策略。需要提醒的是閾值不能幾個業(yè)務(wù)線共用一套??头捓锏摹皻g迎咨詢”是正常的商品評論區(qū)里的“歡迎咨詢”就很可疑。合理的做法是給不同場景各配一套閾值或者給規(guī)則加上場景標(biāo)簽。5. 完整實(shí)戰(zhàn)一個可運(yùn)行的文本風(fēng)控小工具下面把四個模塊的代碼完整寫出來每段都能直接復(fù)制進(jìn)對應(yīng)文件運(yùn)行。5.1 歸一化模塊文件路徑text_guard/normalize.py文本歸一化把各種變體寫法統(tǒng)一成可比較的形態(tài)。 import re import unicodedata # 零寬字符、方向控制符、軟連字符等不可見字符 _INVISIBLE_RE re.compile(r[\u200b-\u200f\u202a-\u202e\u2060\ufeff\u00ad]) # ASCII 控制字符\t、\n、\r 交給后面的空白壓縮處理 _CTRL_RE re.compile(r[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]) # 三個及以上連續(xù)相同的「非數(shù)字、非空白」字符壓縮成一個 _REPEAT_RE re.compile(r([^\d\s])\1{2,}) # 連續(xù)空白壓縮成一個空格 _SPACE_RE re.compile(r\s) def strip_invisible(text: str) - str: 刪除零寬字符和控制字符避免「看起來一樣、實(shí)際不同」的文本繞過規(guī)則。 return _INVISIBLE_RE.sub(, _CTRL_RE.sub(, text)) def to_halfwidth(text: str) - str: 使用 NFKC 歸一化把全角字母數(shù)字、兼容字符折疊成常見形態(tài)。 return unicodedata.normalize(NFKC, text) def collapse_repeats(text: str) - str: 壓縮夸張重復(fù)有需要要要找我 - 有需要找我。數(shù)字不壓縮避免破壞價格和型號。 return _REPEAT_RE.sub(r\1, text) def normalize(text: str) - str: 歸一化主入口順序不可隨意調(diào)換。 if not text: return t strip_invisible(text) t to_halfwidth(t) t t.lower() t collapse_repeats(t) t _SPACE_RE.sub( , t).strip() return t逐段解釋一下。strip_invisible做了兩層sub嵌套外層刪零寬字符內(nèi)層刪控制字符順序無關(guān)因?yàn)閮深悈^(qū)間不重疊。to_halfwidth里用 NFKC 而不做手工映射是因?yàn)槿亲帜赣?26 個、全角數(shù)字 10 個、各種標(biāo)點(diǎn)幾十個手寫映射表既容易漏又難維護(hù)標(biāo)準(zhǔn)庫已經(jīng)把這件事件做好了。collapse_repeats的替換串是r\1配合正則里的捕獲組([^\d\s])把整段重復(fù)壓縮成第一個字符。數(shù)字被顯式排除是為了保住“最后100件”這類信息。最后normalize函數(shù)的順序就是 3.3 節(jié)說的順序注釋里也標(biāo)明了不可隨意調(diào)換。5.2 規(guī)則定義模塊文件路徑text_guard/rules.py規(guī)則數(shù)據(jù)定義。這里只放數(shù)據(jù)不放邏輯。 from dataclasses import dataclass from typing import List dataclass(frozenTrue) class Rule: rule_id: str # 規(guī)則唯一標(biāo)識用于日志和解釋 pattern: str # 正則在「已歸一化文本」上匹配 weight: int # 命中分值 desc: str # 人話描述給審核人員看 DEFAULT_RULES: List[Rule] [ Rule( rule_idsrc_factory_claim, patternr源頭工廠|源頭廠家|一手貨源|廠家直銷|工廠直供|原廠直供, weight15, desc自稱源頭/廠家直供, ), Rule( rule_idcontact_solicit, patternr加\s*[v威薇微w]|加個?微信|留個?聯(lián)系方式|私信我|私聊我|滴滴我|扣\s*1, weight25, desc引導(dǎo)私下聯(lián)系, ), Rule( rule_idsales_greeting, patternr有需要就?找我|需要的?話?[^,。?]{0,6}找我|歡迎咨詢|歡迎來撩|隨時找我, weight18, desc招呼式攬客, ), Rule( rule_idprice_claim, patternr批發(fā)價|出廠價|低價清倉|跳樓價|賺差價|一件代發(fā)|量大從優(yōu), weight12, desc低價/代發(fā)話術(shù), ), Rule( rule_idurgency, patternr限時|秒殺|手慢無|僅限今天|最后\s*\d\s*件, weight10, desc制造緊迫感, ), Rule( rule_idwholesale_qty, patternr\d\s*件起批|起訂量|大量現(xiàn)貨, weight8, desc批量起訂話術(shù), ), ]幾個正則細(xì)節(jié)需要單獨(dú)說明。加\s*[v威薇微w]里的\s*是為了兼容“加 V”這種中間帶空格的寫法。歸一化已經(jīng)把連續(xù)空白壓成一個空格但空格還在所以匹配時必須允許它。需要的?話?[^,。?]{0,6}找我是“需要的資料可以找我”這類長句的兜底。中間允許 0 到 6 個非標(biāo)點(diǎn)字符超過 6 個字符通常說明這是兩個獨(dú)立語義誤傷風(fēng)險上升。這里的[^,。?]用的是半角標(biāo)點(diǎn)因?yàn)闅w一化已經(jīng)通過 NFKC 把中文逗號句號問號轉(zhuǎn)成了半角。最后\s*\d\s*件允許數(shù)字兩邊有空格同樣是為了兼容“最后 100 件”這類排版。注意這里和collapse_repeats不沖突因?yàn)閿?shù)字沒有被壓縮。5.3 規(guī)則引擎模塊文件路徑text_guard/engine.py規(guī)則引擎負(fù)責(zé)匹配、打分、給出結(jié)論。 import re from dataclasses import dataclass, field from typing import List, Sequence from .normalize import normalize from .rules import Rule, DEFAULT_RULES VERDICT_BLOCK block VERDICT_REVIEW review VERDICT_PASS pass dataclass class Hit: rule_id: str desc: str weight: int matched: str dataclass class Decision: text: str normalized: str score: int verdict: str hits: List[Hit] field(default_factorylist) def to_dict(self) - dict: return { verdict: self.verdict, score: self.score, normalized: self.normalized, hits: [ { rule_id: h.rule_id, desc: h.desc, weight: h.weight, matched: h.matched, } for h in self.hits ], } class RuleEngine: def __init__( self, rules: Sequence[Rule] DEFAULT_RULES, block_threshold: int 45, review_threshold: int 20, ): if review_threshold block_threshold: raise ValueError(review_threshold 必須小于 block_threshold) # 規(guī)則在初始化階段一次性編譯運(yùn)行期不再重復(fù)編譯 self._rules [(rule, re.compile(rule.pattern)) for rule in rules] self.block_threshold block_threshold self.review_threshold review_threshold def decide(self, text: str) - Decision: normalized normalize(text) hits: List[Hit] [] for rule, pattern in self._rules: # 用 search 而不是 finditer同一條規(guī)則只計(jì)一次分 m pattern.search(normalized) if m: hits.append( Hit( rule_idrule.rule_id, descrule.desc, weightrule.weight, matchedm.group(0), ) ) score min(sum(h.weight for h in hits), 100) if score self.block_threshold: verdict VERDICT_BLOCK elif score self.review_threshold: verdict VERDICT_REVIEW else: verdict VERDICT_PASS return Decision( texttext, normalizednormalized, scorescore, verdictverdict, hitshits, )這段代碼里有三處設(shè)計(jì)是刻意的值得單獨(dú)講。構(gòu)造期編譯正則。re.compile本身有緩存但顯式編譯能保證行為確定也避免運(yùn)行期第一次調(diào)用時的抖動。規(guī)則庫一旦大起來幾百條每次請求重復(fù)編譯的開銷不可忽視尤其是高頻短文本場景。用search而不是finditer。這是 4.2 節(jié)說的“一條規(guī)則只計(jì)一次分”的實(shí)現(xiàn)基礎(chǔ)。如果改成finditer并累加惡意用戶只要把話術(shù)重復(fù)幾遍就能把分?jǐn)?shù)打滿整個閾值體系就失效了。分?jǐn)?shù)封頂 100。這個細(xì)節(jié)在多規(guī)則疊加時很重要。如果不封頂將來加規(guī)則容易把分?jǐn)?shù)推到幾百閾值就需要跟著重算歷史積累的調(diào)參經(jīng)驗(yàn)全部作廢。封頂之后閾值區(qū)間保持穩(wěn)定。5.4 命令行入口文件路徑text_guard/cli.py命令行入口支持單條、文件和標(biāo)準(zhǔn)輸入三種方式。 import argparse import json import sys from .engine import RuleEngine def build_parser() - argparse.ArgumentParser: parser argparse.ArgumentParser( progtext-guard, description營銷引流話術(shù)檢測小工具, ) source parser.add_mutually_exclusive_group() source.add_argument(-t, --text, help檢測單條文本) source.add_argument(-f, --file, help檢測文本文件每行一條) parser.add_argument(--block, typeint, default45, help攔截閾值默認(rèn) 45) parser.add_argument(--review, typeint, default20, help復(fù)核閾值默認(rèn) 20) parser.add_argument(--json, actionstore_true, help以 JSON 行格式輸出) return parser def main(argvNone) - int: args build_parser().parse_args(argv) engine RuleEngine(block_thresholdargs.block, review_thresholdargs.review) if args.text is not None: items [args.text] elif args.file: with open(args.file, encodingutf-8) as f: items [line.rstrip(\n) for line in f if line.strip()] else: items [line.rstrip(\n) for line in sys.stdin if line.strip()] for idx, item in enumerate(items, start1): decision engine.decide(item) if args.json: payload decision.to_dict() payload[line] idx print(json.dumps(payload, ensure_asciiFalse)) else: print(f[{idx}] {decision.verdict.upper():6} score{decision.score:3} {item}) for hit in decision.hits: print(f - {hit.rule_id}({hit.weight}): {hit.matched}) return 0 if __name__ __main__: raise SystemExit(main())ensure_asciiFalse這一行很關(guān)鍵。默認(rèn)的json.dumps會把中文轉(zhuǎn)成\uXXXX日志里幾乎沒法看排查問題時非常痛苦。加上這個參數(shù)后輸出保持中文原樣配合encodingutf-8讀文件整條鏈路不會出現(xiàn)亂碼。raise SystemExit(main())是標(biāo)準(zhǔn)寫法保證入口函數(shù)的返回值能正確傳遞給操作系統(tǒng)便于在腳本里通過退出碼判斷成功與否。5.5 單元測試文件路徑tests/test_engine.pyimport unittest from text_guard.engine import ( RuleEngine, VERDICT_BLOCK, VERDICT_PASS, VERDICT_REVIEW, ) from text_guard.normalize import normalize class NormalizeTest(unittest.TestCase): def test_fullwidth_to_halfwidth(self): self.assertEqual(normalize(加), 加v) def test_zero_width_removed(self): self.assertEqual(normalize(加\u200bv), 加v) def test_repeat_collapsed(self): self.assertEqual(normalize(有需要要要找我), 有需要找我) def test_digits_kept(self): self.assertEqual(normalize(最后100件), 最后100件) class EngineTest(unittest.TestCase): def setUp(self): self.engine RuleEngine() def test_marketing_greeting_is_review(self): d self.engine.decide(哈嘍我們是源頭工廠有需要就找我呀) self.assertEqual(d.verdict, VERDICT_REVIEW) self.assertEqual(d.score, 33) def test_hard_sell_is_block(self): d self.engine.decide(源頭工廠一手貨源加Vabc123一件代發(fā)量大從優(yōu)) self.assertEqual(d.verdict, VERDICT_BLOCK) self.assertEqual(d.score, 52) def test_normal_question_passes(self): d self.engine.decide(這個零件是源頭工廠生產(chǎn)的嗎我想了解下工藝流程) self.assertEqual(d.verdict, VERDICT_PASS) def test_contact_only_is_review(self): d self.engine.decide(有貨的話加個微信聊) self.assertEqual(d.verdict, VERDICT_REVIEW) if __name__ __main__: unittest.main()測試用例的設(shè)計(jì)思路是“一類風(fēng)險一條”。歸一化層測四個點(diǎn)全角折疊、零寬刪除、重復(fù)壓縮、數(shù)字保留。引擎層測四個點(diǎn)打招呼式攬客、硬廣、正常提問、僅引導(dǎo)聯(lián)系。這樣改規(guī)則時有基線保護(hù)不會出現(xiàn)“修了漏判、炸了誤傷”還不知道的情況。如果你的團(tuán)隊(duì)用 pytest這套用例可以直接跑不需要改任何斷言寫法因?yàn)閡nittest.TestCase的子類 pytest 也識別。5.6 運(yùn)行驗(yàn)證與結(jié)果解讀準(zhǔn)備樣本文件文件路徑samples.txt哈嘍我們是源頭工廠有需要就找我呀 源頭工廠一手貨源加Vabc123一件代發(fā)量大從優(yōu) 這個零件是源頭工廠生產(chǎn)的嗎我想了解下工藝流程 你好請問這個型號還有貨嗎 限時秒殺最后3件手慢無需要的私聊我執(zhí)行python -m text_guard.cli -f samples.txt預(yù)期輸出[1] REVIEW score33 哈嘍我們是源頭工廠有需要就找我呀 - src_factory_claim(15): 源頭工廠 - sales_greeting(18): 有需要就找我 [2] BLOCK score52 源頭工廠一手貨源加Vabc123一件代發(fā)量大從優(yōu) - src_factory_claim(15): 源頭工廠 - contact_solicit(25): 加v - price_claim(12): 一件代發(fā) [3] PASS score15 這個零件是源頭工廠生產(chǎn)的嗎我想了解下工藝流程 - src_factory_claim(15): 源頭工廠 [4] PASS score0 你好請問這個型號還有貨嗎 [5] REVIEW score35 限時秒殺最后3件手慢無需要的私聊我 - contact_solicit(25): 私聊我 - urgency(10): 限時逐條解讀一下結(jié)果這幾條正好覆蓋了系統(tǒng)的主要行為。第 1 條就是標(biāo)題里那句話得分 33落在 review 檔。它命中了“源頭工廠”這個身份宣稱和“有需要就找我”這個攬客尾巴但沒有引導(dǎo)聯(lián)系、沒有價格誘惑所以不直接攔截。這個判定是合理的——如果你看到一條評論是這么寫的通常會選擇折疊或者限流而不是直接刪除賬號。第 2 條得分 52直接 block。注意它的命中項(xiàng)里contact_solicit匹配到的是歸一化之后的加v說明全角字母折疊生效了。三條規(guī)則疊加剛好越過攔截線這正是“組合信號”的價值——單獨(dú)任何一條都不足以定罪。第 3 條只命中身份宣稱得 15 分判 pass。這條最值得注意它證明了兩件事一是組合詞設(shè)計(jì)確實(shí)降低了誤傷如果規(guī)則里放的是單個“工廠”這條會被判 review二是 review 閾值設(shè)在 20 是有依據(jù)的單信號不應(yīng)該進(jìn)復(fù)核隊(duì)列否則復(fù)核隊(duì)列會被大量正常提問淹沒。第 4 條零命中正常放行。第 5 條命中了引導(dǎo)聯(lián)系和緊迫感得 35 分進(jìn) review。這里其實(shí)可以討論私聊我權(quán)重 25 是否過高如果這條來自客服場景可能是正常回復(fù)。這就是為什么 4
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
无码伊人久久大杳蕉中文无码| 精品超碰中文在线| 丰满人妻一区二区三区性色| 亚洲高清欧美总合| 无毛精品| 97内射偷拍| 九九色热| 在线国产探花| 欧美精品久久久久久久久88| 欧美人妻一区| 免费a在线播放v| 欧美五十路熟| 爽极品影院| 91在线视频国产网站| 国产和美国毛片| 四季AV综合网址| 婷婷月色| 丁香五月天啪啪| http://qxhbdz.com| 中文字幕黄色一起草| 亚洲一区二区中文字幕| 国产精品。| 91黑丝露脚| 日本色色色视频| 日本高清有码网址视频| 东北丰满熟女国产一区| 精品久久久久久中文| 大香蕉黄色一区| 可免费观看的av毛片中日美韩| 伊人操操| 国产曰批免费观看久久久| 亚洲第一页综合在线| 快点操死我| 亚洲人精| 蜜臀人妻少妇久久在线观看| 富二代亚洲精品99| 国产av青草| 超碰性爱97| 六月丁操逼| 九九九久久久久| 天天亚洲综合| 素颜老阿姨乱情色| 精人妻无码一区二区三区伊人直播| 日本蜜桃| 综合网亚洲1| av2014 日韩在线中文字幕| 精人妻无码一区二区三区伊人直播| 久久m| 精品九九九九九九九九九| 黄色十八禁| 无码精品啪啪啪一区二区三区三州| 美女丝袜激情小说| 啊啊啊水好多| 热99这里有精品综合久久| 精品国产av一区二区三区四区入口| av影片在线观看不卡| A片大香蕉在线| 啪啪性爱免费视频| 精品超碰国产| 97香蕉人人乳| 亚洲熟女一区二区| 一起草欧美| 18禁的网站在线| 怡红院怡春院| 亚洲图片欧洲图片aⅴ| av情色影音| 91模特在线观看| 操逼日批| 亚洲精品亚洲人成人网| 亚洲五区熟女| 88在线一区二区三区| 91人妻人人澡人人爽人人精品| 97超碰碰| 日韩人妻无码专区| 人人超碰在线观看黄| 国产日韩中文字幕欧美| 欧差乱伦二三| 岛国成人av在线播放网址| 欧美熟妇视频| 日韩在线观看AV| 超碰色综合| 制度丝袜99| 欧美激情综合| 96精品久久| 欧美亚洲另类在线蜜桃| 久久av色| 欧美裸体美女日麻屄| 国产aⅴ无码片毛片一级网站| 精品视频日日夜夜| 久9久9久9久9久9久9| 亚洲一区中文精品| 精品国产嫩穴视频| 欧美日韩一二三| 日本久久女同性恋视频| 98一区二区精品| 伊人aaa| 久久久久久久97| 午夜欧美女人操逼| 午夜毛片高清免费不卡| 视频国产成人精品日本亚洲18| 午夜色婷婷| 精品成人女人久久| 成人AV超碰免费在线| 亚洲精品一区中文字幕乱码| 欧美性高潮在线| 日本高清_区二区三区| 久久成年精品| 欧美黄色片在线播放| 亚洲色图超碰在线| 超碰在线一区二区三区| 99久久这里只有精品| 亚洲天堂资源在线| www久| 91国产丝袜美女| 黄色AAAAAAAAAAA大片| 中国zzijzzijzzwww精品| 久久婷五月天| 99操逼| 欧美人妻精品一区二区| 天天综合欧美黑人| 国产精品视频精品一二| 大香蕉2017| 影音综合网| www.男人天堂| 亚洲丝袜在线观看| 性欧美另类高清| 熟妇人妻精品一区二区| 青青操97| 成人九九| 色欲天天婬色婬香WWW夜色| 欧姜老司机| 丁香五月天啪啪| www.久久超碰| 夜夜嗨av午夜成人| 手机在线A片| 欧美在线色| 精品黑人一区二区| 热99这里有精品综合久久 | 国产日韩欧美亚洲精品95| 日本精品人妻少妇一区二区| 强奸抽插av| 伦在线97| 欧美精品999| 欧美不在线| AV色天香在线| 日本女人操逼| 又粗又长又大国产不卡| 强奸熟女一区二区三区| 色优久久| 天天干夜夜一操| 亚洲 欧美 日本 国内 首页| 999久久久九| 国产精品分类在线观看| 伊香蕉综合久久久久久久噜噜噜| 欧美视频第二页| 天天干天天狼在线视频| 岛国1区2区3区在线观看| 欧美日韩青操| 久久久啊啊| 大香网站| 丰满美女一级毛片在线播放| 精品少妇一区二区三区| 欧美永久激情一区二区| 免费一级视频特黄色大片| 91亚洲高清| 97超碰这里只有精品| 九九在线精品| 404操逼福利视频| 一区二区三区看视频| 妇人噜噜| 2017大香蕉国产精品久久| 国产精品一二三免费网站| 国内精品a| 精品人妻一区二区三区视频在线| 久久婷婷苹果| 亚洲欧美一区二区不卡视频播放| 亚洲 综合 欧美| 日韩色欲久久一二三四区| 综合久久97| 中文字幕欧洲有码| 男人的天堂在线| 亚洲综合网电影91| 操逼日韩无码 | 爽 好舒服 无码刺激久久| 婷婷干黄色| 精品一区二区三区丰满熟女-亚洲欧美一区 | 久久偷偷色综合蜜桃| 日韩av女优在线免费一区| 欧美一区二区三区日韩| 成人日本视频人妻在线| 国产高清成人传媒影视| 福利色色| 日人妻视频91| 亚欧高清在线| blacked精品一区国产| 强奸抽插av| 国产精品在线免费| 老熟女综合网| 中文有码9| 99re热| 欧美在线视频播放| 亚洲日韩97| 精品国产乱码久久久久久日本公司| 欧美永久激情一区二区| 中文字幕人乱码中文字的预防方法 | 秋霞一区二区三区四区五区六区七区| 久久一区无码| 丁香五月色情| 欧美色蜜桃97| 亚洲美腿丝袜香蕉影视欧美成人| 超碰天天操你比| 青娱乐 成人娱乐在线| 黄色AV影视| 美女刺激久久国产欧美| 无码欧美有限公司| 国产免费久久精品99re韩国| 久久久久久久久久久免费精品| 亚洲天堂中文字幕无码男同| 十八禁网站在线| 青青国产精品在线| 欧美色图私拍91| www.一本大99| 熟女高潮合集-永久久久-成人AV | 欧美亚洲韩国视频十五区| 久久原创中文| 男人的天堂网页| 91狠狠| 日本人妻丰满熟妇久久久久久| 日日超碰亚洲| 草草网站影院白丝内射| 国产日韩欧美三级片| 亚洲无码色| 10000部十八禁看电影| 午夜毛片高清免费不卡| 少妇激情一区二区三区视频| 18禁看网站一区| 2017人人操,人人摸| 秋霞蝌科网日本一区| 手机看片1025| 欧洲大香蕉| 97综合激情| A级片日韩欧美国产欧美视频精选观看| 超碰97人妻免费在线| 国产av强奸美女| 俺去俺来也在线www| 97中文超碰| 亚码人妻| 久久精品一区二区一8| 无码精品久久久天天影视| 最新日韩黄片| 国产丰满少妇久久久精品影院| 啊啊啊啊啊啊啊啊要喷了| 五月天久久人妻| 色欲Av人妻精品一区二| 亚洲av强奸乱伦| 91超碰人人| 九九九九精品一区| 精品成人动漫一区二区| 91女优在线观看| 五月亭亭六月丁香| 欧美天天综合网版| 久区视频| aⅴ日韩成人电影av在线免费看av大全 | 男人天堂资源| 囯产操逼片| 天天亚洲综合| 天堂无码| 97亚洲一区| 国产深喉| 日韩人成网站在线播放| 久草精品国产蜜臀 | 韩国一级做A片免费的| 人妻夜夜爽天天爽麻豆三区网站| 色综合天天爱去电影网| 久热伊人| 国产丁香精品露脸视频| 亚洲一卡2卡3卡4卡乱码网站| 亚洲全色网| 午夜精品久久99蜜桃的功能章节| 黄色香蕉视频网站一区| 91欧美高清| 秘书高跟黑色丝袜国产91在线| 欧美一区二区三区四区综合| 国产精品制服丝袜中文字幕日韩一区二区三区 | 亚洲色图A| 黄片免费看黄片免费看| 精国久久一区二区三区98| 51国产午夜精品视频| 九九久久九九久久| 久久系列| 国产性感骚丝袜在线| 人人妻人人爽| 992这里有精品| 久久久96精品| 久久超碰爱| 亚洲色图A| 日本午夜久久电影| 日韩内| 99综合免费视频| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 日韩在线观看中文字幕视频| 加勒比无码毛片| 国产精品香蕉热久久新品| 毛片麻豆91糖心精品毛情片| 96免费视频在线| 亚洲天堂五月天国产| 欲色影视综合吧| 99人妻碰碰碰久久久久禁片| 国产欧美后入| www99热| 亚州男人天堂| 日本五十路在线| 免费一级特黄特色大片在线观看看| 狠狠操一区二区| 国产传媒操逼视频| 97视频播放| 熟妇熟女亚洲天堂网| 9久精品| 蜜臀在线免费观看在线免费观看| 丰满人妻一区二区三区性色| 夜色97| 五月丁香色综合| 精品一级毛片在线观看| 日韩av色图| 欧美日本国产日韩激情视频| 国产精品白丝www| 久久人妻视频网| 东京热一区二区中文字幕| 伊人一区二区三区| 日本免费亚洲欧美| 1人人看人人摸人人操| 综合网少妇| 鲁鲁色综合网| 婷婷九月| 免费观看的黄色的网站| 天天综合网~91| 亚州色图欧美| 特级大荫道BBwBBwBBW| 亚洲人妻中文高清| 国产欧美在线观看免费观看| 亚洲第一页色网| 蜜臀AV成人精品蜜臀| 亚洲制服欧美另类内射| 亚洲欧美国产中文视频| 日韩精品亚洲一二三| 嗯……啊…嗯嗯…啊…好舒服| 亚洲色 国产 欧美 日韩| 啪啪自拍九九综合| 麻豆91熟妇人妻中文字幕茄子| 美女的肌被草喷水视频| 99热色精品| 再深点灬舒服灬太大了添视频| 超碰色97| 日本亚欧爱爱| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 男人的天堂久久久| 夜夜精品视频一区二区| 久啪| 91热情品| 99久久久无码| 丰满人妻一区二区三区在线| 五月丁香啪啪啪| 人人妻人人狠人人| 日本午夜福利影院| 欧美系列在线一区二区| 午夜国产乱伦视频| 国产精品直播在线观看直播| 亚洲日韩电影| 蜜臀99久| 亚洲色电影在线| 亚洲欧美天| 天美一区在线| 草B在线| 国产精品色约约| 亚洲熟久久| 美女AV一区二区| 人人澡综合涩| 国产成人精品一区| 欧美性Fer办公室秘书| 精品人妻一区春色| 国产乱不卡| 97就爱干| 吉川爱美亚洲二区在线| 青青欧洲黑| 天天做天天爱天天高潮| 一区二区娱乐网站| 九九碰九九爱97| 激情五月丁香五月| 男人夜色天堂ss| 天天综合精品| 国产91美女高潮| 国产视频三区四区| 久久水蜜臀亚洲AV无码精品| 久久久久亚洲精品| 激情四射婷婷六月天| 亚洲久草AV色图| 91观看 国产白丝| 亚洲色宗合| 超碰精品国产无码| 免费看日产一区二区三区| 久久久无码av精| 少妇无码999| 中国一级特黄大片护士| 中文精品少妇天堂| 青女偷拍网| 超碰免费97| 青女在线| 亚洲在高跟鞋自慰久久在色线| 约操熟妇| 99re99视频在线免费观看| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 双插性欧美一二三区| 无套内射人妻在线播放| www色婷婷| 亚洲综合码| 99久在线精品99re8热视频在线| 91蜜桃传媒精品久久久一区二区| 国产成人在线观看网址| 探花一区在线| 99re这里只有精品3| 激情综合网一盗摄| 秋霞色色影院| 亚洲精品成人激情在线| 后入人妻一区| 欧美天天综合在线| 午夜爽爽爽在线观看永久入口姬片| av九九| 久久鲁夜| 狠狠婷婷亚洲中文综合久久| 成年女人18级毛片毛片免费观看| 中文在线久久字幕| 欧美性暴力| 成人aⅴ一区二区三区| www.激情| 天天干1区2区在线| 精品一区二区成人动漫| 国产亚洲精品一区二区三区| 天天日骚逼熟女| 国产亚洲精品A在线观看下载| 欧美人妻一区| 91美女色视频亚洲| 亚洲影院无码在线| 亚洲欧美一区二区三区在钱蜜桃 | 懂色影视久久| 国内毛片国产欧美拍| 99久久婷婷| 伊人午夜福利视频| 手机在线中文字幕国产| 厕所偷拍在线| 久久9久| 激情小说五月天| 2017超碰| 美中日韩无码| 人人爱夜夜爱| 青木玲在线不卡| 亚洲av夫妻操穴网| 超碰在线97国产| 激情综合网亚洲| 久久黄色视频一区二区三区| 日韩成人性日韩成人性爱视频在线免费观看| 9.1小视频| 白嫩91在线亚洲| 久久一区二区高清免费| 高跟伊人julia ann| 亚洲精品自拍| 日韩精品9999| 18啪啪手机免费性爱| 宅男91视频在线播放| 中文字幕乱码在线| 国产熟女少妇一区| 久久露脸国产老熟女| 色婷婷基地| 99re99在线视频| 日本在线激情一区二区三区| 中文熟女五十乱码在线| 日韩女模中文造逼| 成人青青草原伊人| 亚洲高清在线| 一起草在线视频| 99自拍B亚洲 | www九九热| 亚洲欧美综合网站| 亚洲各类熟们中文字幕| 高清无码学生妹高潮| 欧美性爱在线无码| 亚洲丝袜诱惑| 国产AV天美| 欧美国产精品| 人妻熟妇一区二区三区| 射丝袜高跟鞋99| 看大黄色大片原件| jiujiujiujingpin| 亚洲三区视频| 91在线免费观看处女| 欧美精品69性爱| 黄色不卡视频| 91天美传媒在线观看| 激情网色| 欧美性爱一区二区三区| AV天堂丝袜| 精品国产一区二区三区四区在线看| 色综合20p| 91大胆欧美| 91九九九小逼| AV综合中文字幕干| 免费av在线播放二区| 欧美成人国产精品| 中文字幕二区日韩天堂| 波多野结衣先锋影音| 综合亚洲网| 99国产精品久久久久久久成人热| 欧美性爱另类综合| 日本免费中文字幕在线 | 亚洲色婷婷久久91| 懂色av中文字幕| 青娱乐 成人娱乐在线| 亚洲AV无码黄色强奸| 亚洲资源站| 香蕉免费一区二区三区不读 | 超碰97中文| 九九九草| 亚洲五区熟女| 骚逼高潮久久精品| 日本国产高清色www视频在线| 久久一区二区三区四区五区| 国产热av| 欧美暴力猛交| 蜜桃久久久久久久| 99婷婷| 精品偷拍13p欧美dodk视频| 国产熟女无套内射| 99热在线只有精品| 人人妻天天做天天爽| 99.色网| 男人的天堂不卡一区二区| 乱伦av麻豆| 中文字幕人成乱码熟女香港| 久久久精品| 变态综合色| 久久风骚城市| 天天干夜夜肏| 国产情色第一第二页在线观看| 蜜桃久久久久久| 婷婷久草一区二区三区| 丁香五月社区| 激激五月| 欧美性爱97超碰 | 美女天天干| 美女啊啊啊啊啊啊| 亚州性色| 国产精品香蕉| 久久亚洲影院一区二区| 啊啊啊啊嗯嗯嗯用力好爽 | 99精品久久久久久| 色香欲天天天天综合色| 九9热伊人| 亚洲图片在线| 老司机福利社视频在线观看| 欧美爱国产综合、| 夜夜久久久| 男人天堂导航| 999综合网| 免费a v| 亚洲影院无码在线| av最新免费中文字幕| 操逼天美3区| 色伊人91| 九九色精品| 国产av白丝| 中文字幕在线观看网页| 伦在线97| 久久久久久免费电影| 老鸭窝成人| 97爱亚洲| 无码天天操| 妺妺跟我一起洗澡没忍住| 五月天大香蕉| 人妻密肉在线观看| 久久深夜无码| 超碰 国产熟女精品一区| 偷拍亚洲视频一区二区三区四区| 欧美色图20p| 人人爱夜夜爱| 亚洲凸凹超碰成人| 午夜亚洲| 亚洲无码精品AV久久久| 懂色av色欲av蜜臀av| 丰满人妻区一区二区三| 中文自拍欧美影视| 综合熟女| 亚洲欧美色图片| 可以免费观看的av| 曰韩成人免费视频| 婷婷激情一区二区三区俺也去| 亚洲国产一级精品毛一级精品看免费视频 | 亚洲中文sv| av网站在线看| 黄色免费网页无码| 亚洲中文字幕噜噜噜久久久| 91美女视频在线免费观看| 午夜啊啊| ..日韩av毛片精品久久久| 天天日夜夜爽| 欧美日韩亚洲电影| 亚洲国产精品成人久久蜜臀| 最新中文字幕在线亚洲| 国产无遮挡| 欧美激情亚洲| 成人性爱视频在线看| 久久久98网站免费视频| 人妻无码一区二区三区久久99| 91狠狠综| 99热99在线| 日韩精品人妻中文字有码在线| 91女色| 人妻 中文 日韩| 91人妻视频在线| 韩日欧亚a级| 操逼片中文| 天天看特黄的免费网站| 97久久超碰| 91久热| 精品综合久久久久久97| 岛国黄色短视频| 亚洲成人妻日韩在线| 天天天天天天天天天天干美女| 三级精品三级在线观看| 久久夜嗨| 91色爽欧美| 国产久久久久久| 欧美做爰无码A片视频| 久草精品视频| 久久久久人妻二区精品叶可怜| 麻豆天美电影一区二区| 青青草中日韩在线| 人人做天天爱| 99操| 久久成人东京热人妻| 亚洲美女AV无码| 欧美毛片在线网| 欧美色97| 长长久久曰曰夜夜成人网| 欧洲亚洲人妻无码高清久久三区四区| 黑人黄片在线免费观看| 五月婷婷青青草娱乐伊人| 国产成人手机视频激情| 欧美最婬乱婬爆婬性视频 | 自拍偷拍2025在线观看| 国内一区二区三区| 色欲久久综合| 99超碰碰| 啊啊啊啊啊啊啊国| 一个色导综合| 60秒免费小视频| 久久亚洲AV无码专区国产精品| 东京热不卡视频| 欧美视频一区二区在线| 蜜臀va69| 91亚州日韩高清| 综合伊人网12色| 亚洲精品国产精品乱码不卡| 伊人久久大香线蕉无码| 91精品婷婷国产综合久久| 超碰人人色| 91操熟女| 亚洲色资源| 极品白嫩美女白浆成人福利在线看| 香蕉国产97| 欧美色偷拍 | 狠狠操狠狠| 日韩欧美亚欧在线视频| 亚洲综合贴图91| 欧美性生活综合| 久久六六| 欧美亚洲高清不卡| 欧美激情综合| 免费av高清无码| 夜夜操夜夜高潮夜夜爽国产精品区| 婷婷五月综合在线| 白丝被操91| 97视频免费在线| 色香阁在线| 淫荡少妇免费| 97爱综合| 嗯嗯啊啊的视频| 中文伊人大香蕉视频| 日韩国产欧美伦理在线| 国产91 丝袜在线播放 | 另类亚洲一区二区三区| 91精品国产91久久久久久久久久久久| 蜜桃精品一区二区三区ww| 亚洲系列第一页| 另类天堂| 蜜汁欧美| 亚州中文字幕超碰97| 五月天色图影视| 日韩视频啪啪| 国产 亚洲 一二三四| 国产乱码久久久| 亚洲男人综合网| 男人综合网| 久草免费在线一区二区| 日韩中文9| 免费精品99| 国产曰批免费观看久久久| 热热色青青草| 加勒比无码毛片| 亚州乱码中文字幕综合久久久| 尤物一级在线免费观看| 日婷婷| 97欧美日韩综合| 国产免费一区| 日日夜夜青青草母狗| 亚洲丝袜色| 男人的天堂一区三区| 亚洲欧洲综合av在线| 色网色网色网色网色网色| 久久久三区二区一区| 97超碰久| 色999偷自拍拍| 人妻天天夜夜爽一区二区| 囯产乱伦一区二区三女| 欧美黄色大片在线观看| 午夜啪| 精品国产乱码久久久久久网站入口| 中文无线日韩一区| 国产一区二区三区久久精品太古里| 久久久久久中文字幕中文字幕最新| 亚洲天堂久久| 婷婷在线视频| 丁香五月社区| 亚洲 综合 欧美| 先锋精品av色鲁| 五月天激情婷婷| 九九在线精品| www.夜夜操| 亚洲日韩一区电影| 亚州色交| 啪啪91| 大香蕉伊人一区在线观看| 国产精品青青草| 精品人妻二区三区| 亚洲另类色图片| 麻豆福利视频导航| 性色av一区二区| 男人的亚洲天堂| 韩国毛片一区二区三区| 亚洲第一视频 欧美风情 日韩| 99精品无码| 人妻熟女一区二区在线视频| 国产97视频| 91狠狠| 亚洲欧洲综合av在线| 中文字幕中文字幕一区二区| 丰满少妇乱子伦精品无| 99ri精品| 色综合中文字幕不卡| 韩国三级三级BD在线| 色眯眯av| 成人国产二区三区在线,男女精品。| 神马麻豆福利院| 大二网站亚洲| 欧美人妻一区| 猛交交| 国产不卡中文字幕免费avi| 偷拍综合亚洲| 久区视频| 日韩性爱免费观看视频| 福利色色| 澳门成人网站久国产日韩| 亚洲诱惑| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 国产精品国产拍高清AV| 超碰超碰欧美| 制服中出中文人人精品| 九九九国产| 第四色奇米影视777| 日韩精品一区的| 欧美日韩免费专区在线| 91亚洲欧美综合高清在线| 久9精品| 久操凹凸视频| 婷婷香蕉欧美在线一区二区三区 | 91深夜夜| 人妻嗯啊啊在线播放| 亚州色国| aa片毛片| 91精品国产麻豆国产自产在| 人人澡综合涩| 国产精品久久久久久久久久久久| 深夜国产一区二区三区在线看| 91蜜臀熟女| 亚洲男人天堂视频| 亚洲欧洲日本精品中文a∨| 色婷婷色99国产综合精品| 又摸又舔在线观看网站| 久久二| 日韩去日本高清在| 日本大香蕉| 日本精品一区二区三区四区的功能| 国产不卡免费在线视频| 欧美天天综| 老熟女综合| 黄色av一区二区在线| 亚洲欧美setu| 天天澡天天爽日日AV| 久久丁香五月婷婷| 国产精品在线一区二区| 九九视频黄色片| 久久国产精品91| 风韵犹存大大大大香蕉 | av在线人气| 欧美性爱一区二区三区| 九九九九九九九九九九九九九九九女| 先锋影音av先锋一区| 欧美少妇性乱| 操碰97| 欧美精品一区二区少妇免费A片| V A在线| 操操AV电影| 亚洲AV不卡在线观看| 欧美激情性爱视频网站| 97综合日韩| 国产精品人妻免费精品| 丝袜美腿欧美| 伊人麻豆传媒| 欧美亚洲日韩人妻在线观看| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 国产亚州日韩欧美看片| 欧美极品少妇| 国产精品久久久久久 百度| 欧美天堂亚洲电影院一区在线播放| 人人看人人插| 欧美日本天堂| 国产女人和拘做爰视频| 91丝袜在线视频| 欧美黄片免费在线观看视频| 干B| 亚洲欧综合另类无码一区| 91亚洲丝袜| 国产 三级自拍| 天美传媒麻豆一区二区三区国产精| 一区二区娱乐网站| 欧美日韩亚洲天堂| 91xingse| 收看日本人日bb| 色麻豆AV| 亚洲午夜av| 本道综合精品| 蜜臀精品1区2区| 亚洲啪啪视频免费| 欧美日韩青操| 成年女人18级毛片毛片免费观看| 熟女久久| 超AV色女| 日韩色欲久久一二三四区| 欧美激情黑人| 成人五月香网在线| 日韩免费高清大片在线| 99热大香蕉伊在线| 99热综合| 人人玩人人添人人澡免费| 97天天在线| 国产 日韩 欧美 人妻 熟女 中文| 激情小说亚洲| 亚洲男人的天堂网| www.狠狠操| 国产最火爆久久国产网站网站| 色阁阁AV综合网| 97五月天| 国产丝袜欧美在线视频| 一区二区三区四区在线不卡| 东京热男人的天堂网| 在线岛国新天堂8| 偷拍99| 草蕉影视亚洲无码| 国产在线视视频有精品| 亚洲色狠| 97jingpin| 麻豆天美国美国产| 欧美人妻精品一区二区| 精…码一二三区| 国产乱人妻精品入口| 婷婷五月天成人网| 亚洲?V无码专区在线电影| 校园春色美腿丝袜 | 久久精品日韩| 精人妻一区二区三区| 日日黄色三级网站| 激情婷婷| 在线强奷到舒服的无码视频| 欧美第二页| 蜜臀一二三区| 国产精品视频| 精品熟女一区=区三区| 欧美午夜一区二区三区| 人人操,人人液| 日韩久射综合| 啊啊啊啊好疼视频| 插老姨肥穴| 蜜臀久久99精品久久久老,,| 精品伊人久久久大香线蕉小说| 无码操逼视频一下| 我想要 啊 啊 啊| 亚洲在钱| 自拍亚洲综合| 麻豆婷婷成人一二三| 欧美精品四区| 三级三久久线久久99久目本WW| 一级片在线观看高清无码| 天天躁日日躁狠狠躁| 啊啊啊慢点| 2020中文字幕在线| 久久精品国产久精国产| 天天看人人操屄犊摸阴| 少妇蜜汁| 伊人影院在线理论播放 | 大香蕉伊人75| 丝袜美腿91| 亚洲另类色综合网站| 欧美激色| 91国内外在线| 欲色啪| 国产中文福利| 午夜福利合集| 婷婷五月天色色| 亚州AV无码国产精品| av无线看| 18啪啪手机免费性爱| 欧美日韩大香蕉| 极品销魂美女一区二区| 起碰97| 亚州综合网| 亚洲欧美色图片| 九九九九精品精| 久久精品无码一区二区三区| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 限制级中的三级片中的黑粗大屌屌日人妻熟女| 色制服丝袜夫妻av一区| 97精品综合久久网| 日韩电影天堂视频一区二区| 美美91成人国产精品欧美精品久久久久久久| 蜜桃久久久久久久| 成人网欧美风情| A啊啊在线观看| 一区二区视频你懂的| 欧美论理片| 四虎884| 久久黄人人爽视频| 久久AV无码AV| 日韩中文字幕国产| 永久免费发布性爱网| 福利色色| 激情99| 打av高清| 少妇丝袜在线观看AV| 婷婷探花久久精品一区| 久热热| 亚洲欧美高清无码| 日韩亚洲中文有码视频| 五月婷婷丁香中文字幕| 人妻熟女午夜精品在线| 色盈盈影院| 天美传媒av在线| 久久线上视频免费看| 亚洲精品久久久久毛片A片拉屎 | 欧美熟爽综合| 在线黄色污污网站| 熟女熟妇伦久久影院毛片一区二区| 欧美伊人电影| 波多野42部激情无码喷潮| 色色色欧美| 中出91| 上床不卡网站| 日韩本不卡视频在线观看| 天天澡天天爽日日AV| 天天综合网日韩7799| 婷婷色导航| 青娱乐大香蕉| 国产精品丝袜在线| A级毛片在线看免费| 国产久久久久久久久一区二区| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 欧亚日韩中文在线| 久久亚州精品成人Av无| 国产大学生高潮在线播放| 一区=区三区视频| 蜜臀在线看片| 三男一女不戴套的A片| 中文字幕av亚洲在线| 日本三级日本三级三级人妇四虎| 内射黑丝袜| 亚洲男人综合| www99热| 久草热制服丝袜在线观看| 精品亚洲天堂| 亚洲制服欧美另类内射| 黄色小说亚洲| 国产精品夜夜| 黄色一级视| 欧美情色男人的天堂| 91成人无码| 不卡啪啪视频| 骚女高跟AV在线| 26uuu久久| 日本天天操| 青青草中出视频| 国产免a费看黄片在线| 九久久九精品视频| 猛猛干| 91色久| 尤物视频偷拍免费| 中文字幕乱在线伦视频中文字幕乱码在线| 思思热在线| 亚春色色| 亚洲无线码一区国产欧美国| 金典av| 日韩免费三级黄片电影| 久久这里都是精品| 欧美色综合网| 色丁香五月婷婷| 国产又长又大又粗的视频| 天天操夜夜操狠很操| 成人日本精品九区| 欧美日韩在线视频网站| 91爱综合| 另类图片综合| 婷婷情色综合网| 成人久久久| 亚洲无套久久嗯嗯| 久9九综合在线| 99热官网| 啊啊啊爽爽| 青青草九九九九九| 少妇久久| 大香蕉 222| 综合av社区| 色九九九综合| 国产高清26uuu| juliaann欧美丝袜办公室| 中文字幕一区av| 国产亚洲99久久精品熟| 男人天堂久久精品| 亚洲另类天堂| 亚洲熟女国产综合另类| 国产无码精品无码| 九九英色视频| 久久东京伊人一本到鬼色| 9999九九九久久久| 亚洲精品亚洲人成在线麻豆| 欧亚日本情色| 丁香婷婷久久| 亚州欧美色图| 熟啊v色欧美热| 亚洲导航深夜福利| 欧美亚洲韩国视频十五区| 国内三级自拍小视频在线观看| 亚洲a色| 台欧久久精品视频| 欧美日日操| 蜜臀va69| 天天肏美女| 在线无码网站| 九九这里只有精品| 久久久草成人网站久久久草成人久久久草久久久| 啊啊啊啊啊好多水| 自拍视频大全亚洲专媒视频/一区二区三区 | 日本免费中文字幕在线| 亚洲素人综合| 午夜天天碰综合视频| 久久久亚洲Av| 日韩电影中文字幕| 岛国小电影| 日韩成人精品视频自拍| 日韩情色一区二区| 久久久婷婷| 国产动漫操逼视频| 搡老熟女免费视频| 91欧美巨乳| 内射日韩大臀美女| 亚洲成熟国产精品美女| 玖玖爱影院| 亚洲熟妇综合久久久久久| 久久午夜伦| 极品尤物自安慰| 国产久久久久久| 久久久成人精品| 97视频网站在线观看| 美國A片| 亚洲欧洲成人在线电影| 伊人96在线| 成人综合网 欧美| 婷婷亚洲天堂| 国产白嫩漂亮KTV在线| 国产91 丝袜在线播放00-百度| 极品久久久久久久久久久久久久| 在线另类| 丁香五月综合| 欧美一区二区三区互相| 久久精品超碰| 北野未奈加勒比av| 日本中文字幕高跟| 涩涩五月天| 午夜精品探花| 777AV电影| 2023天天操夜夜操| 日韩三级av片| 在线电影亚洲色图| 天天干天天日天天射黄色片| 天天摸,夜夜摸| 天天色播亚洲综合网站| 欧美激情另类一区二区| 亚洲巨爆乳一区二区三区四季网| 欧美日韩不卡传媒| 亚洲天堂资源| 日日噜噜夜夜久久亚洲一区二区| 日韩国产品视频中文字| 91丨九色丨大屁股| 天天干天天狼在线视频| 日韩人妻一二三区视频| 91网九色蝌蚪操熟女| 97干97色| 97网色| 欧美春色| 亚洲欧洲综合| 久久线上视频免费看| 亚洲麻豆18发?| 韩日巨乳美女免费视频在线观看| 欧美高潮在线| 91偷拍欧美亚洲| AV一二区| 一区,二区,三区网站| 欧美熟妇视频| 欧美人妻精品| 欧美 亚洲 制服 精品| 欧美日韩国产在线| 2019天天干天天操| 丰满少妇人妻久久久久久| 日本色婷婷| 91九色精品熟女内射| 久久婷婷影院| 色情综合| 天天干天天干天天干| 天天插天天插| 一二三区在线| 91人妻超碰| 超碰97资源大奶| 亚洲天堂自拍| 91性感网站| 校园春色家庭伦理欧美激情| 国产熟女自拍| 高清无码91| 久草加勒比一区在线| 黑人免费福利视频| 看免费一级在线播放毛片| 欧美A片中文字幕| 影音先锋视频在线| 亚洲天堂无码| 黑丝少妇|