2013-10-16 19 views
1

我正在寫一個使用NLP檢測命名實體的Java應用程序。我在我的應用程序中使用斯坦福大學的命名實體代碼。我已經編寫了一個應用程序來檢測名稱,並將它們與數據庫進行比較。但是我對文本本身有問題。檢測並忽略提及的命名實體並提取有效的命名實體

我想在提及名稱的文本中對句子進行分類並忽略它們。

例子:

」 ......筆者有相同的寫作風格是赫爾曼·梅爾維爾。 ..'

命名的實體是赫爾曼梅爾維爾,但文本是不是關於赫爾曼梅爾維爾,但其他作家。赫爾曼梅爾維爾當時是一個真正的消極。

又如

天體。

亞歷克斯帕特森在操縱晦澀難懂的樣本時感到驕傲,因爲它的專輯和演唱會都是無法識別的;他擅自使用其他藝術家的作品導致了與音樂家的爭議,最引人注目的是與裏奇李瓊斯。在20世紀90年代的現場表演中,Orb在使用數字錄音磁帶機進行現場混音和採樣之前,先切換到筆記本電腦和數字媒體。儘管表演方法發生了變化,但Orb在音樂會上保持了其豐富多彩的燈光表演和迷幻影像。這些視覺上強烈的表演促使評論家們將該組與Pink Floyd進行比較。

檢測到的藝術家是'The Orb'和'Pink Floyd'。文字是關於球,但小組與Pink Floyd比較。所以我想用NLP來忽略'Pink Floyd'並將'The Orb'作爲命名實體作爲主題。

我已經有一個帶有示例文本的數據庫,其中編寫器已經被檢測到。我可以用它作爲測試集。我有一個數據庫與所有存在的作家。

我想有一些例子或東西閱讀如何解決這個問題。即使討論會很好。

+0

你能澄清你的問題多一點。看起來你想忽略包含任何名字的句子,但是你面對的問題不清楚。 – Prateek

+0

我已經添加了另一個示例 –

+0

查看斯坦福解析器的崩潰依賴關係結構。你可以用它來解決這個問題。 http://nlp.stanford.edu:8080/parser/ – Prateek

回答

1

好的,對於你的問題,我寧願增加一個約束,比如只處理明確有name的句子。這將幫助您減少通過最終處理的句子集。因爲你的要求是決定什麼是真正的文本(消除真正的負面)我認爲尋找在結構grammatical dependency條款rootnsubj將使你在正確的方向。爲了您例如,從語法依賴結構rootnsubj條款看起來像

nsubj(performed-11, Orb-10) 
root(ROOT-0, performed-11) 

nn(Paterson-2, Alex-1) 
nsubj(prides-3, Paterson-2) 
root(ROOT-0, prides-3) 

nsubj(maintained-9, Orb-8) 
root(ROOT-0, maintained-9) 

nsubj(prompted-5, performances-4) 
root(ROOT-0, prompted-5) 

現在,從這裏可以查看哪個名稱(ORB或平克·弗洛伊德)在這種結構的最大次數存在。如果Orb出現多次,那麼Orb就是你的輸出,否則如果Pink Floyd確實那麼那就是你的最終輸出。但是您必須考慮名稱(orb是一個字,而pink floyd是兩個字,您可以考慮nn子句),那將是您的最終輸出。

希望這會有所幫助。

+1

我在回答中添加了更多信息。請再次通過它。 – Prateek