Este é um conjunto de códigos de seleção de recursos dos dados de texto. (Sobre a seleção de recursos, veja aqui ou aqui)
A seleção de recursos é realmente importante quando você usa métricas de aprendizado de máquina nos dados de linguagem natural. Os dados da linguagem natural geralmente contêm muitas informações de ruído, portanto, as métricas de aprendizado de máquina são fracas se você não processar nenhuma seleção de recursos. (Há algumas exceções de algoritmos, como árvore de decisão ou floresta aleatória . Eles têm métrica de seleção de recursos dentro do próprio algoritmo)
A seleção de recursos também é útil quando você observa seus dados de texto. Com a seleção de recursos, você pode saber quais recursos realmente contribuem para rótulos específicos.
Visite a página do projeto no Github.
Se você encontrar algum bug e relatar o problema do Github, fico feliz.
Qualquer solicitação de tração é bem-vinda.
Este pacote fornece algumas métricas de seleção de recursos. Atualmente, este pacote suporta os seguintes métodos de seleção de recursos
Esse método, de fato, apenas chama TfidfTransformer do Scikit-Learn.
Consulte o documento Scikit-Learn sobre informações detalhadas.
O PMI é calculado por correlação entre o recurso (isto é, token) e categoria (isto é, rótulo). Concretamente, torna a mesa cruzada (ou chamada tabela de contingência ) e calcula a probabilidade da articulação e a probabilidade marginal nela.
Para saber mais, consulte a referência
No Python World, NLTK e outros pacote também fornecem PMI. Verifique -os e escolha com base na sua preferência e uso.
SOA é um método aprimorado de seleção de recursos do PMI. O PMI é fraco quando o recurso tem baixa frequência de palavras. A SOA é baseada na computação do PMI, no entanto, é viável em recursos de baixa frequência. Além disso, você pode obter anti-correlação entre recursos e categorias.
Neste pacote, a fórmula SOA é do artigo a seguir,
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})}
Onde
O BNS é um método de seleção de recursos para dados de classe binária. Existem vários métodos disponíveis para dados de classe binária, como ganho de informação (IG) , qui-quadrado (CHI) , odds ratio (odds) .
O problema é quando você executa sua seleção de recursos em dados distorcidos. Esses métodos são fracos para esses dados distorcidos, no entanto, o BNS é viável apenas para dados distorcidos. O artigo a seguir mostra como o BNS é viável para dados distorcidos.
Lei Tang and Huan Liu, "Bias Analysis in Text Classification for Highly Skewed Data", 2005
ou
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
Você pode ver a mensagem de erro durante a execução deste comando, como
We failed to install numpy automatically. Try installing numpy manually or Try anaconda distribution.
Isso ocorre porque setup.py tenta instalar Numpy e Scipy com pip , no entanto, falha. Precisamos de Numpy e Scipy antes de instalarmos scikit-learn .
Nesse caso, você toma a escolha seguinte
numpy e scipy manualmenteanaconda Python. Por favor, visite o site deles. 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 ()Então, você obtém o resultado
[{ 'score' : 0.14976146817207336 , 'label' : 'label_c' , 'feature' : 'bb' , 'frequency' : 1.0 }, ...] Veja scripts em examples/
Você pode configurar o ambiente de desenvolvimento com o Docker-Compose.
Este comando executa o teste com o contêiner do docker.
$ cd tests/
$ docker-compose build
$ docker-compose up