iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
自我挑戰組

NLP 新手的 30 天入門養成計畫系列 第 7

[Day 7] - 探索句子的本質:命名實體辨別

  • 分享至 

  • xImage
  •  

命名實體辨別(Named Entity Recognition, NER)也是 NLP 中很重要的任務,它的目的是從句子中提取出關鍵的資訊。

我們昨天提到的詞性標註 ( POS ) 主要識別的是每一個單詞的詞性,如名詞、動詞、形容詞等,相比之下,NER 更關注在語意層次的標註,也就是文本中重要的實體。

這邊的實體指的是像人名、地點和時間等基礎資訊,或是更具體一點的公司名稱、藥品名稱之類的。

我們來舉個例子:

假設某一家公司想要提供產品查詢的服務,當使用者想要找 ”IKEA 的白色書櫃”,那麼 NER 的概念就像是從句子中提取出了以下資訊:

  • 公司:IKEA
  • 顏色:白色
  • 產品:書櫃

這樣一來,電腦就可以快速了解使用者的意圖,然後結合資料庫搜尋找出對應的產品。

不過想要達到上面這樣的 NER 結果,需要對模型進行訓練。就和 POS 一樣,以前也會使用基於規則(rule-based)的方法去識別出實體,之後才有了使用機器學習或深度學習的方式去訓練出更精準的 NER 模型。

NER 對於閱讀理解、問答系統以及關鍵資訊提取等技術非常有幫助,而我們也可以將其實際應用在金融、醫學、法律等需要對大量文本標註實體的任務上。

在了解 NER 之後,現在讓我們利用 Spacy 提供的工具來做一個小練習吧:

import spacy
from spacy import displacy

nlp = spacy.load('en_core_web_sm')
sentence = "Mark won $200 at a casino in Las Vegas yesterday."
doc = nlp(sentence)
displacy.render(doc, style = 'ent', jupyter = True)

Alt

在 Spacy 預設的工具中,我們可以標註出人名、金額、地點、時間等實體,這樣一來就可以更快速的掌握這個句子包含的關鍵資訊,進而完成其他任務。

此外,如果我們想要查看這些被標註的實體代表什麼意思的話,也可以執行這段程式碼:

for ent in ['PERSON', 'MONEY', 'GPE', 'DATE']:
  print(spacy.explain(ent))
People, including fictional
Monetary values, including unit
Countries, cities, states
Absolute or relative dates or periods

今天就先介紹到這邊吧,明天就可以來解析句子的結構了!

推薦文章
Named entity recognition (NER) in natural language processing


上一篇
[Day 6] - 探索句子的本質:詞性標註
下一篇
[Day 8] - 探索句子的本質:句法分析
系列文
NLP 新手的 30 天入門養成計畫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言