假設我們想要抓取chicagomusiccompass.com。
如你所見,它有幾張卡片,每張卡片代表一個事件。現在,讓我們來看看下一篇:
注意事件名稱是:
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
太棒了,對吧?不再需要繁瑣的邏輯來提取名稱,只需使用模型即可。當然,它不會涵蓋所有可能的情況,但對於我的專案來說,這種靈活性就很好了。如果您需要更高的準確性,您可以隨時:
身為軟體開發人員,強烈建議隨時更新機器學習領域的工具。並非所有問題都可以透過簡單的程式設計和邏輯來解決 - 使用模型和統計數據可以更好地解決一些挑戰。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3