內的作用,與藥物代謝動力學 (Pharmacokinetics) 有關,不同攝取方式、性別、身體 狀態、pH 值、年齡、新陳代謝率等因素,在臨床與研究領域,即使是同種藥物,其半 衰期也具有很大的差異,有些有同分異構物 (isomer)、有些有對映異構 (enantiomer) 等,其 half life 不盡相同。
本 研 究 嘗 試 找 尋 具 公 信 力 之 資 料 來 源, 例 如 ︰ 維 基 百 科、leafly.com、drugs-data.com、drugs.com 等,透過自製爬蟲,針對 HTML 檔剖析其各欄位。部份藥物在 上述網站無法順利找到半衰期,由本研究手動搜尋相關資料,加入 ES 資料庫中,盡 可能附上相關文獻的 Document Object Identifier(DOI) 作為參考。
5.2 取得半衰期的方法
1. getHalfLifeSpecialCases
若標題含有大麻的特殊文字時,直接回傳 Tetrahydrocannabinol 的半衰期。包含 cartridge, dank, vapes, wax, nug, kushy punch, golani, bazooka blunt, stiiizy, bhostco, pirate candy, budder, resin, crumble, cannabis, thc , edible, cigar, shat-ter, preroll, pre-roll, crisp, krispie, bubblehash, cake, moon, choice, stoney poppers, box, peach rings 等共 30 個詞。
2. ES.getHalfLife
若 ES 中已經有過此標題的半衰期紀錄,直接回傳。
3. getSpecificDrugNameByEcstasy
若 標 題 中 含 有 符 合 “\p{Alpha}+\-?\d{2,}” 的正則表示式的內容,就分別到 drugsdata.com 與 drugs.com 查詢。
5.2 取得半衰期的方法 使用梯度提昇機辨認暗網市場之毒品高衝擊賣家
上述 regular expression (以下簡稱 regex) 的意義是︰
(a) 以英文字⺟開頭,數量至少一個,\p{Alpha} 是 JAVA 的一個巨集,位於 java.util.regex.Pattern,表示所有的英文字⺟,包含大寫與小寫,[a-zA-Z]。
(b) 接著有 hyphen 符號,數量一個或零個。
(c) 接著數字,數量至少兩個。
要查詢這樣的 regex 是因為部份藥丸或錠片會以其標示的符號作為其代稱。
例如︰圖 4,實際販售的藥物是 Clonazolam,但在商品貼文的標題可能只有寫 s903。
drugsdata.com 與 drugs.com 是專門登錄藥丸標示符號的資料庫,在查到藥物的 真實名稱後,嘗試到 en.wikipedia.org 查詢。
(a) 如果 en.wikipedia.org 不存在這個藥品,則此方法回傳失敗。
(b) 如果 en.wikipedia.org 存在這個藥物,嘗試 ES.getHalfLife,從 ES 中尋找是 否已經紀錄過。
i. 如果 ES 有紀錄,則回傳已存在的資料。
ii. 如果 ES 沒有紀錄,則判斷找到的頁面是否含有生物半衰期的欄位。如 果有,則取得此欄位,剖析並登錄到 ES;如果沒有此欄位,則回傳失 敗。
4. getWeighFromScanDescription
嘗試從商品描述中找尋是否存在 “thc” 這個關鍵字。
(a) 如果沒有 “thc”,則回傳失敗。
使用梯度提昇機辨認暗網市場之毒品高衝擊賣家 5.2 取得半衰期的方法
(b) 如果有 “thc”,則往左往右找是否含有數字或是百分比。
i. 如果完全沒有數字,則回傳失敗。
ii. 如果含有數字,則判斷與 “thc” 的距離以及是否位於同一個句子,以篩 選出真正可以代表此商品是大麻類的文字。
A. 如果不位在同一個句子,則回傳失敗。
B. 如果距離太遠,則回傳失敗。
C. 如果數字太多,則保留距離最接近的兩個數字。
D. 最後只回傳一個平均數,代表這個藥物的生物半衰期,登錄 ES 中,
回傳失敗。
5. getComponentOfIngredient
嘗試從商品描述中找尋是否含有兩種藥物成份的句子。某些錠片本身自帶兩種藥 物以固定比例存在於同一錠片中,取其加權生物半衰期作為混合物之半衰期。
例如︰ id=869 的商品貼文的商品描述為
…Product - Tadalafil 40mg + Dapoxetine 60mg Tadapox…
分別找尋這兩種成份的半衰期,先從 ES 找尋,再嘗試到 en.wikipedia.org 找尋。
圖 4: 藥丸表面的標記為 S 90 3 的 Clonazolam,圖片來自 https://www.drugsdata.
org/images/display/8000/8752_lg.jpg
5.2 取得半衰期的方法 使用梯度提昇機辨認暗網市場之毒品高衝擊賣家
6. exhaustedList
把標題中屬於重量、單位、推銷等,不影響判斷商品類別的字 (ignoreWords) 全 部移除。大量運用 rule base 的 regex 判斷式,找出關鍵字。
ignoreWords 共包含 189 個字,如下所示︰
with, from, to, the, and, no, out, on, or, for, per, in, of, to, only, not, within, than, this, now, very, still, daily, fra, at, also, more, outside, buy, express, post, shipping, pills, pill, ships, back, tested, ir, xr, pay, get, years, promo, smell, offer, comes, supply, do, mix, match, flashback, check, test, import, super, best, good, fast, free, extra, high, uncut, pure, hq, light, dep, medium, black, online, green, nice, gold, grey, orange, top, better, full, cheap, minimum, new, aaa, absolute, sale, special, strong, limited, unlimited, controlled, perfect, old, fresh, white, yellow, guaran-teed, sticky, affordable, quick, press, pressed, available, perfectly, strongest, great, beautiful, blister, quality, outdoor, indoor, powder, store, listing, bar, bars, bonus, discount, spongebob, purity, donald, trump, b.o.g.o, bottle, bottles, tab, stock, owl, lab, pesticide, ip, hours, pieces, opening, bulk, monkey, color, rolex, sample, deps, fire, vials, form, pellets, track, we, one, discount, price, prices, level, deals, deal, result, capsules, web, vial, givenchy, charge, ndd, stuff, alexander, shulgin, pack, packs, colombian, kolumbien, columbian, ww, our, canada, afghan, iranian, dutch, bolivian, europe, netherlands, worldwide, norway, turkish, cali, peruvian, peru, us, usa, amsterdam, mexican, romania, uk, germany, eu, euro。
將 剩 餘 下 來 的 字 集 合 稱 為 keytokens, 將 keytokens 串 連 起 來, 列 入 Google
使用梯度提昇機辨認暗網市場之毒品高衝擊賣家 5.2 取得半衰期的方法
Search 作為關鍵字。
(a) 到 ES 找尋是否曾經登錄。
(b) 到 en.wikipedia.org 嘗試是否存在有生物半衰期的欄位。
(c) 到 leafly.com 嘗試是否存在這種大麻配方。
leafly.com 介紹許多經典的大麻配方,大部分都使用實際存在的一般商品的 名稱,一方面拉近距離,一方面掩人耳目。
例如︰ wedding cake,直接搜尋 en.wikipedia.org 會找到結婚蛋糕。但在 leafly,可以找到配成 wedding cake 需要的內容以及完成品的口感、副作 用、以及幻想過程的大致感受。
嘗試找尋是否存在說明含有的 THC 含量的欄位︰
i. 如果存在,則登錄此商品。
ii. 如果不存在,則回傳失敗。
進行 Google Search 時,將每個 keytoken 以窮舉的方式一一測試,過程中保持 keytoken 之間的順序。例如︰ keytokens 為 crystal, meth, originalspeedy, heroine, speed, mdma,則窮舉如下︰
crystal, meth, originalspeedy, heroine, speed, mdma crystal, meth, originalspeedy, heroine, speed
meth, originalspeedy, heroine, speed, mdma crystal, meth, originalspeedy, heroine meth, originalspeedy, heroine, speed originalspeedy, heroine, speed, mdma crystal, meth, originalspeedy
meth, originalspeedy, heroine originalspeedy, heroine, speed