2017-03-25 17 views
2

我正在專門尋找一些數據結構,枚舉或生成過程,通過這些過程,內部表示了不同的詞類。我花了很長時間掃描Javadoc和源代碼一段時間,找不到我在找什麼。如果可能的話,我想直接訪問標籤集合,如果它們存儲在某個中心位置。請原諒我,如果我提出的問題構成了關於CoreNLP pos-tagging操作方式的天真假設,但如果我所描述的內容確實存在某種形式,這將非常有幫助。謝謝!CoreNLP代碼中的Penn TreeBank詞性符號本身實際表示的位置?

回答

1

我真的不確定它們在代碼中的任何地方顯式表示。標記器只是將它們輸出爲字符串而不是任何固定的枚舉類型,並且輸出空間可以直接從訓練數據中推斷出來。這樣做的好處是,您可以在任意標籤集上訓練完全相同的模型。當然,你遇到的缺點也是如此。 :)

但是,對於英語,標籤集應該是賓州樹庫標記集:https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html

+0

感謝您的回答。是的,這就是我認爲可能是這樣的情況。我知道它使用PTB(並從你的答案中,現在我明白爲什麼訓練機制不符合特定的樹庫模型)。對於我目前的項目來說,如果我能夠以某種方式訪問​​這些值 - 即使是以編程的方式 - 而不是相信我自己的能力,以便將手工比較的值複製到我自己的枚舉中,它仍然會很好。我們程序員通常不喜歡做這樣的事情,而不是自動化,所以你可以理解這是從哪裏來的。好吧。再次感謝您的幫助。 :) –

+1

因此,您可以嘗試查看'AbstractSequenceClassifier#labels()',它將爲您提供序列模型的標籤空間視圖。但是,(1)這不一定是正確的(例如,它理論上可以有更多的標籤而不是在訓練集中),(2)從實際流水線中獲得是一種痛苦。我建議你只需將自己的標籤硬編碼到一個枚舉中。 CoreNLP隨着時間的推移會發生很多變化,但POS標籤集不太可能是其中之一 –

相關問題