Это набор кодов выбора функций из текстовых данных. (О выборе функций, см. Здесь или здесь)
Выбор функций действительно важен, когда вы используете метрики машинного обучения на данных естественного языка. Данные о естественном языке обычно содержат много шумовой информации, поэтому метрики машинного обучения слабы, если вы не обрабатываете какую -либо выбор функций. (Есть некоторые исключения из алгоритмов, таких как дерево решений или случайный лес . Они имеют метрику выбора признаков внутри самого алгоритма)
Выбор функций также полезен, когда вы соблюдаете ваши текстовые данные. При выборе функций вы можете узнать, какие функции действительно способствуют конкретным этикеткам.
Пожалуйста, посетите страницу проекта на GitHub.
Если вы найдете какие -либо ошибки и сообщаете об этом в проблему GitHub, я рад.
Любые запросы притяжения приветствуются.
Этот пакет предоставляет вам некоторые показатели выбора функций. В настоящее время этот пакет поддерживает следующие методы выбора функций
Этот метод, на самом деле, просто называет TfidfTransformer из Scikit-Learn.
См. Документ Scikit-Learn о подробной информации.
PMI рассчитывается по корреляции между функцией (токеном 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 пытается установить Numpy и Scipy с pip , однако это не удается. Нам нужны Numpy и Scipy, прежде чем мы установим scikit-learn .
В этом случае вы принимаете следующий выбор
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/
Вы можете настроить Dev Environment с помощью Docker-Compose.
Эта команда запускает тест с контейнером Docker.
$ cd tests/
$ docker-compose build
$ docker-compose up