作者|Felix Laumann
編譯|VK
來源|Towards Data Science
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"的價格也沒有找到,它正確地將"Hyatt"歸類為場地連鎖,但錯誤地將其商業名稱歸類為"Resort and it costs $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
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方檔案:
http://sklearn123.com/
歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/21490.html
標籤:其他
上一篇:各位大佬,小白請教一下python的distutils.core模塊中setup函式打包失敗是什么原因
下一篇:計算機視覺新手指南
