python 文本向量化_python – 在向量化时保留文本数据的排序

博客讨论了如何使用scikit-learn处理文本分类任务,并提出使用Gensim库的Word2Vec模型来考虑单词的上下文和顺序,以提高分类器的性能。Gensim是一个强大的自然语言处理库,提供了高效的Word2Vec实现,可以将单词嵌入到向量中,这些向量可以作为分类器的输入特征。
摘要由CSDN通过智能技术生成

我正在尝试用scikit-learn编写机器学习算法,该算法解析文本并根据训练数据对其进行分类.

直接从scikit-learn文档中获取的使用文本数据的示例使用CountVectorizer生成稀疏数组,以显示每个单词出现的次数.

>>> from sklearn.feature_extraction.text import CountVectorizer

>>> count_vect = CountVectorizer()

>>> X_train_counts = count_vect.fit_transform(twenty_train.data)

不幸的是,这并未考虑短语的任何排序.可以使用更大的ngrams(CountVectorizer(ngram_range =(min,max)))来查看特定的短语,但这会快速增加特征的数量,甚至不是那么好.

有没有一种以另一种方式处理有序文本的好方法?我绝对愿意使用自然语言解析器(nltk,textblob等)和scikit-learn.

最佳答案 那么

word2vec embedding?它是一个基于神经网络的单词嵌入到向量中,并考虑了上下文.这可以为您的分类器提供更复杂的功能集.

一个功能强大的python库,用于自然语言处理,具有良好的word2vec实现,是gensim.Gensim具有高度可扩展性和快速性,并具有高级文本处理功能.以下是如何入门的快速概述:

安装

只需要做easy_install -U gensim或pip install –upgrade gensim.

一个简单的word2vec示例

import gensim

documents = [['human', 'interface', 'computer'],

['survey', 'user', 'computer', 'system', 'response', 'time'],

['eps', 'user', 'interface', 'system'],

['system', 'human', 'system', 'eps'],

['user', 'response', 'time'],

['trees'],

['graph', 'trees'],

['graph', 'minors', 'trees'],

['graph', 'minors', 'survey']]

model = gensim.models.Word2Vec(documents, min_count=1)

print model["survey"]

这将输出“测量”映射到的矢量,您可以将其用于分类器的特征输入.

Gensim有很多其他功能,如果你对自然语言处理感兴趣,值得更好地了解它.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值