我对词向量的工作原理感到非常困惑,特别是关于 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。我只是想知道我的方法是否可以,但我对此感到有点困惑。
我在 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 或我的机器有关吗?任何帮助将非常感激。
我必须处理数十万条文本。我发现以下内容中花费时间最长的事情:
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)
当然,我有很多模式。但有没有办法加快速度呢?我只有实体尺管,没有其他。
假设我有一个数据框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) 我知道这个问题已经被问了很多次,但我尝试了一些建议,但仍然收到此错误。
我按如下方式运行 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
.
我正在尝试将数据框中的数据插入到 Hive 表中。我已经能够成功地使用
df.write.insertInto("db1.table1", overwrite = True)
.
我只是对这个overwrite = True
部分有点困惑——我尝试多次运行它,它似乎是附加的,而不是覆盖的。文档中没有太多内容,但是我什么时候应该将覆盖设置为False
vs. True
?