问题标签 [spacy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - spacy 安装错误(运行 cythonize 失败)
所以我正在从源代码编译 spacy。我安装了 cython v23.4。当我pip install -e .
在spaCy
目录中运行时,我得到:`Obtaining file:///home/nitish/spaCy 命令 python setup.py egg_info 的完整输出:
`
我该如何纠正?
python - 避免在多处理时在每个子进程中加载 spaCy 数据
我想在当前通过多处理实现的程序中使用 spaCy。具体来说,我ProcessingPool
用来生成 4 个子进程,然后它们开始执行它们的快乐任务。
要使用 spaCy(专门用于 POS 标记),我需要调用spacy.load('en')
,这是一个昂贵的调用(大约需要 10 秒)。如果我要在每个子进程中加载这个对象,那么它将需要大约 40 秒,因为它们都是从同一个位置读取的。这是令人讨厌的长。
但我想不出一种方法让他们共享正在加载的对象。这个对象不能被腌制,这意味着(据我所知):
- 它不能传递给
Pool.map
调用 - 它不能被
Manager
实例存储和使用,然后在进程之间共享
我能做些什么?
python-2.7 - Rasa Nlu 测试:TypeError:对象泡菜未返回列表
我正在尝试从 Python 测试 rasa 并且出现错误,不知道我做错了什么。
这是我的 metadata.json 文件
这是我的 test.py 文件
这是错误的回溯
元数据文件有什么问题还是解释器有问题?
python - SpaCy:如何加载 Google 新闻 word2vec 向量?
我尝试了几种加载谷歌新闻 word2vec 向量的方法(https://code.google.com/archive/p/word2vec/):
以上给出:
我也尝试过使用 .gz 压缩向量;或者通过使用 gensim 加载并保存它们为新格式:
然后,该文件在每一行包含单词及其单词向量。我试图加载它们:
但它返回“0”。
这样做的正确方法是什么?
更新:
我可以将自己创建的文件加载到 spacy 中。我在每一行使用带有“string 0.0 0.0 ....”的 test.txt 文件。然后用 .bzip2 压缩这个 txt 到 test.txt.bz2。然后我创建一个 spacy 兼容的二进制文件:
我可以加载到 spacy 中:
这行得通!但是,当我对 googlenews2.txt 执行相同的过程时,我收到以下错误:
nlp - 通过 spacy 检测条件时态?
spacy 中是否有任何功能/属性可以在条件时态中发现标记?或者一些可能的绕道去那些?
python - Python英文解析器proto-spaCy 500行的输入格式
我正在寻求理解Matthew Honnibal 编写的A simple Python dependency parser并在他的博客文章Parsing English in 500 Lines of Python中进行了描述,但我不清楚所需输入文件的格式。
函数的参数main()
以及存储模型的目录是三个输入文件:
train_loc
是依赖解析句子的训练集heldout_in
是 POS 标记句子的保留测试集heldout_gold
是相同的保留句子依赖解析
train_loc
从阅读源代码来看,它似乎heldout_gold
是 CONLL 格式,尽管我不确定是哪一个。我也不确定 POS 标记文件的格式是什么heldout_in
。
我已经从 NLTK Corpora 页面下载了 Penn 树库数据集“Dependency Parsed Treebank”和“Penn Treebank Sample”,分别用于依赖解析和 POS 标记的输入,但是这些都没有被解析器接受为输入,从而产生元组解包错误.
我很高兴能够理解代码并将我下载的文件转换为解析器可以接受的格式,但我想知道这种格式是否广为人知以及是否已经有正确格式的文件可用。
python - 如何让 Spacy 正确标记 am/pm 表达式?
Spacy 似乎无法正确标记数字和 am/pm 部分未用空格分隔的 am/pm 表达式。
示例:“早上 9 点发生了某事”产生了一个意外的令牌集:令牌对象列表:[Something, occurred, at, LIKE_URL, am]
虽然“早上 9 点发生了什么事”工作得很好: 令牌对象列表:[某事,发生在,上午 9 点]
重现:
我注意到,如果您深入到 Token 对象,令牌的“orth”表示是 9。同样,如果我尝试“8am”,则令牌读取“IS_UPPER”并且令牌的“orth”表示是 8 .
特别是这对我来说是个问题,因为我需要在更广泛的上下文中跟踪令牌跨度,并且在文本中显示为“8”但令牌形式为“IS_UPPER”的令牌导致我的跨度偏离 7。( IE 下一个标记的实际文档级索引 (token.idx) 偏离 7)
如何处理包含有时以上述格式表示的 am/pm 表达式的 spacy 文档,并检索准确的令牌跨度?
我正在使用 Python 2.7.12 和 Spacy 1.4.0
named-entity-recognition - 多次调用 ner.update() 有什么不同吗?
我试图了解如何将实体类添加到命名实体识别器。示例代码具有如下结构:
,但是下一个示例(对于 BILUO 标签)ner.update()
只调用一次(即,没有导致update()
多次查看训练数据的 for 循环)。
我读过这个问题,他的回答似乎告诉我应该update()
为每个训练示例多次调用;但后来我也认为他们可能只是按照这些例子。
由于以下句子(来自文档页面的末尾)......
然后使用成本来计算损失的梯度,以训练模型。
......我猜我的问题的答案是“是的,我应该通过训练数据迭代'几次'来训练它”;但如果是这样的话,那么有没有人建议多少次“足够”?(示例代码使用 5,但如果我认为它太少了,我可以最终迭代“太多次”吗?即,它是否“过拟合”?)
python - SpaCy:为包含多个单词的地址(位置)添加标记器特殊情况
我想在 SpaCy 的帮助下从用户提供的不同句子中提取位置(例如,当用户输入“New York New Orleans”时,我会从中得到“New York”和“New Orleans”这两个位置)。由于 SpaCy 提供了向其标记器添加特殊情况的非常方便的可能性,因此我尝试将它们用于不同的位置(如此处的文档中所述)。只要位置只包含一个单词,一切正常。但是一旦位置包含两个或多个单词(如前面提到的“纽约”、“新奥尔良”等示例),特殊情况就不再正确处理。
我想这是因为特殊情况只在之后处理文本被分割成标记(文本被分割在每个空白处,如此处所述)。这将意味着 SpaCy 将文本拆分,例如“New York New Orleans”到标记“New”“York”“New”“Orleans”,然后无法匹配任何标记上的特殊情况。
所以,我的问题如下:有没有办法可以添加由两个单词组成的特殊情况,以便 SpaCy 正确标记它们?继续这个例子,“New York New Orleans”被认为是“New York”和“New Orleans”这两个位置——因为我确实为它们中的每一个添加了一个特殊情况。
或者是否有另一种最佳实践(我可能错过了)来实现这一目标?