我在运行StanfordCoreNLP获取情感分析时遇到了以下错误:我目前使用的是4.0.0版本,请问您能提供一些建议吗?
SentimentCostAndGradient: 警告:树未正确二元化:(ROOT (: –) (S (VB let) (SBARQ (NP ‘s) (@SBARQ (ADVP just) (@SBARQ (VBP say) (SQ (S (VBG assuming) (SBAR (NP you) (VP (@VP (@VP (VBP get) (NP (JJ supportive) (NN legislation))) (NP (DT this) (NN year))) (PP (IN in) (NP (DT the) (@NP (NNP Texas) (NN legislature))))))) (@SQ (, ,) (@SQ (SBARQ (WHNP what) (SQ (VBZ ‘s) (NP (NP (DT the) (@NP (NN time) (NN line))) (PP (IN to) (S (VBG getting) (S (NP (DT an) (@NP (NNP AMI) (NN program))) (VP deployed))))))) (@SQ (, ,) (@SQ (@SQ (MD shall) (NP we)) (VP (@VP (@VP (@VP (VB say) (, ,)) (INTJ right)) (, ,)) (S (ADVP so) (VP (@VP (@VP (VBG starting) (PP (IN from) (NP midyear))) (NP (DT this) (NN year))) (ADVP onwards))))))))))))) (. ?))Exception in thread “main” java.lang.AssertionError: Tree not correctly binarizedat edu.stanford.nlp.sentiment.SentimentCostAndGradient.forwardPropagateTree(SentimentCostAndGradient.java:532)at edu.stanford.nlp.sentiment.SentimentCostAndGradient.forwardPropagateTree(SentimentCostAndGradient.java:512)at edu.stanford.nlp.pipeline.SentimentAnnotator.doOneSentence(SentimentAnnotator.java:115)at edu.stanford.nlp.pipeline.SentenceAnnotator.annotate(SentenceAnnotator.java:102)at edu.stanford.nlp.pipeline.AnnotationPipeline.annotate(AnnotationPipeline.java:76)at edu.stanford.nlp.pipeline.StanfordCoreNLP.annotate(StanfordCoreNLP.java:640)at edu.stanford.nlp.pipeline.StanfordCoreNLP.annotate(StanfordCoreNLP.java:650)at edu.stanford.nlp.pipeline.StanfordCoreNLP.processFiles(StanfordCoreNLP.java:1245)at edu.stanford.nlp.pipeline.StanfordCoreNLP.processFiles(StanfordCoreNLP.java:1079)at edu.stanford.nlp.pipeline.StanfordCoreNLP.run(StanfordCoreNLP.java:1362)at edu.stanford.nlp.pipeline.StanfordCoreNLP.main(StanfordCoreNLP.java:1408)
我输入到StanfordCoreNLP模块的文本如下:
你能听到我吗?所以,如果可以的话,有几个后续问题。首先,让我在这里就信贷方面和股权募集的一些细节做一些说明。你是如何考虑你的[某种]债务指标的,它们今天在哪里?显然,已经有了一些来自机构的评论。但是——你需要达到哪里?我知道你今天不会具体说明所需的股权总量,但只是想确保我们了解你今天在哪里,以及从信贷角度来看你需要去哪里。我假设你希望维持你当前的评级。明白了,好。那么,让我回到这个转折点,就我所理解的,关于50到150兆瓦——或者更确切地说,是采购之外的上行空间,也许是更好地表达这一点,对吗?所以你运行了RFP。你已经宣布了那些结果。但是然后,在这里的幻灯片中,你谈到了购买,似乎是额外的量,如果我——如果你愿意的话。你能谈谈那一点吗?然后只是为了在这里澄清,显然,你授予了——或者你提议在这里授予PPA。这会是一个潜在的建设-拥有-转让情况吗?实际上,也许甚至——让我扩大这一点,最初授予的RFP容量是否有可能是一个建设-拥有-转让情况?那的时间线是什么,如果你不介意提醒我的话?就这些而言——我知道你今年对这些合同的完成时间有了一个大致的描述。但是关于建设-拥有-转让,BOT部分的时间线,具体来说。明白了,非常好。然后对不起,最后一个关于AMI努力的问题。那里的时间线,你是如何考虑的——假设你今年在德克萨斯州立法机构获得支持性立法,让我们假设一下,部署AMI计划的时间线是什么,我们可以说,对吧,从今年中期开始?在2019年的指导中,关于德克萨斯州的传输和配电两方面,假设的费率减免水平是多少?好的。因为根据你提交这些文件的方式,似乎传输应该在夏季高峰时可用,而配电增加可能不在夏季高峰时。没有,我当然理解并理解这一点。但是,在1600万美元的请求中,假设这些美元总额获得批准,根据时间线,现实中多少会落入19年与20年?好的。还有,就股权而言,你的指导中,关于2019年指导的增量股权的股份数量假设是什么?还有,你已经提交并——等待批准请求。最高可达2亿美元。我猜,你能帮我们在时间上——关于这些年或你是如何考虑的?这种灵活性是否也考虑了如果你们能够与一些RFP获胜者达成协议来建设购买,像Julien描述的那样,资助股权的能力?你能给我们一些关于第一季度天气情况的色彩吗?好的。你能给我们一些关于德克萨斯州立法机构对AMI的看法吗?好的。就DCRF今年的可能情况而言,你给了我们一些想法。这些数字,你认为是基线年度数字的样子吗?还是你落后得那么远,这些可能是略高于正常的未来情况?所以可能像一半?假设你的客户和负荷增长继续以相似的速度,这——这可能意味着未来费率可能是一半。是的。我的理解是立法机构正在努力授权PUCT能够使用预测测试年来处理费率案例,以帮助减轻监管滞后。我只是想知道你对这一努力的了解和状态,以及你认为前景如何。是的。我认为我是在提到——提到发电附加费,可能是在更广泛的背景下。但如果你现在特别关注发电附加费,我猜你——你现在怎么看?对不起,伙计们,跟进这里。但我只是想澄清这一点,你是如何考虑你在这里的19年指导中赚取的ROE?再一次,我知道你谈到了正常天气,但我只是想了解赚取的ROE期望以及这些是如何确定的。我主要显然是在询问配电方面多于传输方面,如果我们可以深入了解这一点。明白了。但在两个管辖区之间的配电方面反映的平均值略低于9%的配电方面。
这是我运行模型的方式,我使用的是4.1.0版本:
java -mx3g -cp "/home/cxiao/release_date/stanford-corenlp-4.1.0/*" edu.stanford.nlp.pipeline.StanfordCoreNLP -props.q1
对于props.q1:
annotators = tokenize, ssplit, pos, parse, sentimentoutputFormat = JSON outputDirectory = /path_to/standard_input/fail/timeout = 500000output.includeText = Falseparse.model = edu/stanford/nlp/models/srparser/englishSR.ser.gzcontinueOnAnnotateError = Truefilelist = /path_to/stanford-corenlp-4.1.0/q/flist1.lst
对于文件列表:
/pathto/failed_file.txt
回答:
这是一个非常罕见的sr解析器中的错误,由最近添加的一个训练集中少量训练树引起的,这些树打破了所有树都以S、FRAG等结束,然后以一元转换到达ROOT的假设。这里产生的错误只是导致问题的句子的一部分,sr解析器试图将该句子分成两个部分,并有两个独立的ROOT。实际上,问题比这还要奇怪,因为这只有在其中一个ROOT然后有三个或更多部分时才会在下游引起错误。
无论如何,可以通过强制ROOT节点只出现在树的最顶端来修复这个错误。这个修复在源代码树的这个分支中:
https://github.com/stanfordnlp/CoreNLP/tree/fix_sr_binary
如果你在那里没有看到分支,这意味着它已经被合并到
https://github.com/stanfordnlp/CoreNLP/tree/dev
计划是在未来几周发布一个新版本,到那时你可以简单地使用新版本而不是从源代码构建来获取这个错误修复。
编辑:你特别想要这个更改
https://github.com/stanfordnlp/CoreNLP/commit/10881ca4727b6d114e5157d2aa547bceac18d294
任何超过那个的都将无法加载旧模型,因为需要一个readObject中的hack来使其加载旧模型,我们将使用更新的转换规则重新制作模型