我在做一個自然語言處理項目Windows問題是每當我從命令提示符運行斯坦福CoreNLP時,需要大約14-15秒來生成給定輸入文本文件的XML輸出。我認爲這個問題是因爲該庫需要花費相當多的時間來加載。可以請有人解釋問題是什麼,我該如何解決這個問題,因爲這個時間問題對我的項目來說是一個大問題?斯坦福CoreNLP非常慢
0
A
回答
7
斯坦福大學CoreNLP爲各種組件使用大型參數模型文件。是的,他們需要很多時間來加載。你想要做的只是啓動程序一次,然後餵它大量的文本。
你怎麼做,取決於你在做什麼:
- 你可以傳遞一個-filelist的命令行版本同時處理一大堆的文件。
- 您可以讓一個StanfordCoreNLP對象運行,並向其發送文件並使用API獲取輸出。
- 根據您需要的NLP處理方式,您也可以通過不加載未使用的模型來加速啓動。請參閱「註釋器」屬性。
更新2016年有這個文檔頁面上立即更多信息Understanding memory and time usage
0
要了解如何使用API來檢查示例代碼「NERDemo.java」的核心NLP的下載的文件夾。
+0
該文件在哪裏?我無法在Core NLP –
+0
的最新版本中找到它。該文件存在於斯坦福分類中,並且不存在覈心NLP。 – ArisRe82
5
克里斯托弗是正確的,這裏是解決方案之一:
import java.util.Properties;
import edu.stanford.nlp.pipeline.Annotation;
import edu.stanford.nlp.pipeline.StanfordCoreNLP;
public class SentimentAnalyzer {
private StanfordCoreNLP pipeline;
public void initializeCoreNLP() {
Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, sentiment");
pipeline = new StanfordCoreNLP(props);
}
public T getSentiment(String text) {
...
Annotation annotation= new Annotation(text);
pipeline.annotate(annotation);
...
return ...
}
public static void main(String[] argv) {
SentimentAnalyzer sentimentAnalyzer = new SentimentAnalyzer();
sentimentAnalyzer.initializeCoreNLP(); // run this only once
T t = sentimentAnalyzer.getSentiment("put text here..."); // run this multiple times
}
}
相關問題
- 1. 非默認斯坦福Corenlp
- 2. 使用斯坦福CoreNLP
- 3. 使用斯坦福CoreNLP CorefResolution
- 4. 斯坦福CoreNLP情緒
- 5. 斯坦福CoreNLP - 破折號
- 6. Maven爲斯坦福CoreNLP和斯坦福分析器構建
- 7. 斯坦福CoreNLP depparse拋出OutofMemoryException
- 8. 如何通過使用斯坦福CoreNLP
- 9. 斯坦福CoreNLP模型sentiment.ser.gz缺失?
- 10. 斯坦福CoreNLP OpenIE遇到問題
- 11. 爲什麼我與斯坦福CoreNLP
- 12. 斯坦福corenlp情緒訓練集
- 13. 運行斯坦福CoreNLP服務器multithreadedly
- 14. 導航斯坦福CoreNLP解析結果
- 15. 斯坦福CoreNLP刪除NUMBER實體
- 16. CoreNLP斯坦福依賴格式
- 17. R:斯坦福CoreNLP returnning NAS進行getSentiment
- 18. 斯坦福CoreNLP簡單API錯誤
- 19. 斯坦福CoreNLP錯誤創建edu.stanford.nlp.time.TimeExpressionExtractorImpl
- 20. 斯坦福CoreNLP中國指代消解
- 21. 斯坦福的stangerDemo的corenlp包
- 22. 斯坦福CoreNLP - 關係註釋器
- 23. 培訓斯坦福CoreNLP共同參考
- 24. 斯坦福coreNLP的共參照錯誤
- 25. 斯坦福corenlp情感分析
- 26. 斯坦福CoreNLP-文本到XML
- 27. NoSuchFieldError異常斯坦福NER
- 28. 斯坦福NER
- 29. 斯坦福CoreNLP版本改變導致錯誤
- 30. 瞭解斯坦福CoreNLP Coreference集合表示法
「您可以留下一個StanfordCoreNLP對象中運行,並且將文件發送給它,得到的輸出回使用API。」 這似乎是專門針對我的問題的解決方案。你能告訴我該怎麼做嗎? – agarwav
如果您正在編寫Java代碼,可以使用[Java API](http://stanfordnlp.github.io/CoreNLP/api.html)執行此操作。否則,你最好的選擇是使用[StanfordCoreNLPServer](http://stanfordnlp.github.io/CoreNLP/corenlp-server.html)。其他編程語言的幾個軟件包現在使用這個服務器,您也可以像命令一樣使用它,例如使用StanfordCoreNLPClient。 –