2014-06-11 103 views
3

我看過這個faq但我不明白。我嘗試使用此代碼:JAVA:如何在斯坦福NLP中使用公報?

Properties pp=new Properties(); 
    pp.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse"); 
    pp.put("ner.useSUTime","false"); 

    pp.put("useGazettes","true"); 
    pp.put("gazette","C:\\gaz.txt"); 

    StanfordCoreNLP s=new StanfordCoreNLP(pp); 

這是字符串:「丹成爲樂友協會的成員,在2008年」

公報上刊登的文件是:

CLASS Music friends association 

但「音樂的朋友關聯「不被NER認可。

我在哪裏錯了?

+0

爲什麼你希望你的系統識別呢?你在gaz.txt裏面有嗎? – Daniel

+0

應該識別文件gaz.txt中的命名實體只有這一行「CLASS Music friends association」 – Enzo

回答

0

給出的答案是有:

如果使用了公報,這並不能保證在憲報刊登的話向來作爲預期類的成員,它並不保證外字憲報不會被選中。它只是爲CRF提供了另一個培訓對象。如果CRF對於其他功能具有更高的權重,則公報功能可能會不堪重負。

因此,不能保證您的短語將以任何方式進行標記。另一種方法是

無論是regexner或包括在斯坦福CoreNLP的tokensregex工具

+0

如何使用tokensregex公報?此外,如果我的實體跨越「紐約」等多個標記,那麼如何使用tokensregex在位置公報中進行查找,因爲它一次只能查看一個標記? – serendipity

+0

嗯tokensregex是一個當且僅當匹配,而憲報是一個建議。你要做什麼:嚴格匹配,但對於某個特定的字詞子集?像紐約應該被接受,但洛杉磯在某些情況下不應該被接受爲位置?也許斯坦福大學的團隊會看到這一點併發出響聲,但我認爲你可能想要贊成tokensregex。 – demongolem