Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Scala:构造函数字典的参数不足_Java_Scala_Opennlp - Fatal编程技术网

Java Scala:构造函数字典的参数不足

Java Scala:构造函数字典的参数不足,java,scala,opennlp,Java,Scala,Opennlp,我发现了错误 not enough arguments for constructor DictionaryLemmatizer: (x$1: java.io.InputStream)opennlp.tools.lemmatizer.DictionaryLemmatizer. [error] Unspecified value parameter x$1. [error] class SimpleLemmatizerModel(map: Map[String, Map[Char, Map[Str

我发现了错误

not enough arguments for constructor DictionaryLemmatizer: (x$1: java.io.InputStream)opennlp.tools.lemmatizer.DictionaryLemmatizer.
[error] Unspecified value parameter x$1.
[error] class SimpleLemmatizerModel(map: Map[String, Map[Char, Map[String, String]]]) extends DictionaryLemmatizer  {
[error]                            ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed
在构建此类代码sbt程序集时

DictionaryEmmazizer是一类用Java编写的OpenNLP库,可以找到它的代码

如果有人能解释此类错误的原因以及如何修复,我将不胜感激

如果需要一些额外的信息,我很乐意提供。

DictionaryEmmazizer的构造函数需要一个java.io.InputStream类型的参数字典

您可能希望实现以下接口:

类SimpleMematizerModel。。。扩展Lemmatizer{…} 注意:为了使SimpleMematizerModel具体化,您必须实现这些元素化方法。

Offtopic:我很难理解以Map[String,Map[Char,Map[String,String]]]命名的东西应该如何具有simple-
import opennlp.tools.lemmatizer.DictionaryLemmatizer
import scala.io.Source

class SimpleLemmatizerModel(val map: Map[String, Map[Char, Map[String, String]]]) extends DictionaryLemmatizer {

  def lemmatize(word: String, tag: String): String =
    ( for( t <- map.get(tag); w <- t.get(word(0)) )
      yield {w.getOrElse(word, word)}
    ).getOrElse(word)

  def lemmatize(token: TaggedToken): String = lemmatize(token.token, token.tag)

  def transform(tokens: Array[TaggedToken]): Array[String] = tokens.map(lemmatize)

}
trait Tokens {val token: String}

trait TaggedTokens extends Tokens {val tag: String}

case class TaggedToken(token: String, tag: String) extends TaggedTokens {
  override def toString = token + ": " + tag
}

case class Token(token: String) extends Tokens {
  def tag(t: String): TaggedTokens = TaggedToken(token, t)
}