我正在运行一个非常简单的实验,ColumnTransformer
目的是转换列数组,在此示例中为[“ a”]:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.compose import ColumnTransformer
dataset = pd.DataFrame({"a":["word gone wild","gone with wind"],"c":[1,2]})
tfidf = TfidfVectorizer(min_df=0)
clmn = ColumnTransformer([("tfidf", tfidf, ["a"])],remainder="passthrough")
clmn.fit_transform(dataset)
这给了我:
ValueError: empty vocabulary; perhaps the documents only contain stop words
显然,TfidfVectorizer
可以fit_transform()
自己做:
tfidf.fit_transform(dataset.a)
<2x5 sparse matrix of type '<class 'numpy.float64'>'
with 6 stored elements in Compressed Sparse Row format>
发生这种错误的原因可能是什么?如何纠正?
那是因为您提供的是["a"]
而不是"a"
in ColumnTransformer
。根据文档:
标量字符串或整数应在转换器期望X像一维数组(矢量)的情况下使用,否则会将二维数组传递给转换器。
现在,TfidfVectorizer
需要一个字符串迭代器作为输入(因此是一维字符串数组)。但是,由于您要以的形式发送列名列表ColumnTransformer
(即使该列表仅包含一个列),因此它将是二维数组,并将传递给TfidfVectorizer
。因此,错误。
更改为:
clmn = ColumnTransformer([("tfidf", tfidf, "a")],
remainder="passthrough")
为了获得更多理解,请尝试使用以上内容从pandas DataFrame中选择数据。在执行以下操作时,请检查返回数据的格式(dtype,形状):
dataset['a']
vs
dataset[['a']]
更新 :@SergeyBushmanov,关于您对其他答案的评论,我认为您在误解文档。如果要在两列上执行tfidf,则需要传递两个转换器。像这样:
tfidf_1 = TfidfVectorizer(min_df=0)
tfidf_2 = TfidfVectorizer(min_df=0)
clmn = ColumnTransformer([("tfidf_1", tfidf_1, "a"),
("tfidf_2", tfidf_2, "b")
],
remainder="passthrough")
我希望将Spring Cloud Stream Kafka用于我的Java/Spring服务,并且我需要生成汇流序列化消息,因为我有使用汇流API来使用我的消息的.NET和NodeJS客户端。 就我们所见,使用汇流序列化器的Spring Kafka正在为我们工作,而使用汇流序列化器的Spring Cloud Stream Kafka正在给我们带来问题。 为了演示这两种情况下的区别,我在GitHub
词汇表 本表列出的是一些单词在本书中使用的翻译。这些单词大部分是专业术语,一部分是字典上没有的。 英文 中文 adapter 适配器 algorithm 算法 allocate 分配 allocator 分配器 amortize 分摊 argument 实参 associative container 关联容器 cast 映射 category 种类 component 组件 context 场景
这是 Redux 的核心概念词汇表以及这些核心概念的类型签名。这些类型使用了流标注法进行记录。 State type State = any State (也称为 state tree) 是一个宽泛的概念,但是在 Redux API 中,通常是指一个唯一的 state 值,由 store 管理且由 getState() 方法获得。它表示了 Redux 应用的全部状态,通常为一个多层嵌套的对象。 约
@Directive more more @Injectable more @Input more more @Pipe more @ViewChildren more
此词汇表包含了与Apache相关的一些常用术语的详细定义,以及对网络服务的一般说明,并提供了相关的更详细资料的连接。 定义 访问控制(Access Control) 对网络领域访问的限制。对Apache来说,通常是指对某些URL访问的限制。参见:认证、授权、访问控制 算法(Algorithm) 通过有限步骤解决问题的一个明确的公式或者一套规则。用于加密的算法通常称为加密算法(Cipher)。 Ap
这是 React Router 库以及文档中常用术语的词汇表,并附有 type signatures(类型签名),以首字母顺序列出。 Action(动作) Component(组件) EnterHook LeaveHook Location LocationKey LocationState Path(路径) Pathname(路径名) Params(参数) Query QueryString R