摘要:如果一個解決方案將"tonight"和"in the evening in 4 days"劃分爲正確的日期和時間範圍,將"Denver"和"San Francisco"作爲地點或城市,那麼該解決方案將實現100%的精確度和召回率。spaCy NER模型的性能與IBM相同,只返回屬於時間、日期或位置類別的單詞。

  磐創AI分享   

來源 | Towards Data Science

作者 | Felix Laumann

編譯 | VK

【作者導語】 NER是信息提取的一個子任務,它試圖定位並將非結構化文本中提到的指定實體劃分爲預定義的類別,如人名、組織、位置、醫療代碼、時間表達式、數量、貨幣。

我們創建了我們自己的小型測試數據集,其中11個示例來自谷歌的Taskmaster 2數據集,該數據集於2020年2月剛剛發佈。我們將此數據集視爲NER解決方案中未來研究和產品的基準數據集。我們用該數據集來探索TextSpace。

這個數據集中的句子可能在長度和包含的信息上有所不同,但是我們選擇了其中包含大量實體的句子,因此我們可以根據最新的NER解決方案來區分優劣。我們測試集中的句子來自不同的領域,因爲我們想看看我們在這篇文章中比較的解決方案有多靈活。請注意,這些示例中使用了Dialogflow聊天機器人,因此我們也希望Dialogflow在這些例子上能夠執行得很好。

我們將首先詳細地看兩個例子,最後會有一個總結。

機票預訂

讓我們以一個想要預訂航班的用戶的句子爲例:

"So, I would like to fly out sometime tonight and fly back in the evening in 4 days. From I’m looking to go to Denver. I’m flying out of San Francisco."

IBM的MAX命名實體標記器執行得並不好,它只返回屬於時間和位置類別的單詞。不幸的是,它甚至在第二句的開頭將"I"錯誤地歸類爲一個事件。

與此相比,StanfordNLP NER模型的性能要好得多。找到所有可能的實體,甚至返回正確的日期。然而,有一個小錯誤發生了,那就是沒有意識到"in the evening in 4 days"是屬於一起的。它把"evening"劃分爲今天的晚上,而不是四天裏的晚上。

spaCy NER模型的性能與IBM相同,只返回屬於時間、日期或位置類別的單詞。它沒有顯示StanfordNLP的確切日期。

在本例中,我們的解決方案TextSpace執行得非常好,它提取了所有可能的具有確切日期的實體,類似於StanfordNLP。但是,TextSpace也會返回一個時間週期的時間間隔,它不是很具體,例如"evening"或"tonight"。這裏第一個是地點:

和時間:

不幸的是,TextSpace也不承認"evening"和"4 days"屬於一起,並返回當天的晚上,就像StanfordNLP所做的那樣。

我們使用Dialogflow聊天機器人預訂,我們可以得到平庸的結果。它能正確識別日期和時間、出發城市和到達城市,但卻完全忽略了"in 4 days"。非常令人失望,因爲我們使用了谷歌數據集和Dialogflow的特定於域的聊天機器人來預測。

酒店預訂

接下來,我們用下面的句子來比較這四種解決方案:

"I would like to book a room in the Park Hyatt Aviara Resort and it costs $279 per night. It’s rated 4.8 stars. It offers an 18-hole golf course, an outdoor pool & tennis courts plus a spa & fine dining."

我們再次從IBM的MAX實體標記器開始。我們想要入住的酒店被認爲是一個地點,而"&"被錯誤地認爲是一個組織。例如,完全忽略了"$279"的價格。與前面的機票預訂示例一樣,性能相當差。

StanfordNLP做了更好的工作,發現"279美元"是錢,停留的時間和star的數量。不幸的是,我們的酒店也被歸類爲一個地點,而不是一個組織,它可能對某些應用程序起作用,但當用戶希望自動轉發到酒店網站時,這可能不起作用。它也不承認279美元的價格屬於"per night",而將"night"作爲日期返回。

我們使用Dialogflow預先訓練過的酒店預訂機器人,這讓我們自然地期望它的結果至少和StanfordNLP發現的一樣好。不幸的是,情況並非如此,甚至連"279"。日期也沒有找到了。

正如前面的例子所示,spaCy的表現也同樣糟糕。我們的酒店"Park Hyatt Aviara Resort"被歸類爲設施(FAC),這並不完全正確,但"279"被正確歸類爲金錢。不幸的是,"spa & fine"被錯誤地視爲一個組織。

TextSpace在這五個解決方案中表現最好。它發現"Hyatt"作爲一個組織,其貨幣價值爲"279美元",跳過"night",因爲它知道279美元是每晚的價格,能找到所有的數字。

整體結果

正如所承諾的,我們現在比較所有這五個解決方案在我們的測試集的11個例子的表現來衡量。衡量方法很直接:我們知道哪些句子對應的劃分方式,我們計算分類的相關信息。例如,在句子"So, I would like to fly out sometime tonight and fly back in the evening in 4 days. From I’m looking to go to Denver. I’m flying out of San Francisco."。如果一個解決方案將"tonight"和"in the evening in 4 days"劃分爲正確的日期和時間範圍,將"Denver"和"San Francisco"作爲地點或城市,那麼該解決方案將實現100%的精確度和召回率。換句話說,所有潛在的實體都被發現了,並且都被正確地分類了。當其中一個單詞被漏掉,比如"evening in 4 days",只有3/4的單詞是正確的,召回率爲75%。另外,如果一個詞被錯誤分類,比如"I"是一個組織,那麼準確率將下降到4/5,即80%。如果找到日期,但是隻返回"time"或"date",而沒有精確的日期或時間,我們將減去0.5。

與其他四種解決方案相比,TextSpace的NER表現最好,緊隨其後的是StanfordNLP。IBM的MAX實體標記器總體上令人失望。

下面是這些柱狀圖上的數字:

複製我們的結果

如果你想重現這些結果,以下是我們使用的11個英文句子:

  • Flight booking 1: "So, I would like to fly out sometime tonight and fly back in the evening in 4 days. From I’m looking to go to Denver. I’m flying out of San Francisco."

  • Flight booking 2: "Okay, you got it so it looks like United Airlines leaves at 9:20 p.m. that is nonstop the flight duration is 2 hours and 28 minutes and is priced at $337."

  • Flight booking 3: "I found a flight that leaves Seattle coming Monday at 7:35 a.m and arrives in Tampa at 4:10 p.m."

  • Hotel booking 1: "Park Hyatt Aviara resort Golf Club and Spa, it’s $279 per night. It‘s rated 4.8 stars. Resort offering an 18-hole golf course, an outdoor pool & tennis courts plus a spa & fine dining."

  • Hotel booking 2: "Staybridge Suites Carlsbad, it’s $145 per night. It’s rated 4.5 stars. Warm suites with kitchens in a relaxed property featuring an outdoor pool, a gym & a BBQ area."

  • Cinema 1: "The Mummy is playing at 4:30 pm this afternoon at Regal Davis Stadium 5."

  • Cinema 2: "I have Chips playing at 9:50 PM. I have Get Out playing at 10:15 PM. and Snaps playing at 10:25 PM."

  • Music 1: "Here’s a song diamonds originally by Rihanna Cover by One Voice Children’s Choir."

  • Restaurant 1: "Hi, currently I’m in IKEA, California. I’m looking for restaurant to eat dinner."

  • Restaurant 2: "I found a highly rated restaurant called Second Floor in Kitchen, it is 4.3 stars out of 5 and it’s described is New American tasting menus in a sophisticated setting. How does it sound?"

  • Sports 1: "On last Saturday, September 9th, LA Dodgers played against New York Red Bulls and it was a draw with the score 1–1."

有關實現的更多細節,請參見我們的GitHub存儲庫: https://github.com/kumar-shridhar/NER-Benchmarks

原文鏈接: https://towardsdatascience.com/benchmarking-named-entity-recognition-stanfordnlp-ibm-spacy-dialogflow-and-textspace-af6615eb7930

- End -

✄------------------------------------------------

看到這裏,說明你喜歡這篇文章,請點擊「 在看 」或順手「 轉發 」「 點贊 」。

歡迎微信搜索「 panchuangxx 」,添加小編 磐小小仙 微信,每日朋友圈更新一篇高質量推文(無廣告),爲您提供更多精彩內容。

▼       掃描二維碼添加小編   ▼    ▼  

相關文章