Spacy NLP 库:最大合理文档大小是多少

Spacy NLP library: what is maximum reasonable document size

以下问题是关于 Python 的 Spacy NLP 库,但如果其他库的答案有很大不同,我会感到惊讶。

Spacy 在合理的内存条件下(例如我的 4 GB VM)可以处理的最大文档大小是多少?我曾希望使用 Spacy 在书本大小的文档(100K+ 令牌)中搜索匹配项,但我一再遇到崩溃,导致内存耗尽。

我是 NLP 新手 - 我在学术上了解这些概念,但我真的不知道在实践中对最先进的图书馆有什么期望。所以我不知道我要求图书馆做的事情是太难了,还是太简单了以至于我在我的环境中搞砸了。

至于为什么我使用 NLP 库而不是专门针对文档搜索的库(例如 solr),我使用它是因为我想进行基于引理的匹配,而不是基于字符串的匹配.

Spacy 的 max_length 限制为 1,000,000 个字符。我能够很好地解析包含 450,000 个单词的文档。上限可以提高。我会根据总大小将文本分成 n 个块。

The v2.x parser and NER models require roughly 1GB of temporary memory per 100,000 characters in the input. This means long texts may cause memory allocation errors. If you're not using the parser or NER, it's probably safe to increase the nlp.max_length limit. The limit is in number of characters, so you can check whether your inputs are too long by checking len(text).

https://github.com/explosion/spaCy/blob/master/spacy/errors.py