这是有问题的 React 组件。
import React from 'react';
class JSONTest extends React.Component {
constructor(props) {
super(props);
this.state = {
title: '',
description: '',
lang: ''
}
}
componentDidMount() {
this.serverRequest = $.ajax({
url: "/jinra/api/public/test",
success: (data) => {
this.setState({
title: data.title,
description: data.description,
lang: data.lang
});
}
})
}
componentWillUnmount() {
this.serverRequest.abort();
}
render() {
return (
<div>
<h1>Title: {this.state.title}</h1>
<p>Description: {this.state.description}</p>
<p>Language(s): {this.state.lang}</p>
</div>
)
}
};
module.exports = JSONTest;
Run Code Online (Sandbox Code Playgroud)
然而,当我进入 React Developer Tools 并查看组件的状态时,它说它是一个空对象,即使我在构造函数中明确将状态设置为具有空字符串。我已经测试了我的 API 调用,效果很好。这是我访问 API 时的 JSON …
这是我正在谈论的一个最小的例子:
import numpy as np
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
data = fetch_20newsgroups()
x = data.data
vec = TfidfVectorizer(min_df=0.01, max_df=0.5)
mat = vec.fit_transform(x).astype('bool')
vec.set_params(binary=True)
print(np.array_equal(mat, vec.fit_transform(x)))
Run Code Online (Sandbox Code Playgroud)
这打印False. 设置binary=True和设置所有非零值之间的根本区别是什么True?
编辑:正如@juanpa.arrivillaga 所回答,TfidfVectorizer(binary=True)仍然进行逆文档频率计算。但是,我也注意到CountVectorizer(binary=True)不会产生与两者相同的输出.astype('bool')。下面是一个例子:
In [1]: import numpy as np
...: from sklearn.datasets import fetch_20newsgroups
...: from sklearn.feature_extraction.text import CountVectorizer
...:
...: data = fetch_20newsgroups()
...: x = data.data
...:
...: vec = CountVectorizer(min_df=0.01, max_df=0.5)
...: a = vec.fit_transform(x).astype('bool') …Run Code Online (Sandbox Code Playgroud)