用于提取數(shù)據(jù)的三個(gè)開源NLP工具
譯文譯者 | 布加迪
審校 | 重樓
開發(fā)人員和數(shù)據(jù)科學(xué)家使用生成式AI和大語(yǔ)言模型(LLM)來查詢大量文檔和非結(jié)構(gòu)化數(shù)據(jù)。開源LLM包括Dolly 2.0、EleutherAI Pythia、Meta AI LLaMa和StabilityLM等,它們都是嘗試人工智能的起點(diǎn),可以接受自然語(yǔ)言提示,生成總結(jié)式響應(yīng)。
Fluree首席執(zhí)行官兼聯(lián)合創(chuàng)始人Brian Platz說:“作為知識(shí)和信息的基本來源,文本很重要,但目前還沒有任何端到端解決方案可以駕馭處理文本的復(fù)雜性。雖然大多數(shù)組織處理結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)、放到集中式數(shù)據(jù)平臺(tái)上,但非結(jié)構(gòu)化數(shù)據(jù)仍然被遺忘,未充分利用起來。”
如果貴組織和團(tuán)隊(duì)沒有試用自然語(yǔ)言處理(NLP)功能,可能落后于所在行業(yè)的競(jìng)爭(zhēng)對(duì)手。2023年專家NLP調(diào)查報(bào)告發(fā)現(xiàn),77%的組織表示計(jì)劃增加NLP方面的支出,54%的組織聲稱部署到生產(chǎn)環(huán)境的時(shí)間是衡量成功NLP項(xiàng)目的投資回報(bào)率的首要指標(biāo)。
NLP的用例
如果您有大量非結(jié)構(gòu)化數(shù)據(jù)和文本,那么一些最常見的業(yè)務(wù)需求包括如下:
- 通過識(shí)別名稱、日期、地點(diǎn)和產(chǎn)品,提取實(shí)體;
- 模式識(shí)別,以發(fā)現(xiàn)貨幣及其他數(shù)量;
- 對(duì)業(yè)務(wù)術(shù)語(yǔ)、主題和分類分門別類;
- 情緒分析,包括積極的、負(fù)面的和諷刺的情緒;
- 總結(jié)文件要點(diǎn);
- 機(jī)器語(yǔ)言翻譯成其他語(yǔ)言;
- 將文本轉(zhuǎn)換成機(jī)器可讀的半結(jié)構(gòu)化表示的依賴關(guān)系圖。
有時(shí)候,將NLP功能捆綁到平臺(tái)或應(yīng)用程序中是可取的。比如說,LLM支持提問,AI搜索引擎支持搜索和推薦,聊天機(jī)器人支持交互。而其他時(shí)候,使用NLP工具提取信息以及豐富非結(jié)構(gòu)化文檔和文本是最佳選擇。
不妨看看開發(fā)人員和數(shù)據(jù)科學(xué)家如今使用這三種流行的開源NLP工具,可用于針對(duì)非結(jié)構(gòu)化文檔執(zhí)行發(fā)現(xiàn)操作,并開發(fā)生產(chǎn)就緒的NLP處理引擎。
1. 自然語(yǔ)言工具包
自然語(yǔ)言工具包(NLTK)于2001年發(fā)布,是較悠久且較流行的NLP Python庫(kù)之一。NLTK在GitHub上擁有超過1.18萬顆星,列有100多個(gè)經(jīng)過訓(xùn)練的模型。
SPR的數(shù)據(jù)和分析主管Steven Devoe說:“我認(rèn)為對(duì)于NLP來說,最重要的工具是自然語(yǔ)言工具包(NLTK),它采用了Apache 2.0許可證。在所有的數(shù)據(jù)科學(xué)項(xiàng)目中,處理和清理算法所使用的數(shù)據(jù)耗用了大量的時(shí)間和精力,這在自然語(yǔ)言處理中尤為如此。NLTK加快了這方面的許多工作,比如詞干提取、詞源化、標(biāo)記、刪除停止詞以及跨多種書面語(yǔ)言嵌入詞向量,從而使算法更容易解釋文本。”
NLTK的優(yōu)點(diǎn)源于其耐久性,它為剛接觸NLP的開發(fā)人員提供了許多示例,比如這份初學(xué)者實(shí)踐指南和這個(gè)更全面的概述。任何學(xué)習(xí)NLP技術(shù)的人都可能想先試一下這個(gè)庫(kù),因?yàn)樗峁┝撕?jiǎn)單的方法來嘗試基本技術(shù),比如標(biāo)記化、詞干提取和分塊。
2.spaCy
spaCy是一個(gè)較新的庫(kù),2016年發(fā)布了版本1.0。spaCy支持72余種語(yǔ)言,已發(fā)布了其性能基準(zhǔn),它在GitHub上積累的星數(shù)超過了25000顆。
Domino數(shù)據(jù)實(shí)驗(yàn)室歐洲中東和非洲(EMEA)地區(qū)的數(shù)據(jù)科學(xué)主管Nikolay Manchev說:“spaCy是免費(fèi)的開源Python庫(kù),提供了對(duì)大量文本進(jìn)行高速自然語(yǔ)言處理的高級(jí)功能。使用spaCy,用戶就可以構(gòu)建模型和生產(chǎn)級(jí)應(yīng)用程序,它們支持文檔分析、聊天機(jī)器人功能和所有其他形式的文本分析。如今,spaCy框架是Python最流行的自然語(yǔ)言庫(kù)之一,用于從文本中提取關(guān)鍵字、實(shí)體和知識(shí)等行業(yè)用例。”
spaCy教程顯示了NLTK類似的功能,比如命名實(shí)體識(shí)別和詞性標(biāo)注。一個(gè)優(yōu)點(diǎn)是,spaCy返回文檔對(duì)象,并支持詞向量,這可以為開發(fā)人員執(zhí)行額外的NLP后數(shù)據(jù)處理和文本分析賦予更大的靈活性。
3.Spark NLP
如果您已經(jīng)使用Apache Spark并配置了其基礎(chǔ)設(shè)施,那么Spark NLP可能是開始嘗試自然語(yǔ)言處理的更便捷途徑之一。Spark NLP有幾個(gè)安裝選項(xiàng),包括AWS、Azure Databricks和Docker。
John Snow Labs的首席技術(shù)官David Talby說:“Spark NLP是一個(gè)廣泛使用的開源自然語(yǔ)言處理庫(kù),它使企業(yè)能夠以最高的精度從自由文本文檔中提取信息和答案。因此企業(yè)可以提取只存在于臨床記錄中的相關(guān)健康信息,識(shí)別社交媒體上的仇恨言論或虛假新聞,或概述法律協(xié)議和財(cái)經(jīng)新聞。”
Spark NLP的不同之處在于其是適用于醫(yī)療、金融和法律領(lǐng)域的語(yǔ)言模型。這些商業(yè)產(chǎn)品配備了預(yù)先訓(xùn)練的模型,用于識(shí)別醫(yī)療領(lǐng)域的藥物名稱和劑量、金融實(shí)體識(shí)別(比如股票行情信息)以及公司名稱和高管的法律知識(shí)圖譜。
Talby表示,Spark NLP可以幫助組織盡量減少開發(fā)模型所需的前期訓(xùn)練。他說:“這個(gè)免費(fèi)開源庫(kù)附帶超過11000個(gè)預(yù)訓(xùn)練的模型,外加重用、訓(xùn)練、調(diào)優(yōu)和輕松擴(kuò)展模型的功能。”
試用NLP的最佳實(shí)踐
我在職業(yè)生涯的早期有幸監(jiān)督過開發(fā)幾個(gè)使用NLP功能構(gòu)建的SaaS產(chǎn)品。第一個(gè)NLP是一個(gè)搜索報(bào)紙分類廣告的SaaS平臺(tái),包括搜索汽車、工作和房地產(chǎn)。然后,我領(lǐng)導(dǎo)開發(fā)了用于從商業(yè)建筑文件(包括建筑規(guī)格和藍(lán)圖)中提取信息的NLP。
在一個(gè)新領(lǐng)域開始入手NLP時(shí),我的建議如下:
- 從文檔或文本的一個(gè)代表性的小例子入手。
- 確定目標(biāo)最終用戶角色以及提取的信息如何改進(jìn)他們的工作流程。
- 指定所需的信息提取和目標(biāo)準(zhǔn)確性指標(biāo)。
- 測(cè)試幾種方法,使用速度和準(zhǔn)確性指標(biāo)進(jìn)行基準(zhǔn)衡量。
- 反復(fù)提高準(zhǔn)確性,尤其是在增加文檔的規(guī)模和廣度時(shí)。
- 準(zhǔn)備交付用于處理數(shù)據(jù)質(zhì)量和處理異常的數(shù)據(jù)管理工具。
您可能會(huì)發(fā)現(xiàn)用于發(fā)現(xiàn)和試用新型文檔的NLP工具將有助于界定需求。然后,擴(kuò)大NLP技術(shù)的比較范圍,涵蓋開源方案和商業(yè)方案,因?yàn)闃?gòu)建和支持生產(chǎn)就緒的NLP數(shù)據(jù)管道可能成本高昂。隨著LLM日益?zhèn)涫荜P(guān)注,對(duì)NLP功能方面投入不足會(huì)導(dǎo)致落后于競(jìng)爭(zhēng)對(duì)手。幸運(yùn)的是,您可以從本文介紹的其中一款開源工具入手,構(gòu)建NLP數(shù)據(jù)管道,以滿足自己的預(yù)算和需求。
原文標(biāo)題:3 open source NLP tools for data extraction,作者:Isaac Sacolick