这些分数被归一化为0到1之间的值,编码的文档向量可以直接用于大年夜多半机械进修算法。
HashingVectorizer——哈希量化文本
单词频率和权重是很有效的,然则当词汇表变得很大年夜时,以上两种办法就会出现局限性。
反过来,这将须要巨大年夜的向量来编码文档,并对内存请求很高,并且会减慢算法的速度。
一种很好的办法是应用单向哈希办法来将单词转化成整数。好处是该办法不须要词汇表,可以选择随便率性长的固定长度向量。缺点是哈希量化是单向的,是以无法将编码转换回单词(对与很多有监督的进修义务来说或许并不重要)。
HashingVectorizer类实现了这一办法,所以可以应用它对单词进行持续哈希量化,然后按需求词条化和编码文档。
下面是对单一文档应用HashingVectorizer进行编码的示例。
要留意这种量化办法不请求调用函数来对练习数据文件进行拟合。相反,在实例化之后,它可以直接用于编码文档。
- from sklearn.feature_extraction.text import HashingVectorizer
- # 文本文档列表
- text = ["The quick brown fox jumped over the lazy dog."]
- # 创建变换函数
- vectorizer = HashingVectorizer(n_features=20)
- # 编码文档
- vector = vectorizer.transform(text)
- # 总结编码文档
- print(vector.shape)
- print(vector.toarray())
运行该示例代码可以模典范文档编码成一个含有20个元素的稀少矩阵。
编码文档的值对应于正则化的悼?雌数,默认值袈溱-1到1之间,然则可以修改默认设置,然后设置成整数计数值。
最终,第一个文档被编码成一个8个元素的稀少矩阵,我们可以查看每个单词典最终权重分数,可以看到“the”、“fox”,以及“dog”的值与词汇表中其他单词典值不合。
- (1, 20)
- [[ 0. 0. 0. 0. 0. 0.33333333
- 0. -0.33333333 0.33333333 0. 0. 0.33333333
- 0. 0. 0. -0.33333333 0. 0.
- -0.66666667 0. ]]
深度浏览
这一节我们为大年夜家供给了一些关于这篇文┞仿的深度浏览材料。
天然说话处理
- 维诽谤科“词袋”(Bag-of-words)模型介绍。
- 维诽谤科“词条化”(Tokenization)介绍。
- 维诽谤科“TF-IDF”。
scikit-learn
- scikit-learn应用手册4.2节,特点提取。
- sckit-learn特点提取API。
- scikit-learn教程:文本数据处理。
类API
- CountVectorizer scikit-learn API
- TfidfVectorizer scikit-learn API
- TfidfTransformer scikit-learn API
- HashingVectorizer scikit-learn API
总结
因为这些向量含有很多零值,所以我们称之为稀少的。Python在scipy.sparse库中供给了一种处理这类稀少向量的有效办法。
在这篇教程中,你会进修到若何用scikit-learn来预备用于机械进修的文本数据。
我们只是在这些例子中接触了外相,我想强调的是这些类有很多设置细节会影响文档词条化的结不雅,值得我们持续商量。
【编辑推荐】
- 安然人寿谢佳标:应用Microsoft R Server对大年夜数据进行机械进修
- 资本盘点:有效的主动化数据科学和机械进修软件
- 大年夜算法实现到MiniFlow实现,打造机械进修的基本架构平台
- 转行AI和机械进修,你最须要控制这五大年夜技能
- 如有有一天,你的小孩问:「爸爸,什么是机械进修呀?」
推荐阅读
传递提到,本次本次对31个省(区、市)及新疆临盆扶植兵团的互联网政务办事平台进行了检查,共随机抽查平台201个,个中省级平台30个、地市级平台42个、区县级平台129个。除核查各平台功能是>>>详细阅读
本文标题:如何使用Scikit-learn实现用于机器学习的文本数据准备
地址:http://www.17bianji.com/lsqh/38463.html
1/2 1