stanford - classifier 를 사용 하여 발생 하 는 몇 가지 문제 및 해결 방법

使用stanford-classifier遇到的几个问题及解决方法_第1张图片
저자: 김 량[email protected]) csdn 블 로그:http://blog.csdn.net/u012176591
The Stanford Classifier is a general purpose classifier - something that takes a set of input data and assigns each of them to one of a set of categories. It does this by generating features from each datum which are associated with positive or negative numeric “votes” (weights) for each class. In principle, the weights could be set by hand, but the expected use is for the weights to be learned automatically based on hand-classified training data items. (This is referred to as “supervised learning”.) The classifier can work with (scaled) real-valued and categorical inputs, and supports several machine learning algorithms. It also supports several forms of regularization, which is generally needed when building models with very large numbers of predictive features.
You can use the classifier on any sort of data, including standard statistics and machine learning data sets. But for small data sets and numeric predictors, you’d generally be better off using another tool such as R, Weka or scikit-learn. Where the Stanford Classifier shines is in working with mainly textual data, where it has powerful and flexible means of generating features from character strings. However, if you’ve also got a few numeric variables, you can throw them in at the same time.
1. stanford - classifier 입수
stanford - classifier 는 오픈 소스 소프트웨어 로 최대 엔트로피 분류 기 를 실현 했다.홈 페이지http://nlp.stanford.edu/software/classifier.shtml, 다운로드 주소 제공, 다운로드 후 압축 해제 디 렉 터 리: 使用stanford-classifier遇到的几个问题及解决方法_第2张图片
그 중 stanford-classifier.jar 은 실행 가능 한 jar 파일 입 니 다.stanford-classifier-3.5.2-sources.jar 에 대한 압축 을 풀 고 자바 소스 코드 를 얻어 2 차 개발 이 가능 하 다.
홈 페이지http://www-nlp.stanford.edu/wiki/Software/Classifier 몇 가지 용례 를 제시 하여 연습 에 착수 할 수 있다.
자바 버 전 은 1.8, 자바 1.7 은 안 됩 니 다.
2. eclipse 로 2 차 개발
2 차 개발 은 eclipse 을 통 해 원본 코드 를 eclipse 프로젝트 에 복사 할 때 두 개의 자바 파일 알림 이 잘못 되 었 습 니 다. 오 류 를 찾 으 면 중국어 코드 임 을 알 수 있 습 니 다.해결 방법 은 수첩 으로 열 어서 ANSI 인 코딩 으로 저장 하 는 것 이다.eclipse 항목 은 다음 과 같 습 니 다.
使用stanford-classifier遇到的几个问题及解决方法_第3张图片
main 함수 가 있 는 파일 이름 은 ColumnDataClassifier.java 이 고 가방 edu.stanford.nlp.classify. 아래 에 있 습 니 다.
eclipse 로 실행 가능 한 jar 파일 을 내 보 냅 니 다. 실행 방식 은 다운로드 패키지 에 포 함 된 실행 가능 한 패키지 와 같 습 니 다.
使用stanford-classifier遇到的几个问题及解决方法_第4张图片
3. Makefile 파일 로 jar 파일 을 컴 파일 합 니 다.
디 렉 터 리 아래 에 Makefile 파일 이 있 습 니 다. make 명령 을 실행 할 때 기본적으로 이 파일 을 사용 합 니 다.내용 은 아래 와 같다
# This is a rudimentary Makefile for rebuilding the classifier. # We actually use ant (q.v.) or a Java IDE.
JAVAC = javac JAVAFLAGS = -O -d classes
classifier: mkdir -p classes $(JAVAC) $(JAVAFLAGS) src/edu/stanford/nlp/*/*.java src/edu/stanford/nlp/*/*/*.java src/edu/stanford/nlp/*/*/*/*.java
cd classes ; jar -cfm ../stanford-classifier-new.jar ../src/edu/stanford/nlp/classify/classifier-manifest.txt edu ; cd .. cp stanford-classifier-new.jar stanford-classifier.jar rm -rf classes
명령 행 은 이 파일 이 있 는 디 렉 터 리 에 들 어가 다음 명령 을 실행 하여 컴 파일 합 니 다.
make Makefile 파일 내용 에 대한 설명:
  • 1. $(JAVAC) $(JAVAFLAGS) src/edu/stanford/nlp/*/*.java src/edu/stanford/nlp/*/*/*.java src/edu/stanford/nlp/*/*/*/*.java (JAVAC) 즉 javac 명령 으로 자바 파일 을 class 파일 로 컴 파일 합 니 다.(JAVAFLAGS) 즉 - O - d classes 는 컴 파일 된 class 파일 을 classes 폴 더 에 저장 합 니 다.src / edu / stanford / nlp / * /. 자바, src / edu / stanford / nlp / * / *. 자바 와 src / edu / stanford / nlp / * / * / *. 자바 가 컴 파일 할 자바 파일 주 소 를 표시 하 는 이 유 는 자바 소스 코드 가 세 가지 깊이 가 있 기 때 문 입 니 다. 두 번 째 부분의 eclipse 항목 에서 알 수 있 습 니 다.
  • 2. jar -cfm ../stanford-classifier-new.jar ../src/edu/stanford/nlp/classify/classifier-manifest.txt edu ; 이 명령 은 class 파일 을 실행 가능 한 jar 패키지 (stanford - classifier - new. jar) 로 봉 합 니 다. 그 중에서 classifier-manifest.txt main 함수 파일 의 주 소 를 표시 합 니 다. 한 줄 의 내용 만 있 습 니 다. Main-class: edu.stanford.nlp.classify.ColumnDataClassifier 이 항목 의 main 함수 가 있 는 파일 이름 은 ColumnDataClassifier.java 이기 때 문 입 니 다.

  • 컴 파일 명령 의 세 개의 입력 매개 변수 src / edu / stanford / nlp / *. java, src / edu / stanford / nlp / * / *. java 와 src / edu / stanford / nlp / * / * / *. java 는 하나 도 없어 서 는 안 됩 니 다. 그렇지 않 으 면 클래스 파일 을 찾 지 못 하고 다음 과 같은 오류 가 발생 할 수 있 습 니 다. 使用stanford-classifier遇到的几个问题及解决方法_第5张图片 여기 서 오류 알림 edu.stanford.nlp.trees.tregex 패 키 지 를 찾 을 수 없 는 이 유 는 컴 파일 명령 의 매개 변수 가 완전 하지 않 기 때 문 입 니 다.
    classier - manifest. txt 파일 이 없 으 면 다음 과 같은 오 류 를 알려 줍 니 다. 使用stanford-classifier遇到的几个问题及解决方法_第6张图片
    이 항목 의 일부 자바 파일 의 인 코딩 형식 은 UTF - 8 (중국어 가 포 함 된 자바 파일 로 보 입 니 다) 이 며, 일부 자바 파일 의 인 코딩 형식 은 유 니 코드 입 니 다. 이 두 인 코딩 은 명령 행 에서 컴 파일 할 때 오류 가 발생 합 니 다.
    这里写图片描述
    해결 방법 은 이 파일 들 을 수첩 으로 열 어 수정 하지 않 고 ANSI 인 코딩 형식 으로 저장 하면 됩 니 다. 다음 과 같 습 니 다. 这里写图片描述

    좋은 웹페이지 즐겨찾기