mayabot / mynlp

一个生产级、高性能、模块化、可扩展的中文NLP工具包。(中文分词、平均感知机、fastText、拼音、新词发现、分词纠错、BM25、人名识别、命名实体、自定义词典)
https://mynlp.mayabot.com/
Apache License 2.0
675 stars 90 forks source link

初始化失败 #17

Closed xiao0yy closed 4 years ago

xiao0yy commented 4 years ago

简单的创建lexer

Lexers.perceptronBuilder().withPos().withPersonName().withNer().withCustomDictionary().build()

出现异常

java.lang.RuntimeException: class java.io.File has more Constructors
    at com.mayabot.nlp.injector.TargetClassFactory.<init>(Injector.kt:139)
    at com.mayabot.nlp.injector.InjectorImpl.makeAtomBeanFactory(Injector.kt:76)
    at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:52)
    at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:26)
    at com.mayabot.nlp.injector.TargetClassFactory.create2(Injector.kt:182)
    at com.mayabot.nlp.injector.TargetClassFactory.create(Injector.kt:155)
    at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:48)
    at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:26)
    at com.mayabot.nlp.injector.TargetClassFactory.create2(Injector.kt:182)
    at com.mayabot.nlp.injector.TargetClassFactory.create(Injector.kt:148)
    at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:48)
    at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:26)
    at com.mayabot.nlp.injector.TargetClassFactory.create2(Injector.kt:182)
    at com.mayabot.nlp.injector.TargetClassFactory.create(Injector.kt:155)
    at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:48)
    at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:26)
    at com.mayabot.nlp.Mynlp.getInstance(Mynlp.java:49)
    at com.mayabot.nlp.segment.pipeline.PipelineLexerBuilder.addWordSplitAlgorithm(PipelineLexerBuilder.java:326)
    at com.mayabot.nlp.segment.lexer.perceptron.CwsLexerPlugin.install(CwsLexerPlugin.java:15)
    at com.mayabot.nlp.segment.pipeline.PipelineLexerBuilder.install(PipelineLexerBuilder.java:104)
    at com.mayabot.nlp.segment.FluentLexerBuilder$BasicBlock.cws(FluentLexerBuilder.kt:152)
    at com.mayabot.nlp.segment.Lexers.perceptronBuilder(Lexers.java:50)

请问这可能是什么原因导致的呢?

jimichan commented 4 years ago

可能是你没有依赖感知机模型文件,

Group = com.mayabot.mynlp.resource

id= mynlp-resource-cws

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: OnFr notifications@github.com 发送时间: 2020年1月16日 12:01 收件人: mayabot/mynlp mynlp@noreply.github.com 抄送: Subscribed subscribed@noreply.github.com 主题: 回复:[mayabot/mynlp] 初始化失败 (#17)

java: 1.8

mynlp: 3.0.2

简单的创建lexer Lexers.perceptronBuilder().withPos().withPersonName().withNer().withCustomDictionary().build()

出现异常 java.lang.RuntimeException: class java.io.File has more Constructors at com.mayabot.nlp.injector.TargetClassFactory.(Injector.kt:139) at com.mayabot.nlp.injector.InjectorImpl.makeAtomBeanFactory(Injector.kt:76) at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:52) at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:26) at com.mayabot.nlp.injector.TargetClassFactory.create2(Injector.kt:182) at com.mayabot.nlp.injector.TargetClassFactory.create(Injector.kt:155) at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:48) at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:26) at com.mayabot.nlp.injector.TargetClassFactory.create2(Injector.kt:182) at com.mayabot.nlp.injector.TargetClassFactory.create(Injector.kt:148) at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:48) at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:26) at com.mayabot.nlp.injector.TargetClassFactory.create2(Injector.kt:182) at com.mayabot.nlp.injector.TargetClassFactory.create(Injector.kt:155) at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:48) at com.mayabot.nlp.injector.InjectorImpl.getInstance(Injector.kt:26) at com.mayabot.nlp.Mynlp.getInstance(Mynlp.java:49) at com.mayabot.nlp.segment.pipeline.PipelineLexerBuilder.addWordSplitAlgorithm(PipelineLexerBuilder.java:326) at com.mayabot.nlp.segment.lexer.perceptron.CwsLexerPlugin.install(CwsLexerPlugin.java:15) at com.mayabot.nlp.segment.pipeline.PipelineLexerBuilder.install(PipelineLexerBuilder.java:104) at com.mayabot.nlp.segment.FluentLexerBuilder$BasicBlock.cws(FluentLexerBuilder.kt:152) at com.mayabot.nlp.segment.Lexers.perceptronBuilder(Lexers.java:50)
请问这可能是什么原因导致的呢?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

xiao0yy commented 4 years ago
        <dependency>
            <groupId>com.mayabot.mynlp.resource</groupId>
            <artifactId>mynlp-resource-cws</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.mayabot.mynlp</groupId>
            <artifactId>mynlp-resource-custom</artifactId>
            <version>1.0.0</version>
        </dependency>

文档中提到的都加了依赖

jimichan commented 4 years ago

你上面的两行代码,不应该会对 ”java.io.File“这个类有任何的注入,请在一个独立干净的环境里面,测试你那一行代码。 我在本地无法重现,是不是你有其他代码被自动注入了