Ini adalah set kode pemilihan fitur dari data teks. (Tentang pemilihan fitur, lihat di sini atau di sini)
Pilihan fitur sangat penting ketika Anda menggunakan metrik pembelajaran mesin pada data bahasa alami. Data bahasa alami biasanya berisi banyak informasi kebisingan, sehingga metrik pembelajaran mesin lemah jika Anda tidak memproses pemilihan fitur apa pun. (Ada beberapa pengecualian algoritma seperti pohon keputusan atau hutan acak . Mereka memiliki metrik pemilihan fitur di dalam algoritma itu sendiri)
Pilihan fitur juga berguna saat Anda mengamati data teks Anda. Dengan pilihan fitur, Anda dapat mengetahui fitur mana yang benar -benar berkontribusi pada label tertentu.
Silakan kunjungi halaman proyek di GitHub.
Jika Anda menemukan bug dan Anda melaporkannya ke masalah GitHub, saya senang.
Setiap permintaan tarik disambut.
Paket ini memberi Anda beberapa metrik pemilihan fitur. Saat ini, paket ini mendukung metode pemilihan fitur berikut
Metode ini, pada kenyataannya, hanya memanggil TfidfTransformer dari scikit-learn.
Lihat dokumen Scikit-Learn tentang informasi terperinci.
PMI dihitung dengan korelasi antara fitur (yaitu token) dan kategori (label yaitu). Secara konkret, itu membuat tabel silang (atau disebut tabel kontingensi ) dan menghitung probabilitas bersama dan probabilitas marjinal di atasnya.
Untuk mengetahui lebih lanjut, lihat referensi
Di Python World, NLTK dan paket lainnya juga menyediakan PMI. Periksa dan pilih berdasarkan preferensi dan penggunaan Anda.
SOA ditingkatkan metode pemilihan fitur dari PMI. PMI lemah ketika fitur memiliki frekuensi kata rendah. SOA didasarkan pada komputasi PMI, namun, ini layak pada fitur frekuensi rendah. Selain itu, Anda bisa mendapatkan anti-korelasi antara fitur dan kategori.
Dalam paket ini, formula SOA berasal dari kertas berikut,
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})}
Di mana
BNS adalah metode pemilihan fitur untuk data kelas biner. Ada beberapa metode yang tersedia untuk data kelas biner, seperti Gain Informasi (IG) , CHI-Squared (CHI) , Rasio Odds (ODDS) .
Masalahnya adalah ketika Anda menjalankan pemilihan fitur Anda pada data miring. Metode -metode ini lemah untuk data miring seperti itu, namun, BNS hanya layak untuk data miring. Makalah berikut menunjukkan bagaimana BNS layak untuk data miring.
Lei Tang and Huan Liu, "Bias Analysis in Text Classification for Highly Skewed Data", 2005
atau
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
Anda mungkin melihat pesan kesalahan selama menjalankan perintah ini, seperti
We failed to install numpy automatically. Try installing numpy manually or Try anaconda distribution.
Ini karena setup.py mencoba untuk menginstal Numpy dan Scipy dengan pip , namun gagal. Kami membutuhkan Numpy dan Scipy sebelum kami menginstal scikit-learn .
Dalam hal ini, Anda mengambil pilihan berikut
numpy dan scipy secara manualanaconda . Silakan kunjungi situs mereka. 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 ()Kemudian, Anda mendapatkan hasilnya
[{ 'score' : 0.14976146817207336 , 'label' : 'label_c' , 'feature' : 'bb' , 'frequency' : 1.0 }, ...] Lihat skrip dalam examples/
Anda dapat mengatur lingkungan dev dengan komposisi Docker.
Perintah ini menjalankan tes dengan wadah Docker.
$ cd tests/
$ docker-compose build
$ docker-compose up