小编for*_*man的帖子

spacy 实体链接 - 词向量

我对词向量的工作原理感到非常困惑,特别是关于 spacy 的实体链接(https://spacy.io/usage/training#entity-linker)。

将实体添加到知识库时,参数之一是entity_vector。你怎么得到这个?我试过做

nlp = spacy.load('en_core_web_sm')
kb = KnowledgeBase(vocab = nlp.vocab, entity_vector_length = 96)
for n in m_yentities:
    kb.add_entity(entity = n, freq = ___, entity_vector = **nlp(n).vector**)
Run Code Online (Sandbox Code Playgroud)

** 代码给了我长度为 96 的向量,所以这就是我使用的entity_vector_length,尽管在示例中他们使用 3。我只是想知道我的方法是否可以,但我对此感到有点困惑。

python-3.x spacy entity-linking

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

Python/Jupyter MemoryError:无法分配具有形状的数组

我在 Windows 上。我有一个包含约 8700 万行(10-12 列)的 CSV。我正在使用 Jupyter 笔记本,并且可以使用 Pandas 成功读取它。我还有另一个大约 100K 行的 csv,可以读取它。当我尝试(左外)加入这两个时会出现问题。我总是最终得到一个错误

MemoryError: Unable to allocate __ GiB for array with shape (__,__) and data type ___. 
Run Code Online (Sandbox Code Playgroud)

我尝试删除不必要的列并将 Pandas 数据帧转换为重新排列并以这种方式加入它们 - 没有奏效。我还尝试尽可能小地更改这些 recarray 中列的数据类型 - 也没有帮助。错误中的 __ GiB 也发生了变化——我见过 1.5、3、12……我有 18.4 GB 的“所有驱动器的总页面文件大小”并且无法更改此设置。我还有 77.3 GB 可用的本地存储空间,所以我认为这不是问题所在。

我看到了另一个答案,他们更改了过量使用内存,但它是针对 Linux 的。这是 Windows 上的可能解决方案吗?这似乎与 Jupyter 或我的机器有关吗?任何帮助将非常感激。

python memory windows pandas jupyter-notebook

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

如何加快Spacy的nlp调用速度?

我必须处理数十万条文本。我发现以下内容中花费时间最长的事情:

nlp = English()
ruler = EntityRuler(nlp)
patterns = [...]
ruler.add_patterns(patterns)
nlp.add_pipe(ruler)
...
#This line takes longer than I would like
doc = nlp(whole_chat)
Run Code Online (Sandbox Code Playgroud)

当然,我有很多模式。但有没有办法加快速度呢?我只有实体尺管,没有其他。

python nlp spacy

5
推荐指数
2
解决办法
5814
查看次数

熊猫爆炸 - 无法从重复轴重新索引

假设我有一个数据框df

   C1      C2      C3      C4               C5
0  [A]     [1]     s1      [123]            t1  
1  [A]     [1]     s2      321              t2
2  [A,B]   [1,2]   s3      [777,111]        t3
3  [B]     [2]     s4      145              t4
4  [B]     [2]     s5      [990]            t5
5  [A,B,B] [1,2,2] s6      [124,125,765]    t6
6  [A,A]   [1,3]   s7      119              t7
Run Code Online (Sandbox Code Playgroud)

我想把一切都炸掉 所以我一直在做

df = df.apply(pd.Series.explode)

然而,这给了我ValueError: cannot reindex from a duplicate axis。我已将罪魁祸首追溯到 的第 6 行(最后一行)df。当我之前得到这个时,我明白了,当时我的内容C1与 中的内容长度不同C2。但我不明白爆炸最后一行有什么问题。

如果我这样做pd.DataFrame([[['A','B'],[1,2],'s7',119,'t7']]).apply(pd.Series.explode(),它会正常工作并按预期给出以下内容:

   C1      C2      C3 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

Java JAR:无法找到或加载主类

我知道这个问题已经被问了很多次,但我尝试了一些建议,但仍然收到此错误。

我按如下方式运行 jar:

java -jar MyJar-1.0.jar com.me.ldap.ActiveMain,

我的 ActiveMain.java 文件如下所示:

包 com.me.ldap;

public class ActiveMain {
    public static void main(String[] args) throws Exception {
    ...
    }
} 
Run Code Online (Sandbox Code Playgroud)

我也简单地尝试java -jar MyJar-1.0.jar过同样的Error: Could not find or load main class错误。我还研究了类路径选项,但我认为这不适用。

我在 Intellij 中将其创建为 Maven 项目。Maven> Lifecycle> package.

java program-entry-point jar

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

PySpark insertInto 覆盖

我正在尝试将数据框中的数据插入到 Hive 表中。我已经能够成功地使用 df.write.insertInto("db1.table1", overwrite = True).

我只是对这个overwrite = True部分有点困惑——我尝试多次运行它,它似乎是附加的,而不是覆盖的。文档中没有太多内容,但是我什么时候应该将覆盖设置为Falsevs. True

python hive apache-spark pyspark

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