pythontransform⽅法_我应该如何理解pythonsklearn中
的.tran。。。
向量器将语料库(例如⽂本⽂档)转换为向量Vector Space Model。有很多⽅法可以做到这⼀点,⽽结果将取决于所使⽤的技术。⽮量器是必要的,因为模型处理的是数字,⽽不是⽂字。
具体来说,CountVectorizer的实现将⽣成⼀个数组,其中包含每个单词的出现次数。在这种特定情况下,CountVectorizer被⽤作⽣成TF-IDF(Term Frequency-Inverse Document Frequency)表⽰的前⼀步,这是⽤于确定⽂档中单词的“重要性”的最常⽤技术之⼀。该模型的假设是,出现较多的术语更可能代表该⽂档(术语频率),但不应考虑整个语料库之间的“常⽤词”(逆向⽂档频率),例如连接词。该技术在信息检索领域有着⼴泛的应⽤。在
⼀旦你有了⼀个向量空间表⽰的语料库,你就可以开始使⽤这个表⽰作为你的机器学习技术的输⼊。在
尤其是transform⽅法将返回将训练(fit)模型应⽤于作为参数传递的元素的结果。换句话说,转换将输⼊“翻译”成“模型表⽰语⾔”。在
transform中文翻译让我们⽤⼀个例⼦来说明这⼀点:
假设我们有3个⽂档(我知道内容没有意义):⽂件⼀:这是⼀号⽂件,脾⽓暴躁。在
⽂件⼆:这是⽂件⼆是悲哀。在
⽂件三:这是三号⽂件是幸福的。在
当fit()被调⽤时,CountVectorizer将学习词汇表。在
[this, is, document, one, grumpy, two, sad, three, happy]
另⼀⽅⾯,当在语料库上调⽤transform时,它将使⽤词汇表来⽣成这个矩阵:
[1, 2, 1, 1, 1, 0, 0, 0, 0]
(1) [1, 2, 1, 0, 0, 1, 1, 0, 0]
[1, 2, 1, 0, 0, 0, 0, 1, 1]
包含每个⽂档的单词⽂档。这⾥,值2对应于单词“is”,在每个⽂档中重复两次。另外,值“0”表⽰⽂档中不存在该单词。在
现在,我们可以⽤这个矩阵⽤fit()来训练TF-IDF模型,它将⽣成以下向量:
(2) [3, 6, 3, 1, 1, 1, 1, 1, 1]
包含每个单词的全局出现次数。然后,当您将变换应⽤于(1)时,tf-idf模型将使⽤在拟合阶段(2)⽣成的向量来创建tf-idf矩阵:
[0.33, 0.33, 0.33, 1, 1, 0, 0, 0, 0]
[0.33, 0.33, 0.33, 0, 0, 1, 1, 0, 0]
[0.33, 0.33, 0.33, 0, 0, 0, 0, 1, 1]
其中较低的数字代表更常见的单词。注意“独特”的词有更⾼的数字。稍后的矩阵就是您将⽤来训练ML模型的矩阵。在
总⽽⾔之,例如,如果您希望使⽤聚类技术(例如KMeans)对⼀组⽂档进⾏分类,则过程如下:转换⽂档以⽣成VSM表⽰。适合TF-IDF模型,该模型将有助于确定每个⽂件中哪些术语最重要。
适合KMeans模型,该模型将⽣成理想情况下包含相关⽂档的集。为此,模型将使⽤最后⼀步⽣成的结果,通过识别⽂档之间的共享词来建⽴⽂档关系。
所有这些解释都是在⾃然语⾔处理的背景下进⾏的,如果您想使⽤ML来识别图像,那么您当然不会使⽤tf-idf。在
我希望它能帮上忙!。在
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论