2015-05-23 23 views
1

我正在嘗試爲輸入文本找到情感。這個測試是一個垃圾句,當我試圖找到Sentiment時,用於解析句子的Annotation需要大約30秒。對於正常的文本,它不到一秒鐘。如果我需要處理大約數百萬的數據,它會加起來處理的時間。任何解決方案。NLP-垃圾數據的情緒處理需要時間

String text = "Nm n n 4 n n bkj nun4hmnun Onn njnb hm5bn nm55m nbbh n mnrrnut but n rym4n nbn 4nn65 m nun m n nn nun 4nm 5 gm n my b bb b b rtmrt55tmmm5tttn b b bb g bn nn n h r ret n nun bn d. B bbbbbbbbbbr bung NHnhn nn nk, v v v n gain t g 4gnyhimmigration ndn nb NVnb bin uny 7 nbbbbbnn vv bbvb ninn njnj n4 nm n km n n n cb j bun. Nhfnt bn nn. N hm nn nun m bum my b mmmnbjk nn n by nn nun nun n nun nn bn n nhn n nn n n m NH nb4mnm mkn 4 n n n n hm r b rnfngg4d in b nut mmmkmmm5 bbjn n n ij BBM 8u8i by nun n.nn hm n. n4n By 4n4n bunny RN bny hm j mi. Nymmn FBT not mn n n nm g by n n nnm? Rnyb vCard n5 Yu nn n n n n nt .nm mn nt n nb n n n n by y5nnnhyyh h b b nt njj n m f4n re"; 
Properties props = new Properties(); 
      props.setProperty("annotators","tokenize, ssplit, pos,parse,sentiment"); 
      StanfordCoreNLP pipeline = new StanfordCoreNLP(props); 
      Annotation annotation = pipeline.process(text); 

對於NLP情緒計算,我必須解析數據,我認爲這就是其花費時間的原因。

感謝

回答

3

是,標準PCFG解析器(即默認情況下,不指定任何其他選項運行一個)會嗆這種長廢話數據。使用shift-reduce constituency parser可能會有更好的運氣,這比PCFG快得多,幾乎同樣精確。

+0

謝謝jon.i使用3.4.1不支持shift reduce。任何其他想法。感謝您的幫助 – user2052854

+0

props.setProperty(「annotators」,「tokenize,ssplit,pos,parse,sentiment」); (「parse.model」,「com/toyota/nlp/englishSR.ser.gz」); \t – user2052854

+0

我已經改變了解析模型來轉換reduce。但它會在線程「main」中拋出空指針異常exceptionException java.lang.NullPointerException \t at edu.stanford.nlp.parser.shiftreduce.ShiftReduceParserQuery。 – user2052854