scikit学习python fasttext的包装
skift的Python项目详细描述
scikit-learnpython的包装器fastText。
>>>fromskiftimportFirstColFtClassifier>>>df=pandas.DataFrame([['woof',0],['meow',1]],columns=['txt','lbl'])>>>sk_clf=FirstColFtClassifier(lr=0.3,epoch=10)>>>sk_clf.fit(df[['txt']],df['lbl'])>>>sk_clf.predict([['woof']])[0]
内容
2 Configuration
因为fasttext从文件中读取输入数据,skift必须将输入数据转储到临时文件中,以便fasttext使用。为文件系统上的这些文件创建一个专用文件夹。默认情况下,此存储分配在系统临时存储位置(即*nix系统上的/tmp)。要覆盖此默认位置,请使用SKIFT_TEMP_DIR环境变量:
exportSKIFT_TEMP_DIR=/path/to/desired/temp/folder
^ {STR 1 } $注:>目录将创建,如果它不存在。
3 Features
- 遵循scikit-learn分类器API,包括predict_proba。
- 还满足了pandas.DataFrameinputs的常见用例。
- 使fastText与其他类型的scikit-learn兼容分类器轻松堆叠。
- 可pickle的分类器对象。
- 围绕official fasttext Python package构建。
- 纯Python。
- 支持Python3.5+。
- 全面测试。
4 Wrappers
fastText只对文本数据起作用,这意味着它将只使用数据集中的一个列,该数据集可能包含许多不同类型的功能列。因此,一个常见的用例是让fastText分类器使用单个列作为输入,而忽略其他列。当fastText用作堆叠分类器中的多个分类器之一,而其他分类器使用非文本特征时,尤其如此。
skift包含几个scikit-learn兼容的包装器(用于officialfastTextpython包),它们可以满足这些用例。
注意:提供给分类器构造函数的任何其他关键字参数,除了那些必需的参数外,将在每次调用fit时转发给fastText.train_supervised方法。
4.1 Standard wrappers
除了通常由scikit-learn分类所做的假设之外,这些包装器不会对输入做额外的假设;即,该输入是2dndarray对象等。
- FirstColFtClassifier-一个用于fasttext的sklearn分类器适配器,它接受输入ndarray对象的第一列作为输入。
>>>fromskiftimportFirstColFtClassifier>>>df=pandas.DataFrame([['woof',0],['meow',1]],columns=['txt','lbl'])>>>sk_clf=FirstColFtClassifier(lr=0.3,epoch=10)>>>sk_clf.fit(df[['txt']],df['lbl'])>>>sk_clf.predict([['woof']])[0]
- IdxBasedFtClassifier-一个用于fasttext的sklearn分类器适配器,按列索引接受输入。这是通过向构造函数提供input_ix参数在对象构造上设置的。
>>>fromskiftimportIdxBasedFtClassifier>>>df=pandas.DataFrame([[5,'woof',0],[83,'meow',1]],columns=['count','txt','lbl'])>>>sk_clf=IdxBasedFtClassifier(input_ix=1,lr=0.4,epoch=6)>>>sk_clf.fit(df[['count','txt']],df['lbl'])>>>sk_clf.predict([['woof']])[0]
4.2 pandas-dependent wrappers
这些包装器假设给fit,predict方法的X参数是一个pandas.DataFrame对象:
- FirstObjFtClassifier-一个用于fasttext的sklearn适配器,使用dtype == object的第一列作为输入。
>>>fromskiftimportFirstObjFtClassifier>>>df=pandas.DataFrame([['woof',0],['meow',1]],columns=['txt','lbl'])>>>sk_clf=FirstObjFtClassifier(lr=0.2)>>>sk_clf.fit(df[['txt']],df['lbl'])>>>sk_clf.predict([['woof']])[0]
- ColLblBasedFtClassifier-一个sklearn适配器,用于按列标签获取输入的fasttext。这是通过向构造函数提供input_col_lbl参数在对象构造上设置的。
>>>fromskiftimportColLblBasedFtClassifier>>>df=pandas.DataFrame([['woof',0],['meow',1]],columns=['txt','lbl'])>>>sk_clf=ColLblBasedFtClassifier(input_col_lbl='txt',epoch=8)>>>sk_clf.fit(df[['txt']],df['lbl'])>>>sk_clf.predict([['woof']])[0]
5 Contributing
软件包作者和当前维护者是shay palachy(shay.palachy@gmail.com);非常欢迎您向他寻求帮助。捐款是非常受欢迎的。
5.1 Installing for development
克隆:
git clone git@github.com:shaypal5/skift.git
以开发模式安装,包括测试依赖项:
cd skift pip install -e '.[test]'
要同时安装fasttext,请参阅安装部分中的说明。
5.3 Adding documentation
这个项目是使用numpy docstring conventions来记录的,之所以选择它们,是因为它们可能是由公共工具支持的最广泛传播的约定。例如sphinx并生成人类可读的docstring。在记录添加到此项目中的代码时,请遵循these conventions。
另外,如果您更新了这个README.rst文件,请使用python setup.py checkdocs验证它的编译。