이것은 텍스트 데이터의 기능 선택 코드 세트입니다. (기능 선택에 대해서는 여기 또는 여기 참조)
기능 선택은 자연어 데이터에서 머신 러닝 메트릭을 사용할 때 정말 중요합니다. 자연어 데이터에는 일반적으로 많은 소음 정보가 포함되어 있으므로 기능 선택을 처리하지 않으면 기계 학습 메트릭이 약합니다. ( 의사 결정 트리 또는 랜덤 포레스트 와 같은 알고리즘의 예외가 있습니다. 알고리즘 자체 내부에는 기능 선택 메트릭이 있습니다)
기능 선택은 텍스트 데이터를 관찰 할 때도 유용합니다. 기능 선택을 사용하면 특정 레이블에 실제로 어떤 기능을 제공하는지 알 수 있습니다.
Github의 프로젝트 페이지를 방문하십시오.
버그를 발견하고 GitHub 문제에보고되면 기쁩니다.
모든 풀 보충은 환영받습니다.
이 패키지는 기능 선택 메트릭을 제공합니다. 현재이 패키지는 기능 선택 방법을 지원합니다
실제로이 방법은 Scikit-Learn의 TfidfTransformer 호출합니다.
자세한 정보에 대한 Scikit-Learn 문서를 참조하십시오.
PMI는 기능 (예 : 토큰)과 범주 (즉, 레이블) 간의 상관 관계에 의해 계산됩니다. 구체적으로, 교차 테이블 (또는 비상 사태 테이블 이라고 함)을 만들고 관절 확률과 한계 확률을 계산합니다.
자세한 내용은 참조를 참조하십시오
Python World에서는 NLTK 및 기타 패키지도 PMI를 제공합니다. 선호도와 사용에 따라 확인하고 선택하십시오.
SOA는 PMI에서 기능 선택 방법을 개선했습니다. 기능의 단어 주파수가 낮을 때 PMI는 약합니다. SOA는 PMI 컴퓨팅을 기반으로하지만 이러한 저주파 기능에서는 가능합니다. 또한 기능과 카테고리간에 반 상관이 발생할 수 있습니다.
이 패키지에서 SOA 공식은 다음 종이에서 나온 것입니다.
Saif Mohammad and Svetlana Kiritchenko, "Using Hashtags to Capture Fine Emotion Categories from Tweets", Computational Intelligence, 01/2014; 31(2).
SOA(w, e) = log_2frac{freq(w, e) * freq(neg{e})}{freq(e) * freq(w, neg{e})}
어디
BNS는 이진 클래스 데이터를위한 기능 선택 방법입니다. 정보 게인 (IG) , Chi-Squared (CHI) , ODDS (ODD) 와 같은 이진 클래스 데이터에 사용할 수있는 몇 가지 방법이 있습니다.
문제는 왜곡 된 데이터에서 기능 선택을 실행할 때입니다. 이러한 방법은 왜곡 된 데이터에 대해 약하지만 BNS는 왜곡 된 데이터에 대해서만 가능합니다. 다음 논문은 비뚤어진 데이터에 대해 BNS가 어떻게 가능한지 보여줍니다.
Lei Tang and Huan Liu, "Bias Analysis in Text Classification for Highly Skewed Data", 2005
또는
George Forman, "An Extensive Empirical Study of Feature Selection Metrics for Text Classification",Journal of Machine Learning Research 3 (2003) 1289-1305
python setup.py install
이 명령을 실행하는 동안 오류 메시지가 표시 될 수 있습니다.
We failed to install numpy automatically. Try installing numpy manually or Try anaconda distribution.
setup.py Numpy와 Scipy를 pip 와 함께 설치하려고하지만 실패하기 때문입니다. scikit-learn 설치하기 전에 Numpy와 Scipy가 필요합니다.
이 경우 다음 선택을합니다
numpy 와 scipy 수동으로 설치합니다anaconda Python 분포를 사용합니다. 그들의 사이트를 방문하십시오. input_dict = {
"label_a" : [
[ "I" , "aa" , "aa" , "aa" , "aa" , "aa" ],
[ "bb" , "aa" , "aa" , "aa" , "aa" , "aa" ],
[ "I" , "aa" , "hero" , "some" , "ok" , "aa" ]
],
"label_b" : [
[ "bb" , "bb" , "bb" ],
[ "bb" , "bb" , "bb" ],
[ "hero" , "ok" , "bb" ],
[ "hero" , "cc" , "bb" ],
],
"label_c" : [
[ "cc" , "cc" , "cc" ],
[ "cc" , "cc" , "bb" ],
[ "xx" , "xx" , "cc" ],
[ "aa" , "xx" , "cc" ],
]
}
from DocumentFeatureSelection import interface
interface . run_feature_selection ( input_dict , method = 'pmi' , use_cython = True ). convert_score_matrix2score_record ()그런 다음 결과를 얻습니다
[{ 'score' : 0.14976146817207336 , 'label' : 'label_c' , 'feature' : 'bb' , 'frequency' : 1.0 }, ...] examples/
Docker-Compose를 사용하여 DEV 환경을 설정할 수 있습니다.
이 명령은 Docker 컨테이너에서 테스트를 실행합니다.
$ cd tests/
$ docker-compose build
$ docker-compose up