小编Eri*_*Taw的帖子

使用 API 设置状态不起作用;状态是一个空对象

这是有问题的 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 …

javascript reactjs

5
推荐指数
0
解决办法
340
查看次数

为什么 vectorizer.fit_transform(x).astype('bool') 与 vectorizer.set_params(binary=True).fit_transform(x) 不同?

这是我正在谈论的一个最小的例子:

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)

python scikit-learn

4
推荐指数
1
解决办法
725
查看次数

标签 统计

javascript ×1

python ×1

reactjs ×1

scikit-learn ×1