小编Gre*_*dot的帖子

对于这个Java应用程序来说,"Thread of Threads"是一个糟糕的解决方案吗?

我正在运行一个程序,我下载大文件,解析它们然后将我从文件中提取的数据写入另一个文件.

这些文件需要很长时间才能下载和解析,但写入任务平均只需要一分钟左右.我把它放在一起的解决方案是有三个三线程的fixedthreadpool.

ExecutorService downloadExecutor = Executors.newFixedThreadPool(3);
ExecutorService parseExecutor = Executors.newFixedThreadPool(3);
ExecutorService writeExecutor = Executors.newFixedThreadPool(3);
Run Code Online (Sandbox Code Playgroud)

下载池中的线程下载该文件,然后将新线程提交给解析器线程池,文件名作为参数.这是在线程本身内完成的.然后,下载线程将从文件URL列表中下载另一个文件.

一旦解析器线程完成了从文件中解析我想要的数据,它就会将包含数据的新线程提交给写线程池,然后将其写入.csv文件.

我的问题是,如果有一个更优雅的解决方案.我没有真正做过复杂的线程.由于我有很多文件要下载和解析,我不希望任何线程在任何时候都处于空闲状态.再次提出的想法是,由于解析文件可能需要一段时间,因此我不妨制作单独的线程,专门用于下载这些文件.

java file-io multithreading

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

如何使用scikit准确地对具有大量潜在价值的文本进行分类?

我想在文本段落的语料库中找到各种列入黑名单的术语.每个术语长约1-5个字,并包含我在文档语料库中不需要的某些关键字.如果在语料库中识别出与其类似的术语或类似内容,我希望将其从我的语料库中删除.

除了删除,我正在努力准确地识别我的语料库中的这些术语.我正在使用scikit-learn并尝试了两种单独的方法:

  1. 使用tf-idf向量特征的MultinomialNB分类方法,混合使用黑名单术语和用作训练数据的干净术语.

  2. OneClassSVM方法仅将列入黑名单的关键字用作训练数据,并且传入的任何文本似乎与列入黑名单的术语不相似,都被视为异常值.

这是我的OnceClassSVm方法的代码:

df = pd.read_csv("keyword_training_blacklist.csv")

keywords_list = df['Keyword']

pipeline = Pipeline([
    ('vect', CountVectorizer(analyzer='char_wb', max_df=0.75, min_df=1, ngram_range=(1, 5))),
    # strings to token integer counts
    ('tfidf', TfidfTransformer(use_idf=False, norm='l2')),  # integer counts to weighted TF-IDF scores
    ('clf', OneClassSVM(nu=0.1, kernel="rbf", gamma=0.1)),  # train on TF-IDF vectors w/ Naive Bayes classifier
])

kf = KFold(len(keywords_list), 8)
for train_index, test_index in kf:
    # make training and testing datasets
    X_train, X_test = keywords_list[train_index], keywords_list[test_index]

    pipeline.fit(X_train)  # Train classifier using training data and labels
    predicted …
Run Code Online (Sandbox Code Playgroud)

python machine-learning

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

在Elastic Beanstalk中运行cron作业

所以我在Django Elastic Beanstalk应用程序中有一个功能如下:

  • 下载文件
  • 解析文件,使用文件中的数据运行对API的一些调用
  • 使用新数据更新EB实例的数据库

在我刚刚设置本地cron作业的测试实例中.我刚刚调用wget了我的Django应用程序的特定URL,它将运行该命令.

我的问题是如何在多实例Elastic Beanstalk应用程序中处理这个问题.我的EB应用程序只有一个实例应该运行此命令.我想避免数据库上的竞争条件和多个实例对外部API的冗余调用.即只有一个实例应该写入数据库.

然而,谷歌搜索显示设置cron工作是很尴尬的,特别是如果你像我这样的新EB.最有希望的声音方法似乎是cron.yaml方法,但似乎没有一个例子,我可以看到在网络上的任何地方设置一个cron工作者环境.

我的理解是:

  • 您在EB项目的根目录中包含cron.yaml文件.
  • 部署项目
  • cron作业会自动在工作环境中设置(?).
  • 您定义的命令在指定的时间运行.

我的问题是你如何确保只有一个实例将运行此命令?我是否有正确的想法,如何cron.yaml工作或有什么我想念的东西

python django cron amazon-web-services amazon-elastic-beanstalk

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

获取 Pandas 中 groupby 操作的大小

我一直在对数据框执行 groupby 操作,该数据框根据“名称”列将列聚合在一起:

Name | As | Bs | Cs   |  Note
Mark   3     4     7     Good
Luke   2     1     12    Well
Mark   5     6     8     Ok
John   1     18    3     Great
Run Code Online (Sandbox Code Playgroud)

因此,在本例中,带有“Mark”的行使用以下代码在 A、B 和 C 列上聚合在一起:

temp_df = temp_df.groupby(['Name'], as_index=False).agg({'As': np.sum, 'Bs': np.sum,'Cs': np.sum})
Run Code Online (Sandbox Code Playgroud)

我需要添加的一件事是对“名称”中具有相同值的行数进行计数。这会给我一个类似的输出:

Name | As | Bs | Cs   |  Note   | Count
Mark   8     10    15    Good      2
Luke   2     1     12    Well      1
John   1     18    3     Great     1
Run Code Online (Sandbox Code Playgroud)

如何修改上面的代码行以满足我的需要?

python pandas

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

Elastic Beanstalk 中的 enum34 问题

我正在尝试在 Elastic Beanstalk 中设置 django 环境。当我尝试通过 requirements.txt 文件进行安装时,我遇到了 python3.6 问题。

File "/opt/python/run/venv/bin/pip", line 4, in <module>
  import re
File "/opt/python/run/venv/lib64/python3.6/re.py", line 142, in <module>
  class RegexFlag(enum.IntFlag):
 AttributeError: module 'enum' has no attribute 'IntFlag'
Run Code Online (Sandbox Code Playgroud)

当这是一个问题时,我无法正确设置我的环境。一些搜索将enum34模块确定为问题的原因,但是当我尝试通过 ssh 进入我的 EB 环境并使用以下方法将其删除时:

/opt/python/run/venv/bin/pip3 uninstall enum34
Run Code Online (Sandbox Code Playgroud)

我得到同样的错误,表明 venv 以某种方式损坏。我该如何解决这个问题?以下是我传入环境中的扩展文件以供参考:

django.config:

    option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: yahoo_serp/wsgi.py
  aws:autoscaling:launchconfiguration:
    InstanceType: t2.large
packages:
    yum:
        libjpeg-turbo-devel: []
Run Code Online (Sandbox Code Playgroud)

db-migrate.config

container_commands:
  01_migrate:
    command: "./manage.py migrate"
    leader_only: true
option_settings:
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: yahoo_serp.settings
Run Code Online (Sandbox Code Playgroud)

python django pip amazon-web-services

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

使用Java中的另一个Arraylist循环遍历ArrayList

我有一个大型的句子列表和另一个单词列表.

我的程序循环遍历数组列表,如果句子包含来自另一个的任何单词,则从该数组列表中删除一个元素.

句子数组列表可能非常大,我编写了一个快速而脏的嵌套for循环.虽然这适用于没有多少句子的情况,但是在它们是的情况下,完成此操作所需的时间非常长.

for (int i = 0; i < SENTENCES.size(); i++) {

        for (int k = 0; k < WORDS.size(); k++) {

            if (SENTENCES.get(i).contains(" " + WORDS.get(k) + " ") == true) {

                //Do something
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

有没有更有效的方法来执行此操作然后嵌套for循环?

java arrays arraylist

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

删除 Django 模板中的引号

我有一个 Django 模板,如下所示:

 <div id="objects">
                <b>Ingredients:</b>
                <small>
                {% for obj in result.object.list_objects|slice:":10" %}
                    .{{ obj }}
                {% endfor %}
                ......
                </small>
              </div>
Run Code Online (Sandbox Code Playgroud)

我试图输出一个简单的列表,但是当我循环遍历模板中的这些元素时,不幸的是每个对象的输出都用单引号引起来。safe我是 Django 模板的新手,并尝试过使用和 等一些方法escape。但单引号仍然存在。Django 有没有办法在加载数据时去掉该特定字符?

python django django-templates

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

OpenSSL:字段名称缩写有问题吗?

我正在尝试为一位同事创建一个新的私钥和 CSR 文件,并提供一些详细信息:

C                      = US
S                      = Florida
L                      = XXXXX
O                      = Foo Inc.
OU                     = IT
Run Code Online (Sandbox Code Playgroud)

我阅读了有关使用 OpenSSL 生成密钥和 CSR 的内容,并使用命令正常创建它:

openssl req -new -nodes -keyout mydomain.key -out mydomain.csr -subj "/C=US/S=Florida/L=XXXXX/O=Foo Inc./OU=IT/CN="
Run Code Online (Sandbox Code Playgroud)

但这会返回一个错误:

Generating a 2048 bit RSA private key
..................+++
..+++
writing new private key to 'mydomain.key'
-----
req: Skipping unknown attribute "S"
problems making Certificate Request
139945692307904:error:0D06407A:asn1 encoding routines:a2d_ASN1_OBJECT:first num too large:../crypto/asn1/a_object.c:61:
139945692307904:error:0D07A098:asn1 encoding routines:ASN1_mbstring_ncopy:string too short:../crypto/asn1/a_mbstr.c:102:minsize=1
Run Code Online (Sandbox Code Playgroud)

我在这里遗漏了一些明显的东西吗?最初给了他一个正常生成的 CSR,没有 -subj 参数(使用 ubuntu 终端填写),但他说包含“ST”缩写导致他的 CA 拒绝。状态参数必须是“S”。我不经常使用 …

ssl openssl csr private-key

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

比较NS-3 C++中的两个double值时出现奇怪的数学错误

我正在使用NS-3(用c ++编写)来模拟网络环境.

我正在使用其flowmonitor类来记录来自无线链接的性能指标.

我收集的一件事是当前和之前的数据包延迟或"抖动"之间的时间差异.

为了得到这个,我将一个数据包延迟的时间值(转换为双变量)减去前一个值.

0.0159051 - 0.0158002 = 0.0001049

但是,过了一会儿,数学似乎很奇怪,例如:

0.0159003 - 0.0158007 = 9.95972e-05

当答案显然应该是0.0000996

为了进一步阐述,我最初使用diff函数来找到差异.

template <typename T1, typename T2>
double diff(const T1& lhs, const T2& rhs)
{
  std::cout << lhs << " - " << rhs << std::endl;
  return lhs - rhs;
}
Run Code Online (Sandbox Code Playgroud)

但是因为我发现了错误,我尝试了直接减法,但我得到了同样的错误.

c++ math ns-3

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