나는 Nak (Scala 용 기계 학습 패키지)를 시험 중이다. 그러나 NaiveBayes 또는 Maximum Entropy와 같은 기본 방법에는 쉽게 액세스 할 수 없습니다. 수동으로하고 싶지만 NaiveBayes 클래스의 인스턴스를 만들지 못했습니다.개체 내부의 클래스를 새로 만드는 방법은 무엇입니까?
object NaiveBayes {
class Trainer[L,T](wordSmoothing: Double=0.05, classSmoothing: Double= 0.01) extends Classifier.Trainer[L,Counter[T,Double]] {
type MyClassifier = NaiveBayes[L,T]
override def train(data: Iterable[Example[L,Counter[T,Double]]]) = {
new NaiveBayes(data,wordSmoothing,classSmoothing)
}
}
}
나는 Trainer
클래스에 액세스 할 수 없습니다 ... 그리고 그 이유를 모르는 그들의 NaiveBayes 코드의 일부는 다음과 같습니다. 전체 코드는 여기에서 찾을 수 있습니다 :
Trainer train = new Trainer()
또는 NaiveBayes.Trainer train = new ...
그냥 작동하지 않습니다 ...
저에게 거의 천문학적입니다. 둘 다'문자열'이어야하지 않아야합니까? –
정말 사용 사례에 달려 있습니다. 맞습니까? 예를 들어, 파이썬에서 레이블이 문자열 인 shift-reduce 파서의 오라클을 배우기 위해 분류자를 구현 한 것을 기억하지만, 알려진 유한의 연산 집합 중 하나를 표현 했으므로 문자열이 아닌 다른 형식을 사용하는 것이 좋습니다. 내 레이블 때문에 정적 유형 지정의 이점을 누릴 수 있습니다. 원하는 모든 것이 문자열 인 많은 상황이있을 것이라고 확신하지만'[String, String]'을 쓰거나 도우미 함수를 작성하는 것이 그리 어렵지 않습니다. –