關(guān)鍵詞:中英文分詞算法;設(shè)備端算法;詞典匹配
0 引言
1) 研究背景與意義。各種智能設(shè)備已成為提高工作和學(xué)習(xí)效率的重要工具,特別是學(xué)習(xí)輔助設(shè)備如電子詞典、掃描翻譯筆等,為學(xué)生提供了便捷的學(xué)習(xí)方式,極大地豐富了學(xué)習(xí)資源和環(huán)境。中英文分詞算法作為文本處理的基礎(chǔ)技術(shù),對于提高智能設(shè)備的文本識別和處理能力具有至關(guān)重要的作用。例如,在掃描翻譯筆類產(chǎn)品中,OCR掃描后獲取的文本需要進(jìn)行分詞,以便更快捷地與內(nèi)置資源進(jìn)行匹配,從而讓學(xué)習(xí)更加高效。
通過對中英文分詞算法的研究,并針對設(shè)備的特性進(jìn)行優(yōu)化,不僅可以促進(jìn)技術(shù)發(fā)展,還可以直接提升算法在端側(cè)設(shè)備上的性能,進(jìn)而改善廣大使用者的體驗(yàn)。鑒于此,本文對中英文分詞算法進(jìn)行了研究,并提出一種適用于設(shè)備端應(yīng)用場景的算法設(shè)計(jì)思路和實(shí)現(xiàn)方案。該算法將考慮終端設(shè)備的特殊需求,如處理速度、用戶交互體驗(yàn)和準(zhǔn)確率等,力求在不斷進(jìn)步的技術(shù)潮流中,為使用者提供更為精準(zhǔn)便捷的學(xué)習(xí)體驗(yàn)。
2) 相關(guān)工作回顧。在中英文分詞算法的研究領(lǐng)域,學(xué)者們已經(jīng)提出了多種方法來提高分詞的精確度和效率。對于中文來說,基于詞典的分詞方法、基于統(tǒng)計(jì)的模型[1]以及近年來流行的深度學(xué)習(xí)方法[2],如雙向長短時(shí)記憶網(wǎng)絡(luò)(BiLSTM) 和卷積神經(jīng)網(wǎng)絡(luò)(CNN) [3],都為分詞技術(shù)的進(jìn)步作出了貢獻(xiàn)。而在英文分詞方面,除了傳統(tǒng)的基于空格和標(biāo)點(diǎn)符號的分詞方法,還有基于自然語言處理的分詞算法,如基于正則表達(dá)式的方法、基于隱馬爾可夫模型(HMM) 的方法等。
在學(xué)習(xí)輔助設(shè)備的應(yīng)用中,分詞算法主要用于提升設(shè)備的文本掃描和翻譯質(zhì)量。例如,在掃描詞典筆中,可以通過分詞算法糾正用戶掃描文本的OCR文本識別結(jié)果、進(jìn)行有效分詞以便用戶可逐個(gè)單詞點(diǎn)擊并與內(nèi)置資源進(jìn)行匹配,還可以輔助后續(xù)的語音合成和文本翻譯等。在智能教育軟件中,分詞算法能夠幫助軟件更好地理解和處理用戶輸入的查詢。
盡管現(xiàn)有的分詞算法在學(xué)習(xí)輔助設(shè)備中已經(jīng)取得了一定的應(yīng)用成果,但仍然存在一些挑戰(zhàn)和不足。例如,對于復(fù)雜語境下的句子或者生僻詞匯,現(xiàn)有算法的分詞效果仍不理想。此外,學(xué)習(xí)輔助設(shè)備的一個(gè)重要使用場景可能是無網(wǎng)絡(luò)環(huán)境,該場景下分詞算法只能使用本地端方案,對實(shí)時(shí)性的要求較高,而現(xiàn)有算法在處理速度上仍有提升空間。為此,本文通過深入分析研究學(xué)習(xí)輔助設(shè)備場景下中英文分詞算法的需求,為學(xué)習(xí)輔助領(lǐng)域取得更好的應(yīng)用效果,提出了切實(shí)可行的本地中英文分詞算法落地方案。
3) 研究目標(biāo)與貢獻(xiàn)。該研究的主要目標(biāo)是針對學(xué)習(xí)輔助設(shè)備這一特殊應(yīng)用場景下的設(shè)備端中英文分詞算法,以達(dá)到更好的跨平臺性和可移植性為目的,設(shè)計(jì)并實(shí)現(xiàn)一種高效可行的算法,主要針對純C 語言實(shí)現(xiàn)。預(yù)期成果包括提升分詞的整句準(zhǔn)確率、減少每次分詞耗時(shí),以及輔助改善用戶體驗(yàn)(協(xié)助學(xué)習(xí)輔助設(shè)備后續(xù)的文本翻譯和語音合成等)。通過優(yōu)化算法,希望能夠在不增加系統(tǒng)負(fù)擔(dān)的前提下,提高學(xué)習(xí)輔助設(shè)備在文本解析方面的性能。此外,本研究還會探索算法在兩款硬件平臺上的實(shí)際表現(xiàn),并通過算法性能和效果測試驗(yàn)證其有效性和可行性。
本研究提出的方案的貢獻(xiàn)主要體現(xiàn)在以下3個(gè)方面:首先,提出一種新的中英文混合文本分詞算法,該算法考慮了學(xué)習(xí)輔助設(shè)備中的實(shí)際應(yīng)用情況,如對實(shí)時(shí)性和準(zhǔn)確性的要求。其次,通過對比實(shí)驗(yàn)驗(yàn)證了所提算法在準(zhǔn)確率和效率上的優(yōu)勢,為學(xué)習(xí)輔助設(shè)備提供了更為可靠的文本處理技術(shù)支持。最后,本研究提出的算法實(shí)現(xiàn)為學(xué)習(xí)輔助設(shè)備上中英文分詞算法的實(shí)現(xiàn)提供了有價(jià)值的參考和啟示。
1 分詞算法基礎(chǔ)
1.1 中文分詞技術(shù)概述
中文分詞是自然語言處理領(lǐng)域的基礎(chǔ)任務(wù),其目標(biāo)是將連續(xù)的漢字序列切分成有意義的詞語。由于中文文本中詞語之間沒有明顯的界限標(biāo)志,因此這一任務(wù)對計(jì)算機(jī)來說極具挑戰(zhàn)性。傳統(tǒng)的中文分詞方法主要基于詞典匹配,包括正向最大匹配、逆向最大匹配和雙向匹配等。這些方法簡單有效,但對于未登錄詞和歧義切分問題處理不佳。隨著技術(shù)的發(fā)展,基于統(tǒng)計(jì)學(xué)習(xí)的模型、條件隨機(jī)場以及近年來流行的深度學(xué)習(xí)方法被廣泛應(yīng)用于中文分詞任務(wù)中,顯著提高了分詞的準(zhǔn)確率。
1.2 英文分詞技術(shù)概述
英語分詞任務(wù)由于英語單詞之間一般都是以空格分隔的,所以相對于中文分詞來說相對簡單一些。然而,英文分詞并非毫無挑戰(zhàn),特別是在處理衍生詞、縮略詞、數(shù)字和特殊符號時(shí)。英文分詞需要考慮詞形還原、詞性標(biāo)注和句法結(jié)構(gòu)等因素。常用的技術(shù)包括正則表達(dá)式匹配、動(dòng)態(tài)規(guī)劃算法以及基于機(jī)器學(xué)習(xí)的方法。近年來,深度學(xué)習(xí)技術(shù)的引入進(jìn)一步提升了英文分詞的性能,尤其是在處理不規(guī)則單詞和上下文依賴的應(yīng)用場景中。
1.3 智能設(shè)備端對分詞算法的特殊需求
智能設(shè)備,特別是學(xué)習(xí)輔助設(shè)備,對分詞算法提出了特殊的要求。學(xué)習(xí)輔助設(shè)備上的中英文分詞算法的首要任務(wù)是可以完成基于詞典的分詞,詞典即為學(xué)習(xí)輔助設(shè)備內(nèi)置的詞典資源,只有能準(zhǔn)確分詞,才可更快捷地完成掃讀查詞等任務(wù)。首先,準(zhǔn)確性是最重要的考慮因素,因?yàn)殄e(cuò)誤的分詞結(jié)果會直接影響學(xué)習(xí)效果。其次,實(shí)時(shí)性也至關(guān)重要,設(shè)備需要在有限的時(shí)間內(nèi)返回結(jié)果,這要求分詞算法具有高效的處理能力。因此,對于端側(cè)的學(xué)習(xí)輔助設(shè)備的應(yīng)用,主要選擇基于詞典的分詞算法進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),以滿足學(xué)習(xí)輔助設(shè)備的特定需求。
2 算法設(shè)計(jì)
2.1 算法框架
根據(jù)學(xué)習(xí)輔助設(shè)備的應(yīng)用場景,本研究采用基于詞典的分詞算法設(shè)計(jì)思路。該算法按照一定的策略,將待匹配的字符串與一個(gè)已建立好的“充分大的”詞典資源中的詞條進(jìn)行匹配,若找到某個(gè)詞條,則表明匹配成功,識別出該詞。特定算法策略采用字符串正向最大值匹配的方式。算法框架如圖1所示。
2.2 關(guān)鍵技術(shù)詳述
在中英文分詞算法的設(shè)計(jì)中,關(guān)鍵技術(shù)主要包括以下幾個(gè)方面:
1)“ 字”切分與指針設(shè)置。在這一步中,算法需要對文本序列進(jìn)行細(xì)粒度的切分,識別出單個(gè)漢字、標(biāo)點(diǎn)符號、連續(xù)的字母串和數(shù)字串。然后,設(shè)置兩層“字”指針,用于跟蹤當(dāng)前處理位置和狀態(tài)。
2) 子串匹配與詞典查找。這是分詞算法的核心步驟。從兩層“字”指針?biāo)赶蛭恢瞄_始,按照從左到右正向最大匹配原則,依次截取子串并與詞典中詞條進(jìn)行匹配。詞典查找采用散列hash算法,以提高查找效率。
3) 子串記錄與指針更新。當(dāng)找到匹配的詞條時(shí),將其記入分詞序列中,并更新兩層“字”指針,準(zhǔn)備進(jìn)行下一次的子串匹配。
4) 結(jié)束條件檢查。在每次循環(huán)結(jié)束后,檢查文本串是否已全部匹配完畢。如果還有未完成部分,則退回第2步繼續(xù)執(zhí)行;否則,整個(gè)分詞環(huán)節(jié)結(jié)束。
5) 詞典的構(gòu)建。詞典是分詞算法不可或缺的部分,它包含了所有可能的詞匯。在構(gòu)建詞典時(shí),需要考慮到詞匯多樣性和覆蓋面,同時(shí)也需要定期更新詞典以適應(yīng)語言的變化。
6) 字符串匹配算法。字符串匹配算法是分詞過程中另一個(gè)重要環(huán)節(jié)。本研究采用的是散列hash算法進(jìn)行字符串匹配,該算法通過將字符串轉(zhuǎn)換為唯一的哈希值來快速定位和比較字符串,從而提高匹配效率和準(zhǔn)確性。
通過以上關(guān)鍵技術(shù)的應(yīng)用,本研究提出的中英文分詞算法能夠有效地處理學(xué)習(xí)輔助設(shè)備中的文本序列,滿足高精度和高效率的要求。
2.3 算法優(yōu)化策略
針對上述的算法框架和關(guān)鍵技術(shù)描述,可以采取以下優(yōu)化策略來進(jìn)一步提高分詞算法的性能:
1) 詞典結(jié)構(gòu)優(yōu)化。優(yōu)化詞典的數(shù)據(jù)結(jié)構(gòu),如使用樹形結(jié)構(gòu)(比如字典樹Trie) 來組織詞典,可以大幅提高字符串搜索效率。
2) 算法并行化。利用現(xiàn)代計(jì)算機(jī)多核處理器的優(yōu)勢,將算法中計(jì)算密集型部分并行化,例如并行地進(jìn)行字符串匹配,以減少總體處理時(shí)間。
3) 自適應(yīng)分詞策略。根據(jù)不同應(yīng)用場景和用戶習(xí)慣,動(dòng)態(tài)調(diào)整分詞策略。例如,對于專業(yè)性較強(qiáng)的材料,使用更為精細(xì)的分詞規(guī)則;而對于通用材料,則使用標(biāo)準(zhǔn)分詞規(guī)則。
4) 反饋機(jī)制。引入用戶反饋機(jī)制,根據(jù)用戶的實(shí)際使用情況不斷調(diào)整和優(yōu)化算法,詞典資源打包支持強(qiáng)制設(shè)置分詞,以便對算法進(jìn)行兜底和快速響應(yīng)用戶需求。這包括收集用戶對分詞結(jié)果的反饋、分析錯(cuò)誤案例,不斷地完善分詞詞典和分詞規(guī)則[4]。
3 算法實(shí)現(xiàn)
3.1 數(shù)據(jù)集準(zhǔn)備
根據(jù)上述分詞場景需求,數(shù)據(jù)集主要分為兩部分:
1) 詞典。根據(jù)學(xué)習(xí)輔助設(shè)備使用場景,主要是掃描語文或者英文教材,實(shí)現(xiàn)查詞功能,詞典主要收集了K12 教育階段教材里的一些詞語和古詩詞等句子,具體詞典數(shù)據(jù)如表1所示。
2) 測試集。參考了一些其他分詞測試集語料庫的構(gòu)架和標(biāo)注方法[4],選取小初高語文和英語課本的一些句子作為效果驗(yàn)證和評價(jià)集,數(shù)據(jù)的標(biāo)注是根據(jù)人們的主觀感知進(jìn)行標(biāo)注的,具體如表2所示。
實(shí)例:
[文本] 攝提貞于孟陬兮,惟庚寅吾以降。小高大搖大擺地走了。
[標(biāo)注] 攝提貞于孟陬兮/,/惟庚寅吾以降/。/小/ 高/大搖大擺/地/走/了/。/
3.2 實(shí)現(xiàn)環(huán)境與工具
為了確保算法的廣泛適用性和可移植性,本研究采用平臺無關(guān)的C語言進(jìn)行中英文分詞算法的實(shí)現(xiàn)。C語言具有高效、穩(wěn)定和跨平臺的特性,使其成為處理字符串和實(shí)現(xiàn)復(fù)雜邏輯的理想選擇。在硬件環(huán)境方面,算法可以在任何支持C語言編譯的環(huán)境中運(yùn)行,學(xué)習(xí)輔助設(shè)備的開發(fā)一般都采用C/C++編程語言進(jìn)行開發(fā),這樣可以滿足學(xué)習(xí)輔助設(shè)備對算法的實(shí)現(xiàn)要求。
3.3 實(shí)現(xiàn)細(xì)節(jié)
1) 詞典資源。詞典資源的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)好壞會直接影響算法性能,為了提高分詞引擎初始化效率,詞典資源的生成要采用離線生成并打包成二進(jìn)制資源文件的方式實(shí)現(xiàn)[5],在分詞引擎初始化時(shí)再加載到內(nèi)存中。
為了便于在不同應(yīng)用場景中和不同詞典進(jìn)行匹配,需要支持多個(gè)不同類型的詞典。
每個(gè)類型詞典的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)如下:
2) 字符串匹配的hash 算法??紤]后續(xù)分詞搜索速度,對于每個(gè)詞條存儲采用字符串哈希算法進(jìn)行存儲,這樣分詞的效率和詞條數(shù)量關(guān)系沒那么大,允許存在不同字符串對應(yīng)的hash 值相同的情況,實(shí)際測試這種情況存在但是不頻繁(如果不考慮內(nèi)存開銷,可以將hash 映射的數(shù)組范圍開得更大,這樣可以減少hash值沖突)。
4 實(shí)驗(yàn)及結(jié)果分析
4.1 實(shí)驗(yàn)數(shù)據(jù)
采用上述3.1章節(jié)的詞典數(shù)據(jù)集和測試集進(jìn)行實(shí)驗(yàn)。
1) 詞典資源。包含50萬條中文和英文詞條。
2) 測試數(shù)據(jù)。中文集合15 987 個(gè)句子,英文27 251個(gè)句子。
4.2 實(shí)驗(yàn)結(jié)果
1) 算法效率相關(guān)結(jié)果。算法支持輸入文本為UTF8 格式,單次分詞最長為3 000 字節(jié)(約1 000 漢字),測試集中最長文本為2 978 字節(jié)。為了對比分詞算法性能,測試選擇了兩個(gè)平臺,測試結(jié)果如表3所示。
2) 算法準(zhǔn)確率相關(guān)結(jié)果。測試集采用了人工標(biāo)注分詞結(jié)果,評估算法準(zhǔn)確率是采用如下方式進(jìn)行計(jì)算,如果全句的分詞結(jié)果和人工標(biāo)注一致,則該句記為分詞正確,只要有一處分詞錯(cuò)誤,都記為分詞錯(cuò)誤,分詞準(zhǔn)確率=分詞正確句數(shù)/測試總句數(shù)。具體測試結(jié)果如表4所示。
4.3 結(jié)果分析
本次實(shí)驗(yàn)對中英文分詞算法的效率和準(zhǔn)確率進(jìn)行了詳細(xì)評估。通過對不同平臺下的算法性能測試以及在多個(gè)數(shù)據(jù)集上的準(zhǔn)確率驗(yàn)證,可得到以下分析結(jié)果:
1) 算法效率相關(guān)分析。算法在兩種不同硬件平臺上的測試表明,在通用PC上,完成1 000字的輸入文本的分詞耗時(shí)僅為3 ms,這得益于其強(qiáng)大的計(jì)算能力和較高的處理器頻率;而全志V833芯片,雖然配置了單核CortexA7@1.2 GHz處理器,但其分詞耗時(shí)顯著增加至68 ms。這表明算法在處理能力較弱的芯片上的性能有待進(jìn)一步優(yōu)化。但整體性能表現(xiàn)均較優(yōu)。此外,算法內(nèi)存占用與平臺無關(guān),在支持50萬詞典的情況下僅需 40 MB 內(nèi)存,顯示出良好的內(nèi)存管理能力。
2) 算法準(zhǔn)確率相關(guān)分析。在準(zhǔn)確率測試中,使用了人工標(biāo)注分詞結(jié)果作為基準(zhǔn),確保了評估的準(zhǔn)確性和權(quán)威性。測試結(jié)果顯示,在中文小初高教材句子數(shù)據(jù)集上,分詞準(zhǔn)確率達(dá)到了90.7%,而在英文小初高教材句子數(shù)據(jù)集上,準(zhǔn)確率稍低,為81.0%。整體算法效果達(dá)到實(shí)用水平。
在英文測試集上表現(xiàn)不如中文測試集,經(jīng)過分析主要有兩個(gè)原因:一是測試集標(biāo)注存在一些問題,因?yàn)闃?biāo)注人員對英文的分詞不像對中文那么熟悉,所以標(biāo)注結(jié)果的個(gè)人主觀性差異較大。如句子“This isthe way I go to bed.”分詞成“This is/the way/I/go to bed/./”和“This/ is/the/way/I/go to bed/./”都可以接受,但在統(tǒng)計(jì)準(zhǔn)確率時(shí)須與標(biāo)注對比,可能導(dǎo)致準(zhǔn)確率統(tǒng)計(jì)偏低。二是英文分詞存在一些特殊情況,如連字符、縮寫詞(如I’m) 等,有待進(jìn)一步優(yōu)化。
綜合以上分析,本研究的中英文分詞算法表現(xiàn)出了高效和相對準(zhǔn)確的分詞能力。然而,針對低性能處理器的優(yōu)化和英文文本的分詞準(zhǔn)確率仍有提升空間。未來工作可集中在改進(jìn)算法以適應(yīng)低性能硬件環(huán)境,以及對英文文本處理規(guī)則的細(xì)化和優(yōu)化上。
5 結(jié)論與展望
本研究針對學(xué)習(xí)輔助設(shè)備中的中英文分詞算法進(jìn)行了深入探究與實(shí)踐,提出了一種高效、準(zhǔn)確的分詞方法,并對該方法進(jìn)行了詳細(xì)的設(shè)計(jì)與實(shí)現(xiàn)。通過在兩款平臺上的測試表明,該分詞算法在保證較高準(zhǔn)確率的同時(shí),具有較快的處理速度,能夠滿足學(xué)習(xí)輔助設(shè)備對實(shí)時(shí)性的要求。
實(shí)驗(yàn)也揭示了當(dāng)前工作仍有提升空間。特別是在英文文本的處理上,如何進(jìn)一步提高分詞準(zhǔn)確性以及如何處理特殊語言現(xiàn)象(如連字符、縮寫等),將是未來工作的重點(diǎn)。此外,針對低端硬件設(shè)備的優(yōu)化也是未來研究的方向之一,以期望該算法能在更廣泛的學(xué)習(xí)輔助設(shè)備上得到有效應(yīng)用。