一種基于圖形處理器gpu的分詞方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及分詞技術(shù)領(lǐng)域,特別是涉及一種基于圖形處理器GPU的分詞方法和一種基于圖形處理器GHJ的分詞裝置。
【背景技術(shù)】
[0002]分詞就是將連續(xù)的字序列按照一定的規(guī)范重新組合成詞序列的過程。在英文的行文中,單詞之間是以空格作為自然分界符的,而中文只是字、句和段能通過明顯的分界符來簡(jiǎn)單劃界,唯獨(dú)詞沒有一個(gè)形式上的分界符,在詞這一層上,中文比之英文要復(fù)雜的多、困難的多。目前所有的分詞系統(tǒng),無論采用什么分詞算法,都是運(yùn)行在基于CPU(CentralProcessing Unit,中央處理器)的計(jì)算系統(tǒng)之上的。
[0003]雖然現(xiàn)有的分詞算法一般計(jì)算過程都相對(duì)簡(jiǎn)單,但是由于分詞過程中數(shù)據(jù)操作量大,使得分詞耗時(shí)過長(zhǎng),而主要的耗時(shí)操作主要集中在對(duì)內(nèi)存內(nèi)數(shù)據(jù)讀取的延時(shí)上。
【發(fā)明內(nèi)容】
[0004]鑒于上述問題,提出了本申請(qǐng)實(shí)施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種基于圖形處理器GPU的分詞方法和相應(yīng)的一種基于圖形處理器GPU的分詞裝置。
[0005]為了解決上述問題,本申請(qǐng)實(shí)施例公開了一種基于圖形處理器GPU的分詞方法,其中,所述的圖形處理器GPU包括:內(nèi)存、多個(gè)線程集合;所述的方法包括:
[0006]將預(yù)設(shè)的分詞詞典以及預(yù)先獲取的待分詞文本加載到圖形處理器GPU的內(nèi)存中;
[0007]確定當(dāng)前GPU中的可用的線程集合;
[0008]將所述分詞詞典,分配到一個(gè)或多個(gè)可用的線程集合中;
[0009]采用所述一個(gè)或多個(gè)可用的線程集合對(duì)所述待分詞文本進(jìn)行分詞。
[0010]優(yōu)選的,所述線程集合包括:多個(gè)線程單元;所述采用所述一個(gè)或多個(gè)可用的線程集合對(duì)所述待分詞文本進(jìn)行分詞的步驟包括:
[0011]在所述一個(gè)或多個(gè)可用的線程集合中加載所述待分詞文本;
[0012]確定所述一個(gè)或多個(gè)線程集合中可用的線程單元;
[0013]將所述一個(gè)或多個(gè)線程集合中加載的待分詞文本拆分為多個(gè)子段落;
[0014]在所述一個(gè)或多個(gè)線程集合中,將對(duì)應(yīng)的分詞文本拆分得到的子段落分配到線程集合內(nèi)的各個(gè)可用的線程單元中進(jìn)行分詞。
[0015]優(yōu)選的,所述將所述分詞詞典分配到一個(gè)或多個(gè)可用的線程集合中的步驟包括:
[0016]將所述分詞詞典拆分為多個(gè)子詞典;
[0017]將各個(gè)子詞典分配到多個(gè)可用的線程集合。
[0018]優(yōu)選的,所述將各個(gè)子詞典分配到多個(gè)可用的線程集合的步驟包括:
[0019]按照可用線程集合的數(shù)目,將分詞詞典平均拆分為多個(gè)子詞典;
[0020]或,按照分詞詞典內(nèi)各個(gè)詞條預(yù)設(shè)的權(quán)重,將分詞詞典拆分為多個(gè)子詞典。
[0021]優(yōu)選的,還包括:
[0022]當(dāng)采用多個(gè)線程集合進(jìn)行分詞時(shí),將線程集合內(nèi)各個(gè)線程單元分詞后得到已分詞段落進(jìn)行合并,得到單集合分詞文本;
[0023]從所述一個(gè)或多個(gè)線程集合的單集合分詞文本中,選取分詞得到的詞條進(jìn)行合并,得到多集合分詞文本。
[0024]優(yōu)選的,所述確定當(dāng)前GPU中的可用的線程集合的步驟包括:
[0025]通過GPU預(yù)設(shè)的API接口,確定當(dāng)前GPU中的可用的線程集合。
[0026]優(yōu)選的,所述確定所述一個(gè)或多個(gè)可用的線程集合中可用的線程單元的步驟包括:
[0027]通過GHJ預(yù)設(shè)的API接口,確定所述一個(gè)或多個(gè)可用的線程集合中可用的線程單
J L ο
[0028]同時(shí),本申請(qǐng)還公開了一種基于圖形處理器GPU的分詞裝置,其中,所述的圖形處理器GPU包括:內(nèi)存、多個(gè)線程集合;所述的裝置包括:
[0029]GPU加載模塊,用于將預(yù)設(shè)的分詞詞典以及預(yù)先獲取的待分詞文本加載到圖形處理器GPU的內(nèi)存中;
[0030]線程集合確定模塊,用于確定當(dāng)前GPU中的可用的線程集合;
[0031]詞典分配模塊,用于將所述分詞詞典,分配到一個(gè)或多個(gè)可用的線程集合中;
[0032]線程集合分詞模塊,用于采用所述一個(gè)或多個(gè)可用的線程集合對(duì)所述待分詞文本進(jìn)行分詞。
[0033]優(yōu)選的,所述線程集合包括:多個(gè)線程單元;所述線程集合分詞模塊進(jìn)一步包括:
[0034]分詞文本加載子模塊,用于在所述一個(gè)或多個(gè)可用的線程集合中加載所述待分詞文本;
[0035]線程單元確定子模塊,用于確定所述一個(gè)或多個(gè)線程集合中可用的線程單元;
[0036]文本拆分子模塊,用于將所述一個(gè)或多個(gè)線程集合中加載的待分詞文本拆分為多個(gè)子段落;
[0037]子段落分配子模塊,用于在所述一個(gè)或多個(gè)線程集合中,將對(duì)應(yīng)的分詞文本拆分得到的子段落分配到線程集合內(nèi)的各個(gè)可用的線程單元中進(jìn)行分詞。
[0038]優(yōu)選的,所述將所述分詞詞典分配到一個(gè)或多個(gè)可用的線程集合中的步驟包括:
[0039]詞典拆分子模塊,用于將所述分詞詞典拆分為多個(gè)子詞典;
[0040]子詞典分配子模塊,用于將各個(gè)子詞典分配到多個(gè)可用的線程集合。
[0041 ]優(yōu)選的,所述子詞典分配子模塊進(jìn)一步包括:
[0042]平均分配子模塊,用于按照可用線程集合的數(shù)目,將分詞詞典平均拆分為多個(gè)子詞典;
[0043]或,
[0044]權(quán)重分配子模塊,用于按照分詞詞典內(nèi)各個(gè)詞條預(yù)設(shè)的權(quán)重,將分詞詞典拆分為多個(gè)子詞典。
[0045]優(yōu)選的,還包括:
[0046]段落合并模塊,用于當(dāng)采用多個(gè)線程集合進(jìn)行分詞時(shí),將線程集合內(nèi)各個(gè)線程單元分詞后得到已分詞段落進(jìn)行合并,得到單集合分詞文本;
[0047]選取合并模塊,用于從所述一個(gè)或多個(gè)線程集合的單集合分詞文本中,選取分詞得到的詞條進(jìn)行合并,得到多集合分詞文本。
[0048]優(yōu)選的,所述線程集合確定模塊進(jìn)一步包括:
[0049]第一API確定子模塊,用于通過GPU預(yù)設(shè)的API接口,確定當(dāng)前GPU中的可用的線程
口 O
[0050]優(yōu)選的,所述線程單元確定子模塊進(jìn)一步包括:
[0051 ]第二API確定子模塊,用于通過GPU預(yù)設(shè)的API接口,確定所述一個(gè)或多個(gè)可用的線程集合中可用的線程單元。
[0052]本申請(qǐng)實(shí)施例包括以下優(yōu)點(diǎn):
[0053]本申請(qǐng)實(shí)施例通過將分詞詞典加載到GPU中的多個(gè)線程集合中,采用多個(gè)線程集合對(duì)待分詞文本進(jìn)行分詞;在每一個(gè)線程集合中通過多個(gè)可用的線程單元對(duì)待分詞文本的一部分進(jìn)行分詞;有效利用GPU內(nèi)存的高帶寬以及并行計(jì)算能力,提高分詞速度。
【附圖說明】
[0054]圖1是本申請(qǐng)的一種基于圖形處理器GPU的分詞方法實(shí)施例的步驟流程圖;
[0055]圖2是本申請(qǐng)實(shí)施例中一種基于圖形處理器GPU的分詞方法實(shí)施例1的示意圖;
[0056]圖3是本申請(qǐng)實(shí)施例中一種基于圖形處理器GPU的分詞方法實(shí)施例2的示意圖;
[0057]圖4是本申請(qǐng)的一種基于圖形處理器GPU的分詞裝置實(shí)施例的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0058]為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說明。
[°°59] GPU(Graphics Processing Unit,圖形處理器),最早被用來處理圖像數(shù)據(jù),因此目前的GHJ計(jì)算也主要被運(yùn)用于圖形處理、視頻轉(zhuǎn)碼或者語音分析等領(lǐng)域,而目前數(shù)據(jù)量最多的文本類分析和運(yùn)算主要還是采用CPU。
[0060] GPU相對(duì)于CPU在硬件架構(gòu)上具有兩個(gè)優(yōu)勢(shì)。其一是計(jì)算單元的優(yōu)勢(shì),GPU有大量的并行計(jì)算單元,適合做大量的單指令流多數(shù)據(jù)流(Single Instruct1n Multiple Data,SB?)計(jì)算;其二是內(nèi)存帶寬的優(yōu)勢(shì),GPU內(nèi)存帶寬遠(yuǎn)遠(yuǎn)高于CPU的內(nèi)存帶寬。
[0061 ]本申請(qǐng)實(shí)施例的核心構(gòu)思之一在于,將分詞算法移植到GPU執(zhí)行,有效的利用GPU內(nèi)存的高帶寬,以及并行計(jì)算的能力,提高所有分詞算法分詞的速度。
[0062]參照?qǐng)D1,示出了本申請(qǐng)的一種基于圖