2011-11-21 27 views
1

我在問相關問題here但這個問題更一般。我拿了一個大的語料庫,並用他們的命名實體註釋了一些詞。就我而言,它們是特定領域的,我稱之爲:實體,行動,事件。我想用它們作爲提取更多命名實體的種子。例如,下面是一句話:我如何處理這個命名實體分類任務?

當機器人發生技術故障時,物體被拋出,但後來被另一個機器人抓住。

被標記爲:

(機器人)/實體(技術故障)/事故,所述 (對象)/實體(拋出) /動作但後來是(被捕獲)/動作(另一個機器人)/實體

給出這樣的例子,有無論如何,我可以訓練一個分類器來識別新的命名實體嗎?例如,給出這樣一個句子:

納米機器人有一個bug,所以它撞到了牆上。

應該有些標籤是這樣的:

(毫微)/實體(錯誤)/事件,所以它(崩潰)/動作(牆)/實體

當然,我知道100%的準確性是不可能的,但我會有興趣瞭解任何正式的方法來做到這一點。有什麼建議麼?

+0

你從訓練數據學習分類器應該具有的泛化能力一定相當。如果你使用一個預先構建的詞性標註器,那麼這些動作肯定會經常動詞,非功能動詞很可能是動作。要提高準確性,一件容易的事情就是減輕遠處的特徵。也許未來的兩個詞以及過去的兩個詞的重量是.25,上一個詞和下一個詞的重量是.5,而當前詞的重量是1. –

回答

1

這並不是名稱實體識別,因爲沒有任何標註的部分是名稱,所以NER系統的功能集不會幫助您(英語NER系統傾向於相當強烈地依賴大寫字母,並且更喜歡名詞)。這是一種信息提取/語義解釋。我懷疑這在機器學習設置中會非常困難,因爲您的註釋確實不一致:

當(機器人)/實體出現(技術故障)/事件時,(對象)/實體是(拋出)/動作,但後來被捕捉/被另一個機器人動作。

爲什麼「另一個機器人」沒有註釋?

如果你想解決這類問題,你最好從一些正則表達式開始,可能會匹配POS標記的字符串版本。

0

我能想到2種方法。

首先是模式匹配過的一句話。事情是這樣的(僞代碼,但它類似於NLTK塊語法分析):

<some_word>+ (<NN|NNS>) <have|has|had> (<NN|NNS>) 
<NN|NNS> (<VB>|was <VB>) (<and|but> (<VB>|was <VB>))* <into|onto|by> (<NN|NNS>) 

這兩個模式可以(大約)卡子2個部分的第一句話。如果你的句子不是很多,這是一個不錯的選擇。我相信用精心挑選的模式可以達到90%的準確率。缺點是這個模型很難擴展/修改。

另一種方法是地雷之間的依賴關係在句子中,例如,與Stanford Dependency Parser。除此之外,它允許挖掘客體,主語和謂詞,這與你想要的非常相似:在你的第一句話中,「機器人」是主語,「有」是謂語,「小故障」是賓語。

+0

您可以編輯您的評論a一點點,所以我可以+1。 thx – RetroCoder

+0

@RetroCoder:評論只能在發佈後的幾分鐘內進行編輯,所以我只是刪除了評論。 – ffriend

相關問題