2012-06-07 62 views
2

我是一名正在NLP暑期項目中工作的學生。我對這個領域相當陌生,所以我很抱歉如果有一個非常明顯的解決方案。這個項目是用C語言編寫的,這是因爲我對它的熟悉程度以及項目的計算密集性(我的語料庫是維基百科的明文轉儲)。用於簡單POS標記的NLP庫

我正在研究一種關係提取方法,利用一致性原則試圖學習(在某個錯誤閾值內)一組規則,規定哪些語法對象的集合暗示這些對象之間的連接。

該算法的第一步之一涉及找到給定單詞可以引用的所有可能語法對象的集合(POS消歧在後面的步驟中由該算法隱式完成)。我已經看過幾個解析器,但它們似乎都自己做了消歧步驟,這從我的結尾來看是適得其反的。我正在尋找一些現成的東西(理想情況下)給我一種單一命令的方式來提供這些信息。

這樣的事情是否存在?如果沒有,是否有一個存在的字典包含這種信息,這是微不足道的機器可解析的?

謝謝你的幫助。

+1

因此,您想將自己的pos tagger作爲聯合pos標記和其他任務的一部分,而不是使用現有的pos tagger甚至現有的分析器作爲關係提取系統的輸入?爲什麼一次重新發明每一個輪子?爲什麼不嘗試通過例如關係提取任務應用你的方法來重新排列一個現有的關係提取器,或者從best-k依賴關係解析開始,然後才能修復下面的部分或者進行聯合推理? –

+0

這實際上可能更難。使用我使用的算法,原則上,您應該基本上免費使用POS標記,作爲其他一些流程的副作用。 我會直接和你在一起:我真的不知道我在做什麼。幾個星期前,在深夜閱讀了一本關於信息論的書後,算法在我的夢中幾乎找到了我。我對獲得正常運行的解析器不感興趣,而不是看看算法是否實際執行高於機會級別。爲此,實現一個快速和骯髒(<5k)版本的算法似乎是一個不錯的選擇。 – user1441382

回答

0

看看CMU獅身人面像。一個開源的NLP項目。我認爲它是用C++編寫的,但是你可以整合它,或者至少可以理解如何去做事情。

+0

謝謝,我會檢查出來。 – user1441382

0

如果你覺得自己很活躍,那麼將外部POS tagger作爲shell腳本調用或者將它封裝到http服務中呢?

Java和Python擁有絕大多數的NLP庫,所以利用它是有道理的。如果您可以在腳本中使用NLTK來標記內容,請從C中調用此腳本,這使得它更容易。