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