Jupyter Notebook 中的模块“spacy.util”没有属性“filter_spans”

Gra*_*eer 1 python nlp spacy jupyter-notebook

我有 spacy 版本 2.2.4(也尝试过 2.1.4)。

import spacy
...
result = spacy.util.filter_spans(spans)
Run Code Online (Sandbox Code Playgroud)

错误:模块“spacy.util”没有属性“filter_spans”

我正在从虚拟环境运行 jupyter 笔记本,并在其中安装了 spacy。该文档表示应包含过滤器跨度: https: //spacy.io/api/top-level#util.filter_spans

上下文:尝试从https://towardsdatascience.com/auto- generated-knowledge-graphs-92ca99a81121 重现代码

感谢任何帮助。

Gra*_*eer 6

自己定义函数并使用它:

def filter_spans(spans):
    # Filter a sequence of spans so they don't contain overlaps
    # For spaCy 2.1.4+: this function is available as spacy.util.filter_spans()
    get_sort_key = lambda span: (span.end - span.start, -span.start)
    sorted_spans = sorted(spans, key=get_sort_key, reverse=True)
    result = []
    seen_tokens = set()
    for span in sorted_spans:
        # Check for end - 1 here because boundaries are inclusive
        if span.start not in seen_tokens and span.end - 1 not in seen_tokens:
            result.append(span)
        seen_tokens.update(range(span.start, span.end))
    result = sorted(result, key=lambda span: span.start)
    return result
Run Code Online (Sandbox Code Playgroud)