NLP Shift reduce解析器抛出空指针Exception for Sentiment计算

时间:2015-05-24 07:15:38

标签: nlp stanford-nlp sentiment-analysis shift-reduce

我正在尝试使用nlp来分析情绪。我使用的stanford-nlp版本是3.4.1。我有一些垃圾数据要处理,看起来使用默认的PCFG文件需要大约45秒的时间来处理。

以下是示例:

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);

根据这里的建议,我再次尝试使用shift-reduce解析器。

Properties props = new Properties();
                    props.setProperty("annotators","tokenize, ssplit, pos,parse,sentiment");
props.put("parse.model", "com/example/nlp/englishSR.ser.gz");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
Annotation annotation = pipeline.process(text);

我必须下载shift-reduce模型并将其放入类路径中。模型类正在加载,但它会抛出空指针异常。有什么想法和建议吗?

1 个答案:

答案 0 :(得分:2)

您使用的是3.4.1版本而不是最新版本的具体原因吗?

如果我使用最新版本运行您的代码,它适用于我(在我将SR模型的路径更改为edu/stanford/nlp/models/srparser/englishSR.ser.gz之后,但我假设您故意更改了该路径)。

还要确保您下载的型号与您的CoreNLP版本兼容。如果您下载了最新型号并尝试将它们与较旧版本的CoreNLP一起使用,那么您很可能会遇到问题。