scikit-learn:使用自定义标签对文本进行分类
scikit-learn: classifying texts using custom labels
我有大量标记为 pos
和 neg
的单词训练集来对文本进行分类。我使用 TextBlob(根据 this tutorial)对文本进行分类。虽然它工作得相当好,但对于大型训练集(例如 8k 个单词)来说它可能会非常慢。
我想用 scikit-learn
尝试这样做,但我不确定从哪里开始。上述教程在 scikit-learn
中会是什么样子?我还希望训练集包含某些单词的权重。有些应该几乎保证特定文本被归类为 "positive",而其他人则保证它被归类为 "negative"。最后,有没有办法暗示所分析文本的某些部分比其他部分更有价值?
感谢任何指向现有教程或文档的指针!
Sebastian Raschka's Python Machine Learning book and the code can be found here: https://github.com/rasbt/python-machine-learning-book/blob/master/code/ch08/ch08.ipynb 中有一个关于这个主题的精彩章节。
他对 IMDB 数据集进行情绪分析(你正在尝试做什么)。他的数据不像你的那么干净——从表面上看——所以他需要做更多的预处理工作。您的问题可以通过以下步骤解决:
通过矢量化文本创建数值特征:http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.HashingVectorizer.html
训练测试拆分:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
训练和测试您最喜欢的模型,例如:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
有很多方法可以做到这一点,例如 Tf-Idf(词频 - 逆文档频率)、计数向量化器、潜在语义分析 (LSA)、潜在狄利克雷分配 (LDA)、Word2Vec。
在上述所有方法中,Word2Vec 是最好的方法。您可以使用 Google 为 Word2Vec 预训练的模型,可在:
我有大量标记为 pos
和 neg
的单词训练集来对文本进行分类。我使用 TextBlob(根据 this tutorial)对文本进行分类。虽然它工作得相当好,但对于大型训练集(例如 8k 个单词)来说它可能会非常慢。
我想用 scikit-learn
尝试这样做,但我不确定从哪里开始。上述教程在 scikit-learn
中会是什么样子?我还希望训练集包含某些单词的权重。有些应该几乎保证特定文本被归类为 "positive",而其他人则保证它被归类为 "negative"。最后,有没有办法暗示所分析文本的某些部分比其他部分更有价值?
感谢任何指向现有教程或文档的指针!
Sebastian Raschka's Python Machine Learning book and the code can be found here: https://github.com/rasbt/python-machine-learning-book/blob/master/code/ch08/ch08.ipynb 中有一个关于这个主题的精彩章节。
他对 IMDB 数据集进行情绪分析(你正在尝试做什么)。他的数据不像你的那么干净——从表面上看——所以他需要做更多的预处理工作。您的问题可以通过以下步骤解决:
通过矢量化文本创建数值特征:http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.HashingVectorizer.html
训练测试拆分:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
训练和测试您最喜欢的模型,例如:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
有很多方法可以做到这一点,例如 Tf-Idf(词频 - 逆文档频率)、计数向量化器、潜在语义分析 (LSA)、潜在狄利克雷分配 (LDA)、Word2Vec。
在上述所有方法中,Word2Vec 是最好的方法。您可以使用 Google 为 Word2Vec 预训练的模型,可在: