小编sop*_*ros的帖子

合并字典时出现类型错误:| 不支持的操作数类型:“dict”和“dict”

我想使用运算符连接两个字典|,但出现以下错误:

TypeError: unsupported operand type(s) for |: 'dict' and 'dict'
Run Code Online (Sandbox Code Playgroud)

MWE代码如下:

d1 = {'k': 1, 'l': 2, 'm':4}
d2 = {'g': 3, 'm': 7}

e = d1 | d2
Run Code Online (Sandbox Code Playgroud)

python dictionary typeerror python-3.x python-3.8

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

Julia:函数类型和性能

Julia 有没有办法概括如下所示的模式?

function compute_sum(xs::Vector{Float64})
    res = 0
    for i in 1:length(xs)
        res += sqrt(xs[i])
    end
    res
end
Run Code Online (Sandbox Code Playgroud)

这将计算每个向量元素的平方根,然后对所有内容求和。它比具有数组理解或的“天真”版本快得多map,并且也不分配额外的内存:

xs = rand(1000)

julia> @time compute_sum(xs)
  0.000004 seconds
676.8372556762225

julia> @time sum([sqrt(x) for x in xs])
  0.000013 seconds (3 allocations: 7.969 KiB)
676.837255676223

julia> @time sum(map(sqrt, xs))
  0.000013 seconds (3 allocations: 7.969 KiB)
676.837255676223
Run Code Online (Sandbox Code Playgroud)

不幸的是,“明显的”通用版本的性能很差:

function compute_sum2(xs::Vector{Float64}, fn::Function)
    res = 0
    for i in 1:length(xs)
        res += fn(xs[i])
    end
    res
end

julia> @time compute_sum2(xs, x -> sqrt(x))
  0.013537 seconds (19.34 …
Run Code Online (Sandbox Code Playgroud)

performance julia

9
推荐指数
2
解决办法
142
查看次数

使用 NLP 进行地址分割

我目前正在开发一个项目,该项目应识别地址的每个部分,例如“str. Jack London 121, Corvallis, ARAD, ap. 1603, 973130”,输出应如下所示:

street name: Jack London; 
no: 121; city: Corvallis; 
state: ARAD; 
apartment: 1603; 
zip code: 973130
Run Code Online (Sandbox Code Playgroud)

问题是并非所有输入数据都采用相同的格式,因此某些元素可能会丢失或顺序不同,但它保证是一个地址。

我在互联网上检查了一些资源,但其中很多仅适用于美国地址 - 例如 Google API Places,问题是我将把它用于另一个国家。

正则表达式不是一个选项,因为地址可能变化太大。

我还考虑过 NLP 使用命名实体识别模型,但我不确定这是否可行。

你知道什么是一个好的开始方式,也许可以帮助我一些建议吗?

python nlp named-entity-recognition street-address

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

Julia的数据库抽象

许多语言提供数据库抽象以将数据(对象)保存到关系数据库(通常通过对象关系映射(ORM)).

我知道Julia不是一种"传统的"面向对象语言(参见julia:OOP与否)

但我想知道是否存在具有以下功能的库?

database orm julia

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

Julia 包在第一次运行时加载速度非常慢

我在 Linux 5.4.0 下使用 Julia 1.5.2 并等待了大约 15 分钟的Pkg.add("DifferentialEquations"). 然后我在 Jupyter Notebook 中启动内核并运行以下代码。执行需要 1 分钟(实际上我第一次执行此操作需要 225 秒)。

t = time()
using Printf
using BenchmarkTools
using OrdinaryDiffEq
using Plots
tt = time() - t
@sprintf("It took %f seconds to import Printf, BenchmarkTools, OrdinaryDiffEq and Plots.", tt)
# It took 58.545894 seconds to import Printf, BenchmarkTools, OrdinaryDiffEq and Plots.
Run Code Online (Sandbox Code Playgroud)

最后,我做了和上面一样的,但是对于每个包。这是摘要:

Printf:           0.004755973815917969
BenchmarkTools:   0.06729602813720703
Plots:            19.99405598640442
OrdinaryDiffEq:   19.001102209091187
Run Code Online (Sandbox Code Playgroud)

我从知道这里Pkg在过去慢,但我认为有15分钟不是在所有正常的安装时间。不过,这不是我的大问题。

我知道 Julia 需要在每次启动内核或加载某个包时编译所有内容。但这显然不是编译时间,而是编译永恒。

谁能弄清楚为什么这会如此缓慢?而且,如果这是正常的,那岂不是更好地提供预编译软件包Pkg,如numpy …

performance package julia

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

ModuleNotFoundError:没有名为“numpy.testing.decorators”的模块

我真的需要一些帮助,因为我已经浏览了所有帖子,但没有任何效果。导入gensim而不是 numpy时出现此错误(numpy 是之前的并且工作正常)。我想做的就是导入 gensim 和 numpy 然后运行我的分析。

这是完整的错误消息:

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-2-3f0b98039a34> in <module>()
      1 # pip install --user numpy==1.16.4
      2 
----> 3 import gensim
      4 #import numpy
      5 

~/.local/lib64/python3.6/site-packages/gensim/__init__.py in <module>()
      9 import logging
     10 
---> 11 from gensim import parsing, corpora, matutils, interfaces, models, similarities, utils  # noqa:F401
     12 
     13 

~/.local/lib64/python3.6/site-packages/gensim/corpora/__init__.py in <module>()
      4 
      5 # bring corpus classes directly into package namespace, to save some typing
----> 6 from .indexedcorpus import …
Run Code Online (Sandbox Code Playgroud)

python installation numpy gensim python-3.6

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

Git:有没有一种快速方法可以看到git merge master最后一次在当前工作分支上完成的时间是什么时候?

我经常在一个与主人分道扬的分支上工作.所以在我开发的时候,我git merge master偶尔会表演一次.有时我想知道最后一次,我git merge master在那个分支上做了什么.我知道我可以做git log并找"合并分支'大师'",并查看提交的日期...但如果有魔法,我想知道!

git merge git-merge

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

如何跳过 Airflow 上的任务?

我想了解 Airflow 是否支持跳过 DAG 中的任务以进行临时执行?

假设我的 DAG 图如下所示:task1 > task2 > task3 > task4

我想从 task3 手动启动我的 DAG,这样做的最佳方法是什么?

我已经阅读了关于ShortCircuitOperator,但我正在寻找更多的临时解决方案,一旦触发执行就可以应用。

谢谢!

directed-acyclic-graphs airflow airflow-scheduler

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

Pandas dataframe:每批行的操作

我有一个 pandas DataFrame df,我想为其计算每批行的一些统计信息。

例如,假设我有一个batch_size = 200000.

对于每批batch_size行,我希望获得IDDataFrame 列的唯一值的数量。

我怎样才能做这样的事情呢?

这是我想要的一个例子:

print(df)

>>
+-------+
|     ID|
+-------+
|      1|
|      1|
|      2|
|      2|
|      2|
|      3|
|      3|
|      3|
|      3|
+-------+

batch_size = 3

my_new_function(df,batch_size)

>>
For batch 1 (0 to 2) :
2 unique values 
1 appears 2 times
2 appears 1 time

For batch 2 (3 to 5) : 
2 unique values 
2 appears 2 times …
Run Code Online (Sandbox Code Playgroud)

python performance batch-processing pandas

7
推荐指数
2
解决办法
2万
查看次数

斯坦福在 python 中使用 coreNLP 键入依赖项

斯坦福依赖手册中,他们提到了“斯坦福类型依赖”,特别是“neg”类型 - 否定修饰符。当使用网站使用斯坦福增强++解析器时,它也可用。例如,句子:

“巴拉克奥巴马不是出生在夏威夷”

在此处输入图片说明

解析器确实找到了 neg(born,not)

但是当我使用stanfordnlppython 库时,我能得到的唯一依赖解析器将解析句子如下:

('Barack', '5', 'nsubj:pass')

('Obama', '1', 'flat')

('was', '5', 'aux:pass')

('not', '5', 'advmod')

('born', '0', 'root')

('in', '7', 'case')

('Hawaii', '5', 'obl')
Run Code Online (Sandbox Code Playgroud)

以及生成它的代码:

import stanfordnlp
stanfordnlp.download('en')  
nlp = stanfordnlp.Pipeline()
doc = nlp("Barack Obama was not born in Hawaii")
a  = doc.sentences[0]
a.print_dependencies()
Run Code Online (Sandbox Code Playgroud)

有没有办法获得与增强型依赖解析器或任何其他导致类型化依赖的斯坦福解析器类似的结果,这会给我否定修饰符?

python parsing nlp stanford-nlp

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