」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > ETL:從文字中提取人名

ETL:從文字中提取人名

發佈於2024-11-07
瀏覽:570

假設我們想要抓取chicagomusiccompass.com

如你所見,它有幾張卡片,每張卡片代表一個事件。現在,讓我們來看看下一篇:

ETL: Extracting a Person

注意事件名稱是:


jazmin bean: the traumatic livelihood tour


所以現在的問題是:我們要如何從文本中提取藝術家的名字?

作為一個人,我可以「輕鬆地」看出 jazmin bean 是藝術家——只需查看他們的 wiki 頁面即可。但是編寫程式碼來提取該名稱可能會很棘手。

我們可以想,“嘿,: 之前的任何內容都應該是藝術家的名字”,這看起來很聰明,對吧?它適用於這種情況,但是這個怎麼樣:


happy hour on the patio: kathryn & chris


這裡,順序顛倒了。我們可以不斷添加邏輯來處理不同的情況,但很快我們就會得到大量脆弱的規則,並且可能無法涵蓋所有內容。

這就是命名實體識別(NER)模型派上用場的地方。它們是開源的,可以幫助我們從文字中提取名稱。它不會捕獲所有案例,但大多數時候,他們會給我們所需的資訊。

透過這種方法,提取變得更加容易。我選擇 Python 是因為 Python 機器學習社群是無與倫比的。


from gliner import GLiNER

model = GLiNER.from_pretrained("urchade/gliner_base")

text = "jazmin bean: the traumatic livelihood tour"
labels = ["person", "bands", "projects"]
entities = model.predict_entities(text, labels)

for entity in entities:
    print(entity["text"], "=>", entity["label"])


產生輸出:


jazmin bean => person


現在,讓我們來看看另一種情況:


happy hour on the patio: kathryn & chris


輸出:


kathryn => person
chris => person


來源-GLiNER

太棒了,對吧?不再需要繁瑣的邏輯來提取名稱,只需使用模型即可。當然,它不會涵蓋所有可能的情況,但對於我的專案來說,這種靈活性就很好了。如果您需要更高的準確性,您可以隨時:

  • 嘗試不同的模型
  • 對現有模型做出貢獻
  • 分叉項目並調整它以滿足您的需求

結論

身為軟體開發人員,強烈建議隨時更新機器學習領域的工具。並非所有問題都可以透過簡單的程式設計和邏輯來解決 - 使用模型和統計數據可以更好地解決一些挑戰。

版本聲明 本文轉載於:https://dev.to/garciadiazjaime/etl-extracting-a-persons-name-from-text-ahl?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 使用 cProfile 和 PyPy 模組優化 Python 程式碼:完整指南
    使用 cProfile 和 PyPy 模組優化 Python 程式碼:完整指南
    介绍 作为 Python 开发人员,我们通常先关注让代码正常运行,然后再担心优化它。然而,在处理大规模应用程序或性能关键型代码时,优化变得至关重要。在这篇文章中,我们将介绍两个可用于优化 Python 代码的强大工具:cProfile 模块和 PyPy 解释器。 在这篇文章的结尾,...
    程式設計 發佈於2024-11-07
  • 上週我學到了什麼(
    上週我學到了什麼(
    原生 JavaScript 中的反應性 – 使用代理模式在應用程式狀態變更時觸發事件。 (前端大師課程 - “你可能不需要框架”) throw new Error("Error!") 不能在三元中使用(至少不能用作'else' 部分。三元運算子的最後一部分必...
    程式設計 發佈於2024-11-07
  • 如何在 Linux 系統上將 Java 應用程式作為服務運行?
    如何在 Linux 系統上將 Java 應用程式作為服務運行?
    Linux 系統服務導航:將Java 應用程式作為服務運行在Linux 系統管理領域,將應用程式作為服務進行管理對於確保其可靠且受控的執行至關重要。本文深入探討了將 Java 伺服器應用程式配置為在 Linux 作業系統上作為服務運行的過程,為使用者提出的問題提供了全面的解決方案。 主要目標是創建一...
    程式設計 發佈於2024-11-07
  • 如何在不安裝 Angular CLI 的情況下建立 Angular 專案的特定版本
    如何在不安裝 Angular CLI 的情況下建立 Angular 專案的特定版本
    您是否使用 Angular 並需要使用不同的 Angular 版本設定項目?這是為特定版本建立 Angular 專案的簡單指南,無論是否使用 Angular CLI! 為什麼要使用特定的 Angular 版本? 在處理多個 Angular 專案時,有時您需要鎖定特定版本。也許您的專...
    程式設計 發佈於2024-11-07
  • 如何反轉 CSS 中文字的方向?
    如何反轉 CSS 中文字的方向?
    如何在CSS 中反轉文字方向處理文字時,可能會出現需要反轉其方向的情況,以便它從右到左流動,而不是預設的從左到右流動。本文為此類場景提供了使用 CSS 的解決方案。 更改文字方向的 CSS 程式碼下列 CSS 程式碼可用於反轉文字方向:.cssClassName { direction: rtl...
    程式設計 發佈於2024-11-07
  • 如何使用 JavaScript 從字串中移除“data-”前綴
    如何使用 JavaScript 從字串中移除“data-”前綴
    從字串中剝離前綴:刪除「data-」許多程式設計任務都涉及操作字串。一項常見任務是刪除字串的特定部分,例如前綴或後綴。在本例中,我們希望從字串中刪除“data-”前綴,同時保留剩餘字元。 以下JavaScript 程式碼片段示範如何使用Replace() 方法實現此目的:var ret = &quo...
    程式設計 發佈於2024-11-07
  • ## 如何有效分析 PHP 記憶體使用:Xdebug 替代方案和最佳實踐
    ## 如何有效分析 PHP 記憶體使用:Xdebug 替代方案和最佳實踐
    分析 PHP 記憶體消耗您尋求一種方法來檢查 PHP 頁面的記憶體使用量。具體來說,您的目標是確定資料的記憶體分配並識別導致大量記憶體消耗的函數呼叫。 Xdebug 的限制雖然 Xdebug 提供了跟踪功能,提供內存增量信息,其豐富的數據可能令人難以承受。如果細粒度過濾選項可用,問題就可以解決。然而...
    程式設計 發佈於2024-11-07
  • 如何在虛擬 DOM 中渲染元件以及如何最佳化重新渲染
    如何在虛擬 DOM 中渲染元件以及如何最佳化重新渲染
    构建现代 Web 应用程序时,高效更新 UI(用户界面)对于保持应用程序快速响应至关重要。许多框架(如 React)中使用的常见策略是使用 虚拟 DOM 和 组件。本文将解释如何使用 Virtual DOM 渲染组件,以及如何优化重新渲染以使 Web 应用程序不会变慢。 1.什么是虚...
    程式設計 發佈於2024-11-07
  • CRUD 操作:它們是什麼以及如何使用它們?
    CRUD 操作:它們是什麼以及如何使用它們?
    CRUD 操作:它們是什麼以及如何使用它們? CRUD 操作(建立、讀取、更新和刪除)是任何需要資料管理的應用程式的基礎。對於開發人員來說,了解這些操作非常重要,因為它們提供了我們有效與資料庫互動所需的基本功能。在這篇文章中,我將透過展示如何將 CRUD 操作整合到我的 Yoga ...
    程式設計 發佈於2024-11-07
  • 推出免費 Java 實用程式包
    推出免費 Java 實用程式包
    面向 Java 后端开发人员的快速且易于使用的编程工具包 在我作为管理员和开发人员的职业生涯中,我多次从无数的免费软件和开源产品中受益。因此,我很自然地也为这个社区做出贡献。 这个 Java 类集合是在各种项目过程中创建的,并将进一步开发。我希望这个工具也能为您服务。 https://java-ut...
    程式設計 發佈於2024-11-07
  • 如何在 PHP Foreach 迴圈中檢索巢狀數組的數組鍵?
    如何在 PHP Foreach 迴圈中檢索巢狀數組的數組鍵?
    PHP:在Foreach 循環中檢索數組鍵在PHP 中,使用foreach 循環迭代關聯數組可以存取這兩個值和鑰匙。但是, key() 函數僅傳回目前值的鍵,這在處理巢狀數組時可能是不夠的。 例如,考慮這樣的陣列:<?php $samplearr = array( 4722 =>...
    程式設計 發佈於2024-11-07
  • 如何將 MySQL 表中的 Latin1 字元轉換為 UTF-8?
    如何將 MySQL 表中的 Latin1 字元轉換為 UTF-8?
    將UTF8 表上的Latin1 字元轉換為UTF8您已確定您的PHP 腳本缺少必要的mysql_set_charset 函數以確保正確處理UTF-8 字元。儘管實施了此修復,您現在仍面臨著修正包含儲存在 UTF8 表中的 Latin1 字元的現有行的挑戰。 要解決此問題,您可以利用 MySQL 函數...
    程式設計 發佈於2024-11-07
  • 如何使用 Zapcap API(字幕 API)
    如何使用 Zapcap API(字幕 API)
    將 ZapCap 的自動視訊處理 API 整合到您現有的系統中是一個簡單的過程,旨在最大限度地降低複雜性並最大限度地提高效率。 ZapCap 提供開發人員友好的 API 文檔,以確保無縫入門。 逐步整合指南 步驟 1:在 ZapCap 取得您的 API 金鑰 在開始之前...
    程式設計 發佈於2024-11-07
  • 探索引導元件
    探索引導元件
    Bootstrap 5 是最受歡迎的前端框架之一,它帶來了一系列有用的組件和實用程序,可幫助開發人員快速構建響應靈敏且具有視覺吸引力的網站。 牌 卡片是 Bootstrap 5 中的多功能元件,可讓您以乾淨、有組織的方式顯示內容。它們非常適合以美觀且實用的方式展示資訊。 ...
    程式設計 發佈於2024-11-07
  • 簡化 SVG 管理:將路徑轉換為單一 JS 常數文件
    簡化 SVG 管理:將路徑轉換為單一 JS 常數文件
    构建 React.js 应用程序时,有效管理 SVG 图标至关重要。 SVG 提供了响应式设计所需的可扩展性和灵活性,但在大型项目中处理它们可能会变得很麻烦。这就是 svg-path-constants 的用武之地,它是一个 CLI 工具,旨在通过将 SVG 路径转换为可重用常量来简化 SVG 工作...
    程式設計 發佈於2024-11-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3