鍍金池/ 問答/ 人工智能問答
六扇門 回答

你應(yīng)該分析html結(jié)構(gòu)和抓取的標(biāo)簽,例如這是一個(gè)table(我瞎猜的,嗯)tabody->tr->td->a,然后去使用xpath或者BeautifulSoup4去提取,提取出來的月份鏈接list,循環(huán)遍歷這個(gè)list產(chǎn)生請求去追蹤每個(gè)頁面。

yield scrapy.Request(url, callback=self.parse_everymonth_content, headers=headers)

是我的錯(cuò),我把hadoop的jar打包到我的應(yīng)用里了,而使用hadoop版本與現(xiàn)有的hadoop系統(tǒng)的版本不同才導(dǎo)致這個(gè)問題。

爛人 回答

是第二次請求接口使返回的數(shù)據(jù)亂碼嗎?

還是查詢r(jià)edis中的值時(shí)亂碼。

我也在springboot的一個(gè)小項(xiàng)目中測試了一下,不過功能正常。

jpa:
    show-sql: true
  jackson:
    default-property-inclusion: non_null
  redis:
    host: 192.168.1.111
    port: 6379

對于使用StringRedisTemplate去存儲token的AOP是正常的沒我并沒有配置什么,而是直接使用springboot的集成,

import org.springframework.data.redis.core.StringRedisTemplate;

然后我再一個(gè)請求商品的list時(shí)加了@Cacheable進(jìn)行商品信息的緩存。

@GetMapping("/list")
    @Cacheable(cacheNames = "product",key = "1")
//    @Cacheable(cacheNames = "product", key = "#sellerId", condition = "#sellerId.length() > 3", unless = "#result.getCode() != 0")
    public ResultVO list(){
        
        ...
        ...
        ...
        return ResultVOUtil.success(productVOList);
    }

再頁面與postman都是正常的顯示數(shù)據(jù),且控制臺也跑出了sql(我這里執(zhí)行兩個(gè)sql操作)
請求結(jié)果
控制臺信息
當(dāng)我再次刷新時(shí),sql并沒有執(zhí)行,而是去請求redis。
我去查看了redis,也正常存儲進(jìn)去了

redis可視化工具

你能具體說下你的bug問題還有復(fù)現(xiàn)下它的發(fā)生環(huán)境嗎?

詆毀你 回答

訪問速度和內(nèi)存占用大小都是由數(shù)據(jù)結(jié)構(gòu)本身決定的 。用hash實(shí)現(xiàn)的,訪問和查找速度肯定快,但是這種結(jié)構(gòu)就犧牲了內(nèi)存開銷。同樣地,一個(gè)類的屬性和方法越多,那么實(shí)例占用的內(nèi)存肯定越大??梢杂?code>sys.getsizeof查看大小。數(shù)據(jù)結(jié)構(gòu)和語言本身并無直接聯(lián)系,只是實(shí)現(xiàn)方式略有不同罷了,關(guān)于樹形結(jié)構(gòu),比如也可以用列表或者xml格式存儲,沒有什么硬性規(guī)定,看具體需求

拽很帥 回答

redis連不上了,排查方法

  1. 查看redis server 進(jìn)程是否存在
  2. 如果存在,確認(rèn)連接的redis ip和端口是否正確
未命名 回答

看上去是TenserFlow要求CPU具備AVX和AVX2特性,但你的CPU不支持.

AVX指令集是Sandy Bridge和Larrabee架構(gòu)下的新指令集.
Sandy Bridge是英特2011年后出的CPU.

如果可以的話找臺新機(jī)器試試你的代碼.

Linux上用下面的代碼可以檢查是否CPU支持avx技術(shù)

 cat /proc/cpuinfo |grep avx
厭遇 回答

可以看看我寫的這篇博客,有點(diǎn)長耐心看完,我當(dāng)初寫了好幾天的成果。。。
從++[[]][+[]]+[+[]]==10?深入淺出弱類型JS的隱式轉(zhuǎn)換

不將就 回答

你存盤了嗎?

圖片描述

只愛你 回答

您好,請問現(xiàn)在解決了嗎?求解,拜托了

司令 回答

答案沒有錯(cuò),是243765

未刪除前BST的結(jié)構(gòu)如下:
圖片描述

刪除節(jié)點(diǎn)1以后,BST的結(jié)構(gòu)如下:
圖片描述

根據(jù)刪除節(jié)點(diǎn)以后的樹結(jié)構(gòu),Post Order Traversal的結(jié)果就是答案的結(jié)果

奧特蛋 回答

建議試試卸載 php71-redis、php71-igbinary,然后按順序安裝igbinary、redis

brew install php71-igbinary --build-from-source
brew install php71-redis --build-from-source
瞄小懶 回答

1、建表語句,每次都刪除再創(chuàng)建,所以只有最后一條記錄,建議提前把表建好,不要放在這里建表,或者做一下是否存在該表就不創(chuàng)建,不要?jiǎng)h除表。
2、命令行,需要設(shè)置字符集

set names utf8;
  1. 一個(gè)map和reduce完成不了. 中間要再加一個(gè)combiner.
  2. 捋一下思路
    假設(shè)a.txt文件里數(shù)據(jù)是{tom jack tom jack rose tom}
    那么map的輸出就是
    <tom,1> <jack,1> <tom,1> <jack,1> <rose,1> <tom,1>
    然后匯總工作到reduce去做.reduce接收的就是這樣的數(shù)據(jù)
    <tom,[1,1,1]><jack,[1,1]><rose,[1]>
    reducer輸出的是<tom,3><jack,2><rose,1>, 這樣就統(tǒng)計(jì)出來了. 當(dāng)然這是普通的做法

你現(xiàn)在想要實(shí)現(xiàn)的是同級單詞在a文件和b文件...中各出現(xiàn)的次數(shù).
假設(shè)有兩個(gè)文件a.txtb.txt.
a文件里面的數(shù)據(jù)是{tom jack tom jack rose tom}
b文件里面的數(shù)據(jù)是{google apple tom google rose}
把編號換成了文件名.
map的輸出就是這樣<tom:a.txt,1> <jack:a.txt,1> <tom:a.txt,1><jack:a.txt,1> <rose:a.txt,1>

           <google:b.txt,1><apple:b.txt,1><tom:b.txt,1>....

這樣的數(shù)據(jù)給到reducer,reducer統(tǒng)計(jì)不了.因?yàn)閗ey不相同.key有的是<tom:a.txt,1><tom:b.txt,1>.
為了解決這個(gè)問題,map輸入的內(nèi)容不要直接到reducer中,中間加一層combiner來處理匯總數(shù)據(jù)
combiner接收<tom:a.txt,1><tom:b.txt,1>
combiner把key做一下切割 .切割成<tom, a.txt:1 ><tom , b.txt:2> ,這樣key相同了.就可以統(tǒng)計(jì)了
下面把代碼貼上 注[我用的是文件的名稱,不是文件里的開頭編號,要用的話還得把文件名換成編號,這樣做有寫問題,你可以下去試一試.我找到解決辦法在補(bǔ)充.]
mapper類

public class WCMapper extends Mapper<LongWritable,Text,Text,Text>{

    Text text = new Text();
    Text val = new Text( "1" );

    protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {

        String line = value.toString();
        String [] strings = line.split( " " ); //根據(jù)空格切割

        FileSplit fileSplit = (FileSplit) context.getInputSplit();// 得到這行數(shù)據(jù)所在的文件切片
        String fileName = fileSplit.getPath().getName();// 根據(jù)文件切片得到文件名

        for (String s : strings){
            text.set(s + ":" + fileName);
            context.write(text,val);
        }
    }
}

combiner類

public class WCCombiner extends Reducer<Text,Text,Text,Text> {
    Text text = new Text( );
    @Override
    protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {

        //map傳進(jìn)來的是 <apple:2 , 1> <google:2 ,1>

        int sum = 0; //統(tǒng)計(jì)詞頻
        for (Text val : values){
            sum += Integer.parseInt(val.toString());
        }

        //切割key
        int index = key.toString().indexOf( ":" );
        text.set(key.toString().substring( index + 1 ) + ":" + sum); // value ---> 2:1
        key.set( key.toString().substring( 0,index )); // key --> apple
        context.write( key,text );
    }
}

reducer類:

public class WCReduce  extends Reducer<Text,Text,Text,Text>{


    Text result = new Text(  );
    protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {

        String file = new String();

        for (Text t : values){
            file += t.toString();
        }

        result.set( file );

        context.write( key,result);
    }
}

注[本地鏈接的linux環(huán)境hadoop] ,要在本機(jī)的/etc/hosts文件中添加 export HADOOP_USER_NAME=hdfs
a.txt和b.txt都是單詞,以空格分割,你可以做假數(shù)據(jù)測試一下.
這是測試結(jié)果.

clipboard.png

熊出沒 回答

1.cd到redis文件夾,找到redis.conf
2.把daemonize設(shè)置為yes
3.輸入./redis-server ../redis.conf 這個(gè)路徑不確定根據(jù)個(gè)人的實(shí)際安裝情況而定,反正就是找到redis-server的路徑 以redis.conf的路徑啟動(dòng)

筱饞貓 回答

最后解決:提取URL作為標(biāo)識文件夾.同樣的套圖,url前綴是一樣的,用URL名稱作為前綴即可

帥到炸 回答

說一個(gè)簡單的辦法:在公司內(nèi)部注冊一個(gè)域名,搭一個(gè) http 服務(wù),數(shù)據(jù)存在是 mysql 數(shù)據(jù)庫里。每個(gè)項(xiàng)目實(shí)例定期將統(tǒng)計(jì)信息匯報(bào)到這個(gè) http 服務(wù)。再寫一個(gè)查詢頁面,從 mysql 里查出數(shù)據(jù)并展示。

乖乖瀦 回答

鏈表替換 node->newnode->node.pnext.pnext 把node.pnext 替換為newnode

原來是 ...->node->node.pnext->node.pnext.pnext->... 以下前后省略
第一句話 newnode.pnext = node.pnext.pnext
變成 ...->node->node.pnext->node.pnext.pnext->...和 newnode.pnext->node.pnext.pnext->...
第二句話 node.pnext = newnode
變成 ...->node->newnode->node.pnext.pnext->... 和 node.pnext->node.pnext.pnext->...
所以self.head是前面的鏈表,后面的鏈表被斷開了,完成了替換的目的

貓館 回答

損失函數(shù)的選取,取決于你的模型
舉個(gè)例子,例如最常用的binary_crossentropy

    import theano.tensor as T
    cost = T.sum(-(real*T.log(outputs) + (1-real)*T.log(1-outputs)))

其中real是預(yù)設(shè)輸出對應(yīng)你的(1,0,0,1,0),outputs是實(shí)際輸出對應(yīng)你的(1,0,0,0,0)的轉(zhuǎn)置

凹凸曼 回答

Leaflet就可以做到,

  1. 在地圖上實(shí)現(xiàn)搜索框可以通過popup的方式自己開發(fā)
  2. 至于經(jīng)緯度的功能,也得在Leaflet基礎(chǔ)上自己開發(fā)
  3. Leaflet有l(wèi)ogo,但是可以隱藏。

你說的都是可以做到的,但是沒有現(xiàn)成的產(chǎn)品