小编Din*_*ero的帖子

在Java中维护唯一数组的ArrayList

如何维护ArrayList唯一数组?

例如,如果我有以下数组:

int [] a = {1,2,3};
int [] b = {2,1,3};
int [] c = {2,1,3};
Run Code Online (Sandbox Code Playgroud)

根据我的逻辑,我正在考虑独特的组合。因此,在上述情况下a = b = c,因为它们都含有"1""2""3"

理想情况下,我想知道Java中是否有可以识别这一点的数据结构。

我尝试了以下方法:

Set<int []> result = new LinkedHashSet<>();
int [] x = {1,2,3};
int [] z = {2,1,3};
int [] m = {2,1,3};

result.add(x);
result.add(z);
result.add(m);

for(int [] arr: result){
    printArray(arr);
}
Run Code Online (Sandbox Code Playgroud)

我的输出是:

1 2 3
2 1 3
2 1 3
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望我的输出仅打印上述组合之一。

java arraylist

16
推荐指数
2
解决办法
309
查看次数

使用word2vec对类别中的单词进行分类

背景

我有一些带有一些样本数据的向量,每个向量都有一个类别名称(地点,颜色,名称).

['john','jay','dan','nathan','bob']  -> 'Names'
['yellow', 'red','green'] -> 'Colors'
['tokyo','bejing','washington','mumbai'] -> 'Places'
Run Code Online (Sandbox Code Playgroud)

我的目标是训练一个模型,该模型采用新的输入字符串并预测它属于哪个类别.例如,如果新输入是"紫色",那么我应该能够将"颜色"预测为正确的类别.如果新输入是"卡尔加里",则应将"地点"预测为正确的类别.

APPROACH

我做了一些研究,遇到了Word2vec.该库具有我可以使用的"相似性"和"最相似性"功能.所以我想到的一种蛮力方法如下:

  1. 接受新的投入.
  2. 计算它与每个向量中每个单词的相似度并取平均值.

因此,例如对于输入"粉红色",我可以计算其与向量"名称"中的单词的相似性取平均值,然后对其他2个向量也执行此操作.给出最高相似度平均值的向量将是输入所属的正确向量.

问题

鉴于我在NLP和机器学习方面的知识有限,我不确定这是否是最好的方法,因此我正在寻找有关解决问题的更好方法的帮助和建议.我对所有建议持开放态度,并请指出我可能因为我是机器学习和NLP世界的新手而犯的任何错误.

python nlp machine-learning gensim word2vec

13
推荐指数
1
解决办法
5026
查看次数

在 JavaScript 中使用元组作为字典中的键

在 python 中,我有一个随机字典,其中我使用元组作为键,每个元组都映射到某个值。

样本

Random_Dict = {
    (4, 2): 1,
    (2, 1): 3,
    (2, 0): 7,
    (1, 0): 8
}
Run Code Online (Sandbox Code Playgroud)

上面的示例键:(4,2) 值:1

我正在尝试在 Javascript 世界中复制这个

这就是我想出的

const randomKeys = [[4, 2], [2, 1], [2, 0], [1, 0] ]

const randomMap = {}

randomMap[randomKeys[0]] = 1
randomMap[randomKeys[1]] = 3
randomMap[randomKeys[2]] = 7
randomMap[randomKeys[3]] = 8
randomMap[[1, 2]] = 3
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是最有效的方法。我几乎想知道我是否应该做一些事情,比如在一个变量中保存两个数字,这样我就可以在 JS 中拥有一个映射 1:1 的字典。寻找更好的建议和解决方案

javascript python

8
推荐指数
1
解决办法
3043
查看次数

使用递归打印长度X的所有组合

给定数组[1,2,3]或[1,2,3,4],请打印长度为3的所有唯一组合。

public class PrintCombo {

    public void printCombo(int [] a, int [] buffer, int startIndex, int bufferIndex){

        printArray(buffer);

        if(buffer.length == bufferIndex){
            System.out.println();
            System.out.println("SOLUTION START");
            printArray(buffer);
            System.out.println("SOLUTION END");
            System.out.println();
            return;
        }
        if(startIndex == a.length){
            return;
        }

        for(int i = startIndex; i<a.length; i++){
            buffer[bufferIndex] = a[i];
            printCombo(a,buffer,i+1,bufferIndex+1);
        }
    }

    public void printArray(int [] buffer){
        for(int i = 0; i<buffer.length; i++){
            System.out.print(" "+buffer[i]);
        }
        System.out.println();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出值

对于数组[1,2,3] ==> 1,2,3

对于数组[1,2,3,4] ==> 1,2,3 || 1,2,4 || 1,3,4 || 2,3,4

问题 …

java recursion combinations

5
推荐指数
1
解决办法
141
查看次数

在javascript中循环遍历缓冲区

背景

我试图迭代一个基本上包含十六进制值的缓冲区对象。这对我来说是完美的,因为每个十六进制值都是我需要解码的。但是,当我循环遍历数组时,它们会转换为十进制值。如何在不转换值的情况下循环它?

我的代码

  console.log(encoded)
  const buf = Buffer.from(encoded)
  for (const item of buf) {
    console.log(item)
  }
Run Code Online (Sandbox Code Playgroud)

我的一些输出

<Buffer 0c 00 00 00 99 4e 98 3a f0 9d 09 3b 00 00 00 00 68 48 12 3c f0 77 1f 4a 6c 6c 0a 4a 0f 32 5f 31 31 39 38 36 31 5f 31 33 33 39 33 39 40 fc 11 00 09 00 ... 336 more bytes>
12
0
0
0
153
78
152
58 …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

4
推荐指数
2
解决办法
8815
查看次数

凌晨 4 点和下午 4 点运行 cron

以下 cron 表达式cron(0 14 ? * MON-FRI *)基本上在周一到周五下午 4:00 运行。

我想知道是否可以修改表达式,以便我可以在每周一至周五的凌晨 4:00 和下午 4:00 运行某些内容。

unix linux cron

3
推荐指数
1
解决办法
7847
查看次数

从 lambda 向 sns 主题发布消息

我有一个 lambda 函数,它通过 AWS lambda 函数处理 POST 请求。它处理 post 请求的正文并进行查询并返回响应。

我的 Lambda 函数

const { Pool, Client } = require("pg");
const userName = 'blah';
const hostEndPoint = 'blah';
const databaseType = 'blahblah';
const pwd = 'pass pass';
const portNumber = 5432;
var AWS = require('aws-sdk');

const pool = new Pool({
  user: userName,
  host: hostEndPoint,
  database: databaseType,
  password: pwd,
  port: portNumber
});


exports.handler = async (event) => {
  let body = JSON.parse(event.body);
  let name = body.name;
  let money = body.money;
  let …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js amazon-sns aws-lambda

2
推荐指数
1
解决办法
5577
查看次数

Download Entire Content of a subfolder in a S3 bucket

I have a bucket in s3 called "sample-data". Inside the Bucket I have folders labelled "A" to "Z".

Inside each alphabetical folder there are more files and folders. What is the fastest way to download the alphabetical folder and all it's content?

For example --> sample-data/a/foo.txt,more_files/foo1.txt

In the above example the bucket sample-data contains an folder called a which contains foo.txt and a folder called more_files which contains foo1.txt

I know how to download a single file. For instance if …

python amazon-s3 amazon-web-services python-3.x boto3

2
推荐指数
1
解决办法
2763
查看次数

确保即使子脚本退出,父bash脚本也不会退出

我有两个 shell 脚本,一个是父脚本,另一个是子脚本。

父脚本的代码

#!/bin/bash
set -euo pipefail

bash /home/ubuntu/test/deploy.sh

echo "I can still do this"
Run Code Online (Sandbox Code Playgroud)

子脚本代码

python -c \
"""
from db_wrapper import db
import sys

query_string = \
'select * from pipeline_release_status \
where release_deployed_at is null' 

release_status = db.run_query(db.get_environment(), query_string)

if not release_status:
    sys.exit(1)
"""

if [ $? -eq 1 ]
then
    echo "No release to deploy"
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)

不管子脚本是否退出,我都不希望父脚本退出,所以我总是希望echo "i can still do this"语句总是被执行。但是在我的情况下,如果子脚本退出,那么父脚本也会退出。

我该如何防止?

bash

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

尝试请求页面时读取超时

我正在尝试抓取网站,有时会收到此错误,这令人担忧,因为我随机收到此错误,但在重试后,我没有收到此错误。

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.somewebsite.com', port=443): Read timed out. (read timeout=None)
Run Code Online (Sandbox Code Playgroud)

我的代码如下所示

from bs4 import BeautifulSoup
from random_user_agent.user_agent import UserAgent
from random_user_agent.params import SoftwareName, OperatingSystem
import requests

software_names = [SoftwareName.CHROME.value]
operating_systems = [OperatingSystem.WINDOWS.value, OperatingSystem.LINUX.value]
user_agent_rotator = UserAgent(software_names=software_names, operating_systems=operating_systems, limit=100)
pages_to_scrape = ['https://www.somewebsite1.com/page', 'https://www.somewebsite2.com/page242']

for page in pages_to_scrape:
  time.sleep(2)
  page = requests.get(page, headers={'User-Agent':user_agent_rotator.get_random_user_agent()})
  soup = BeautifulSoup(page.content, "html.parser")
  # scrape info 
Run Code Online (Sandbox Code Playgroud)

正如您从我的代码中看到的,我什至使用 Time 使我的脚本休眠几秒钟,然后再请求另一个页面。我还使用随机的 user_agent。我不确定是否可以做任何其他事情来确保我永远不会收到“读取超时”错误。

我也遇到过这个,但他们似乎建议向标题添加额外的值,但我不确定这是否是一个通用的解决方案,因为这可能必须根据网站的具体情况而定。我还在另一篇SO Post上读到,我们应该对请求进行 Base64 处理并重试。这让我很困惑,因为我不知道该怎么做,而且这个人也没有提供例子。

任何有刮擦经验的人的建议将不胜感激。

python beautifulsoup web-scraping python-requests

0
推荐指数
1
解决办法
2788
查看次数

尝试使用 jq 分配多个变量

我有一个名为$db_main_info包含以下字符串的变量

 { "host": "env-prod-blah-db.blah.us-east-1.rds.amazonaws.com", "dbname": "blahblah", "user": "foobar", "password": "foopassfoopass" }
Run Code Online (Sandbox Code Playgroud)

我正在做以下事情

read host dbname user password < <(echo $db_main_info | jq -r '.host, .dbname, .user, .password')
Run Code Online (Sandbox Code Playgroud)

执行上述语句后,当我这样做时,echo $host它会打印以下内容

env-prod-blah-db.blah.us-east-1.rds.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

dbname然而,其他 3 个变量user永远password不会被设置。我不确定我做错了什么?

我希望变量dbname取值blahblah,变量 user 取值foobar,变量password取值foopassfoopass

bash shell

0
推荐指数
1
解决办法
724
查看次数