我想将某些文本向量化为相应的整数,然后将这些文本转换为其映射的整数,并使用新的输入整数[2,9,39,46,56,12,89,9]
创建新句子。如何使用sklearn的CountVectorizer进行矢量化和devectorize?
我见过一些可以用于此目的的自定义函数,但我想知道sklearn本身是否具有这样的功能。
from sklearn.feature_extraction.text import CountVectorizer
a=["""Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Morbi imperdiet mauris posuere, condimentum odio et, volutpat orci.
Curabitur sodales vulputate eros eu gravida. Sed pharetra imperdiet nunc et tempor.
Nullam lectus est, rhoncus vitae lacus at, fermentum aliquam metus.
Phasellus a sollicitudin tortor, non tempor nulla.
Etiam mattis felis enim, a malesuada ligula dignissim at.
Integer congue dolor ut magna blandit, lobortis consequat ante aliquam.
Nulla imperdiet libero eget lorem sagittis, eget iaculis orci dignissim.
Phasellus sit amet sodales odio. Pellentesque commodo tempor risus, et tincidunt neque.
Praesent et sem velit. Maecenas id risus sit amet ex convallis ultrices vel sed purus.
Sed fringilla, leo quis congue sollicitudin, mauris nunc vehicula mi, et laoreet ligula
urna et nulla. Nam sollicitudin urna sed dolor vehicula euismod. Mauris bibendum pulvinar
ornare. In suscipit sed mi ut posuere.
Proin egestas, nibh ut egestas mattis, ipsum nulla bibendum enim, ac suscipit nisl justo
id metus. Nam est dui, elementum eget suscipit nec, aliquam in mi. Integer tortor erat,
aliquet at sapien et, fringilla posuere leo. Praesent non congue est. Vivamus tincidunt
tellus eu placerat tincidunt. Phasellus convallis lacus vitae ex congue efficitur.
Sed ut bibendum massa, vitae molestie ligula. Phasellus purus felis, fermentum vitae
hendrerit vel, vulputate quis metus."""]
vec = CountVectorizer()
dtm=vec.fit_transform(a)
print vec.vocabulary_
#convert text to corresponding vectors
mapped_a=
#new sentence using below mapped values
#input [2,9,39,46,56,12,89,9]
#creating sentence using specific sequence
new_sentence=
感谢您的代码,但我有代码轻微的问题。在'mapped_a'我不想要稀疏矩阵,而是我想用它的映射整数替换每个单词。让我们把'dolor'这个单词映射到'17',同样我想用这些整数来替换文本'a'中的每个单词。其次,它的语句创建考虑了这些输入input1 = [2,54,9]''input1 = [9,54,2]'我期望代码保持打印句子的顺序,但是两个输入序列产生相同的结果数组[u'aliquam',u'commodo',u'magna'],dtype ='
Eka
我更新了问题的第一部分以输出所有单词的ID。第二部分,从id到words,应该工作和维护顺序(该部分用for循环评论为自定义解决方案)。 –