Python 实体与spacy/Wikipedia链接

Python 实体与spacy/Wikipedia链接,python,spacy,entity-linking,Python,Spacy,Entity Linking,我试图在这里遵循以下示例:。但我只是对训练数据中的内容感到困惑。它是维基百科的全部吗?假设我只需要一些实体的培训数据。例如,E1、E2和E3。该示例是否允许我仅指定几个要消除歧义的实体?[UPDATE]注意,此代码库已移动到(spaCy v2) 如果您按照中提供的方式运行脚本,它们确实会从Wikipedia创建一个培训数据集,您可以使用它来培训通用模型 如果你想训练一个更有限的模型,当然你可以在你自己的训练集中训练。这里可以找到一个玩具示例:,您可以从中推断训练数据的格式: def sample

我试图在这里遵循以下示例:。但我只是对训练数据中的内容感到困惑。它是维基百科的全部吗?假设我只需要一些实体的培训数据。例如,E1、E2和E3。该示例是否允许我仅指定几个要消除歧义的实体?

[UPDATE]注意,此代码库已移动到(spaCy v2)

如果您按照中提供的方式运行脚本,它们确实会从Wikipedia创建一个培训数据集,您可以使用它来培训通用模型

如果你想训练一个更有限的模型,当然你可以在你自己的训练集中训练。这里可以找到一个玩具示例:,您可以从中推断训练数据的格式:

def sample_train_data():
    train_data = []

    # Q2146908 (Russ Cochran): American golfer
    # Q7381115 (Russ Cochran): publisher

    text_1 = "Russ Cochran his reprints include EC Comics."
    dict_1 = {(0, 12): {"Q7381115": 1.0, "Q2146908": 0.0}}
    train_data.append((text_1, {"links": dict_1}))

    text_2 = "Russ Cochran has been publishing comic art."
    dict_2 = {(0, 12): {"Q7381115": 1.0, "Q2146908": 0.0}}
    train_data.append((text_2, {"links": dict_2}))

    text_3 = "Russ Cochran captured his first major title with his son as caddie."
    dict_3 = {(0, 12): {"Q7381115": 0.0, "Q2146908": 1.0}}
    train_data.append((text_3, {"links": dict_3}))

    text_4 = "Russ Cochran was a member of University of Kentucky's golf team."
    dict_4 = {(0, 12): {"Q7381115": 0.0, "Q2146908": 1.0}}
    train_data.append((text_4, {"links": dict_4}))

    return train_data

train\u entity\u linker.py
中的这个示例向您展示了模型如何从发布者(
Q7381115
)中排除高尔夫球手“Russ Cochran”(
Q2146908
)的歧义。请注意,这只是一个玩具般的例子:一个现实的应用程序需要一个更大的知识库,具有准确的先验频率(通过运行Wikipedia/Wikidata脚本可以得到),当然,你还需要更多的句子和词汇多样性,以期望机器学习模型能够找到合适的线索,并有效地概括出看不见的文本。

谢谢你的回答。那么,如果我使用维基百科脚本,培训数据的格式到底是什么?换句话说,它是否包含维基百科上所有实体的培训示例?如果是这样的话,我应该能够筛选出我需要的实体,不是吗?另外,在我的例子中,我需要训练它的实体可能每隔一段时间就会改变——这就是为什么我想使用维基百科数据,这样我就可以从转储中查找我需要的实体。当然,您可以对维基百科生成的培训数据进行自定义筛选。此培训文件是
gold\u entities.jsonl
,每行包含一个文档+该文档中的所有实体注释(偏移量+数据库ID)。WP数据的路径应该是压缩文件还是未压缩文件?只需保留未压缩的
.bz2
文件-您不想解压缩此:-)