MSMarco Ranking數(shù)據(jù)集三種分詞工具比較

寫(xiě)在前面

最近在處理msmarco數(shù)據(jù)集锚赤,因?yàn)槲业哪P筒恍枰玫絙ert馒胆,elmo這種language model的預(yù)訓(xùn)練表達(dá)狭郑。本來(lái)是想用用fasttext亚茬,但是機(jī)器只有128G內(nèi)存偏陪,連數(shù)據(jù)都放不下去抢呆,所以放棄了,于是決定好好處理分詞了笛谦。

這里比較了三種分詞工具:

  • 1 . nltk
  • 2 . spacy
  • 3 . 正則表達(dá)式

詞表統(tǒng)計(jì)的Passage Retrieval數(shù)據(jù)集的small數(shù)據(jù)集抱虐。一共接近4000w個(gè)pair。

NLTK

from nltk.corpus import stopwords
import string
from nltk.tokenize import word_tokenize

def my_tokenize(title):
    """ tokenize word """
    title = title.lower()
    words = []

    for _token in word_tokenize(title):
        if _token in StopWords:
            continue
        words.append(_token)
    return words

這里簡(jiǎn)單過(guò)濾了停用詞饥脑,并且過(guò)濾了詞頻小于等于5的詞恳邀。

nltk詞頻大于5

這里一共有1927856個(gè)詞,還有可以看到這里分的并不好灶轰。各種點(diǎn)把本來(lái)應(yīng)該是兩個(gè)詞的連在了一起谣沸。

再過(guò)濾一下詞頻大于20的。


nltk詞頻大于20

還有84萬(wàn)多的詞笋颤,太多了乳附。而且分的like shit。

Spacy

后來(lái)聽(tīng)了小伙伴說(shuō)的spacy的分詞不錯(cuò)伴澄,還有有篇論文里面也用了spacy分詞赋除。
于是乎嘗試了一波,直接用的allennlp集成的WordTokenizer非凌,底層是spacy举农。

from allennlp.data.tokenizers import WordTokenizer
from nltk.corpus import stopwords
import string

StopWords = set(stopwords.words('english') + list(string.punctuation))

tokenizer = WordTokenizer()

def my_tokenize(tokenizer, title):
    """ tokenize word """
    title = title.lower()
    words = []

    for _token in tokenizer.tokenize(title):
        _token = str(_token).strip()
        if _token == "":
            continue
        if _token in StopWords:
            continue
        words.append(_token)
    return words

再看下詞頻大于5的詞。


spacy詞頻大于5

這里詞表一共有:1579122敞嗡,稍微小了點(diǎn)兒并蝗,不過(guò)總感覺(jué)是和nltk差不多祭犯,亂七八糟的兩個(gè)詞拼在一起的也有。

spacy詞頻大于20

過(guò)濾了詞頻20以下的之后滚停,還是有69萬(wàn)詞表,不過(guò)看效果真的不太行粥惧。

正則表達(dá)式

后來(lái)又問(wèn)了問(wèn)同學(xué)键畴,本來(lái)想試試有沒(méi)有基于詞表的分詞的,有個(gè)說(shuō)jieba分詞可以突雪。不過(guò)我沒(méi)嘗試起惕。

在msmarco的Leaderboard上面看到了Duet v2的Official Baseline里面有完整的處理和模型的代碼,用的正則分詞咏删,并過(guò)濾了詞惹想,詞表只用了7萬(wàn)多。鏈接:[Official Baseline] Duet V2 (Ensembled)

from nltk.corpus import stopwords
import string
import re


StopWords = set(stopwords.words('english') + list(string.punctuation))

def my_tokenize(title):
    regex_multi_space = re.compile('\s+')
    regex_drop_char = re.compile('[^a-z0-9\s]+')
    words = regex_multi_space.sub(' ', regex_drop_char.sub(' ', title.lower())).strip().split()

    tokens = []

    for _token in words:
        if _token in StopWords:
            continue
        tokens.append(_token)
    return tokens

過(guò)濾了詞頻為5以下的詞之后督函。


正則詞頻大于5

詞表大小只有:733205嘀粱,比前面的小了一半多。而且起碼看著像個(gè)樣子辰狡。

正則詞頻大于20

目前應(yīng)該是先拿正則的用了锋叨。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市宛篇,隨后出現(xiàn)的幾起案子娃磺,更是在濱河造成了極大的恐慌,老刑警劉巖叫倍,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偷卧,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡吆倦,警方通過(guò)查閱死者的電腦和手機(jī)听诸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)逼庞,“玉大人蛇更,你說(shuō)我怎么就攤上這事∪悖” “怎么了派任?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)璧南。 經(jīng)常有香客問(wèn)我掌逛,道長(zhǎng),這世上最難降的妖魔是什么司倚? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任豆混,我火速辦了婚禮篓像,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘皿伺。我一直安慰自己员辩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布鸵鸥。 她就那樣靜靜地躺著奠滑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪妒穴。 梳的紋絲不亂的頭發(fā)上宋税,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音讼油,去河邊找鬼杰赛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛矮台,可吹牛的內(nèi)容都是我干的乏屯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼嘿架,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瓶珊!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起耸彪,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤伞芹,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后蝉娜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體唱较,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年召川,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了南缓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荧呐,死狀恐怖汉形,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情倍阐,我是刑警寧澤概疆,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站峰搪,受9級(jí)特大地震影響岔冀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜概耻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一使套、第九天 我趴在偏房一處隱蔽的房頂上張望罐呼。 院中可真熱鬧,春花似錦侦高、人聲如沸嫉柴。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)差凹。三九已至,卻和暖如春侧馅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呐萌。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工馁痴, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肺孤。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓罗晕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親赠堵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子小渊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容