2016-01-25 71 views
3

在NLP中有一個概念Gazetteer,它對創建註釋非常有用。據我瞭解,NLP:地名詞典是一個騙子

A gazetteer consists of a set of lists containing names of entities such as cities, organisations, days of the week, etc. These lists are used to find occurrences of these names in text, e.g. for the task of named entity recognition.

所以它本質上是一種查找。這不是一種欺騙?如果我們使用Gazetteer來檢測命名實體,那麼沒有太多Natural Language Processing正在進行。理想情況下,我想用NLP技術來檢測命名實體。否則,它如何比正則表達式模式匹配更好。

這有道理嗎?

+2

是的。再一次,有趣的問題,但更適合datascience.stackexchange.com =)想象一下,如果我從來沒有見過實體字符串,我不能從上下文猜測,是否從測試句子是一個實體。我會將它標記爲實體嗎?現在想象一下,如果我無法從上下文中猜測出測試句子中的某個東西是否是一個實體,但我知道從我的「知識庫」或「地名詞典」中可以看出,這個東西是一個實體。我會將它標記爲實體嗎? – alvas

+0

謝謝@alvas我想我想說的是,我們可以通過使用地名錄而不是正則表達式匹配獲得多少性能增益?我意識到創建一個匹配所有可能的組織名稱的正則表達式是不可能的。但爲什麼不爲所有這些名稱創建一個查找表?隨着新的名字和反饋進來 – AbtPst

+0

我將發佈在datascience.stackexchange.com以及 – AbtPst

回答

3

取決於您如何構建/使用地名詞典。如果你在一個封閉的領域展示實驗,並且你習慣地選擇你的地名詞典,那麼是的,你是在作弊。 如果您正在使用一些公開可用的地名詞典並在大型數據集上進行實驗,或者在野外應用程序中使用它來控制輸入,那麼您很好。 我們發現自己處於類似的情況。我們劃分我們的數據集並使用訓練數據自動構建地名錄。只要你報告你的方法論,你就不應該覺得自己在欺騙(讓評論者抱怨)。

+0

你是如何自動構建公報的? – AbtPst

+1

應該說過半自動。首先我提取引用表達式(解析樹中的NP節點),手動聚類和分類。然後我使用訓練集上的註釋來構建我將在測試中使用的地名詞典。 k-fold交叉驗證。 –

+1

; P我找到這個有用的'python nltk_cli/senna.py --np file.txt' for slot-filling candidates:https://github.com/alvations/nltk_cli – alvas