這是文本數據中的特徵選擇代碼集。 (關於功能選擇,請參閱此處或此處)
當您在自然語言數據上使用機器學習指標時,功能選擇非常重要。自然語言數據通常包含大量噪聲信息,因此,如果您不處理任何功能選擇,則機器學習指標會很弱。 (決策樹或隨機森林等算法有一些例外。它們在算法本身內具有特徵選擇度量)
當您觀察文本數據時,功能選擇也很有用。通過功能選擇,您可以知道哪些功能確實有助於特定標籤。
請訪問Github上的項目頁面。
如果您發現任何錯誤並將其報告給GitHub問題,我很高興。
歡迎任何拉的要求。
此軟件包為您提供一些功能選擇指標。當前,此軟件包支持以下功能選擇方法
實際上,這種方法只是稱為Scikit-Learn的TfidfTransformer 。
請參閱有關詳細信息的Scikit-Learn文檔。
PMI是通過功能(IE令牌)和類別(IE標籤)之間的相關性計算得出的。具體而言,它可以製作跨表(或稱為抗義務表),併計算其上的關節概率和邊際概率。
要了解更多,請參閱參考
在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) ,優勢比(賠率) 。
問題是當您在偏斜數據上執行功能選擇時。對於此類偏斜的數據,這些方法很弱,但是, 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試圖使用pip的issal numpy和scipy,但是失敗了。在安裝scikit-learn之前,我們需要Numpy和Scipy。
在這種情況下,您採取以下選擇
numpy和scipyanaconda 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設置開發環境。
該命令使用Docker容器進行測試。
$ cd tests/
$ docker-compose build
$ docker-compose up