2014-04-28 6 views
0

Carrot2- bisectingKmeans 알고리즘을 통해 문서 클러스터링을 시도했습니다. resouceLookup의 속성을 설정하고 영어/중국어의 언어를 테스트했습니다. 둘 다 "resouce lookup locations ...에 resources named stopwords.ar"라는 오류가 발생했습니다. 내가 쓴 대구 :Carrot2-bisectingKmeans resouceLookup의 속성을 설정하면 stopwords.ar라는 리소스가 없음 오류가 발생합니다.

//set the resoucelookup 
File resDir = new File("resouces"); 
ResouceLookup res = new ResouceLookup(new DirLocator(resDir)); 
LexicalDataLoaderDescriptor.attributeBuilder(preprocessAttr).resourceLookup(res); 
//set the language 
MultilingualClusteringDescriptor.attributeBuilder(processingAttr) 
      .defaultLanguage(LanguageCode.CHINESE_SIMPLIFIED); 

문제는 무엇입니까? 감사.

답변

0

이 문제를 해결하는 가장 명백한 방법은 모든 어휘 자원을 모두 resources 디렉토리에 복사하는 것입니다. 예를 들어 Carrot2 Java API distribution에 리소스 파일이 있습니다.

대안은 클래스 경로 (Carrot2의 JAR)에서 누락 된 자원을로드 할 수 Carrot2 말씀하는 것입니다

이 배열에서
File resourcesDir = new File("resources"); 
ResourceLookup resourceLookup = new ResourceLookup(
    new DirLocator(resourcesDir), // your custom location 
    new ContextClassLoaderLocator() // fallback: classpath (Carrot2 JAR) 
); 
LexicalDataLoaderDescriptor.attributeBuilder(attrs) 
    .resourceLookup(resourceLookup); 

만 리소스를 포함 할 수 resources 디렉토리를 재정의하고 싶습니다. 오버라이드되지 않은 것들과 당신이 신경 쓰지 않는 것들은 Carrot2 JAR로부터로드 될 것입니다.

  • 당신이 Carrot2의 JAR를 업그레이드

    는, 대체 자원이 자동으로 변경 될 수 있습니다 :

    주의 여기에있다.

  • 사용자 정의 위치가 잘못 설정된 경우 (예 : 빈 디렉토리 전달) 디버깅 로깅 수준을 사용하지 않는 한 클러스터링은 자동으로 내장 된 어휘 자원을 사용하여 특정 경고없이 진행됩니다.