当前位置: 首页 > 知识库问答 >
问题:

使用nugetpackages加载标记器模型时出现不可恢复的错误

宋勇
2023-03-14

我一直在尝试使用stanford-corenlp-3.5.2 nugetpack创建和运行一个简单的程序

然而,在查找了一些初学者代码后,我发现了以下代码道具。setProperty(“注释器”、“标记化、ssplit、pos、引理、ner、解析、dcoref”);(链接到代码示例:http://sergey-tihon.github.io/Stanford.NLP.NET/StanfordCoreNLP.html)

但每当控制台应用加载pos时,它就会触发一个运行时错误,说明它无法加载标记器。

我想知道我是否丢失了任何nugetpackages,或者是否需要进行额外的设置。(注意。每当我尝试添加postagger nuget包时,我就会收到一个错误,表示类注释在两个DLL中引用。)

我发现,如果删除一些属性,应用程序将正确运行,因此新行看起来像“props.setProperty”(“annotators”、“tokenize、ssplit”);

如果能帮助我克服运行时错误,以便我继续进一步分析示例文本,将不胜感激。谢谢你。

附加图片供参考。(显然我需要更多的声誉才能发布图片,但当我可以时,我会立即这样做:)编辑我现在已经添加了图片:)

行异常处的堆栈跟踪如下所示:

at edu.stanford.nlp.pipeline.AnnotatorFactories.4.create()
at edu.stanford.nlp.pipeline.AnnotatorPool.get(String name)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(Properties , Boolean , AnnotatorImplementations )
at edu.stanford.nlp.pipeline.StanfordCoreNLP..ctor(Properties props, Boolean enforceRequirements)
at edu.stanford.nlp.pipeline.StanfordCoreNLP..ctor(Properties props)
at ConApplicationSabrinaNLP.TestClass.donlp() in c:\Users\Justin\Documents\Visual Studio 2013\Projects\ConApplicationSabrinaNLP\ConApplicationSabrinaNLP\TestClass.cs:line 28
at ConApplicationSabrinaNLP.Program.Main(String[] args) in c:\Users\Justin\Documents\Visual Studio 2013\Projects\ConApplicationSabrinaNLP\ConApplicationSabrinaNLP\Program.cs:line 20
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

共有1个答案

姚善
2023-03-14

问题是您还没有下载模型。Nuget包本身无法工作。您必须在此处下载最新版本的POS-Tagger

完成后,将其放入项目目录中。然后将代码指向它。在“3.6.0 2015-12-09更新兼容性”版本中,标记器有一个不同的名称,例如“english bidirectional distsim.tagger”。确保你将代码指向正确的文件夹和文件,它就会工作。

下面是我的windows窗体项目中的一个工作示例。

using java.io;
using java.util;
using edu.stanford.nlp.ling;
using edu.stanford.nlp.tagger.maxent;
using Console = System.Console;
using System.IO;
using System.Windows.Forms;

namespace Stanford.NLP.POSTagger.CSharp
{
    class PosTagger

    {
        // get the base folder for the project
        public static string GetAppFolder()
        {
            return Path.GetDirectoryName(Application.ExecutablePath).Replace(@"*your project directory here*\bin\Debug", string.Empty);
        }

        public void testTagger()
        {
            var jarRoot = Path.Combine(GetAppFolder(), @"packages\stanford-postagger-2015-12-09");
            Console.WriteLine(jarRoot.ToString());
            var modelsDirectory = jarRoot + @"\models";

            // Loading POS Tagger
            var tagger = new MaxentTagger(modelsDirectory + @"\english-bidirectional-distsim.tagger");

            // Text for tagging
            var text = "A Part-Of-Speech Tagger (POS Tagger) is a piece of software that reads text"
                       + "in some language and assigns parts of speech to each word (and other token),"
                       + " such as noun, verb, adjective, etc., although generally computational "
                       + "applications use more fine-grained POS tags like 'noun-plural'.";

            var sentences = MaxentTagger.tokenizeText(new java.io.StringReader(text)).toArray();
            foreach (ArrayList sentence in sentences)
            {
                var taggedSentence = tagger.tagSentence(sentence);
                Console.WriteLine(Sentence.listToString(taggedSentence, false));
            }
        }
    }
}
 类似资料:
  • 根据问题我得到输入为"/分裂/名称?FullName=ritik verma",我必须把它分成名字和姓氏,第二部分是"/计算/年龄?dob=17-04-1999"和我需要计算年龄。 所以我给你一个实际的问题也许这会有帮助 问题是:- 创建具有以下路由并在端口3000上运行的Express应用程序- 路由1-GET /split/name-它将fullName作为查询参数,并将firstName和l

  • 我正在使用Mapbox,在我的本地主机中,它总是正确加载我的标记。然而,现在我部署了我的应用程序,它没有。 至少有时候, 我注意到,如果我加载页面,然后就在页面加载之前,我切换到另一个选项卡,然后等待5秒钟,然后回到我的应用所在的选项卡。它确实工作并加载标记。 此外,我得到的错误:当我试图设置一个功能状态(当你悬停在侧边栏项目上,在标记没有加载的情况下): 我还注意到在标记未加载时不触发,因为如果

  • 您好,我是Hibernate的新手,我正在试图理解它是如何工作的,所以我制作了一个servlet来用Hibernate建立到DB的连接。在向configuration.cfg.xml添加一个hbm文件之前,一切都很好。我无法解释为什么当我添加这个时servlet会崩溃。 我的目录如下: hibernate.cfg.xml文件: 编辑:下面是stacktrace类型异常报告 实例化servlet类s

  • 问题内容: 我正在尝试恢复TensorFlow模型。我遵循以下示例:http : //nasdag.github.io/blog/2016/01/19/classifying-bees-with-google- tensorflow/ 在示例的代码末尾,我添加了以下几行: 创建了两个文件:checkpoint和model.ckpt。 在一个新的python文件(tomas_bees_predict

  • 大家好!我刚刚发现我的codename one应用程序在模拟器和android上崩溃,甚至没有加载第一页。以下是我收到的错误:java.lang.NoClassDefFoundError:javabc/SecureRandom at com.cloudinary.cloudnary.(cloudinaray.java:113)

  • 我有一个springBoot应用程序,它使用Thymeleaf渲染模板。当我从Eclipse运行应用程序时,所有这些都可以完美地工作。但是,当我尝试构建并运行jar时,有一个模板拒绝加载,出现以下异常: 异常处理模板“/XXX/form/importConfiguration”:错误解析模板“/XXX/form/importConfiguration”,模板可能不存在或无法由任何已配置的模板解析程