【问题标题】:I want to extract text values from text in spacy我想从 spacy 中的文本中提取文本值
【发布时间】:2019-03-05 16:42:39
【问题描述】:

我是使用 spacy 的新手。我想从句子中提取文本值

training_sentence="I want to add a text field having name as new data"
        OR
training_sentence=" add a field and label it as advance data"

所以从上面这句话中,我想提取“新数据”和“提前数据”

目前,我可以使用自定义 NER 提取“add”、“field”和“label”等实体。

但我无法提取文本值,因为这些值可以是任何值,而且我不确定如何在 spacy 中使用自定义 NER 来提取它。

我在 spacy 文档中看到了 实体关系 的代码 sn-p here 但不知道根据我的用例来实现它。

我无法分享代码。请帮忙解决这个问题

【问题讨论】:

    标签: python nlp spacy information-extraction named-entity-recognition


    【解决方案1】:

    我不确定将其定义为纯命名实体识别问题在这里是否真的有意义。命名实体通常是专有名词和“现实世界的对象”——例如,像“John Doe”这样的人名,像“Google”这样的组织名称,或者疾病或基因等事物,以命名来自更具体领域的示例。这也是 spaCy 的命名实体识别器的优化目标。

    在您的示例中,似乎大多数线索实际上都在 语法 中,您通常可以开箱即用地很好地预测。例如,您正在寻找诸如“添加”和“标签”之类的动词,以及它们的对象(“文本字段”)或附加的介词短语。如果您可视化语法,例如使用displacy 模块,您会看到句子结构中有很多相关信息可以通过编程方式提取:

    from spacy import displacy
    doc = nlp("I want to add a text field having name as new data")
    displacy.serve(doc)
    

    您还可以使用rule-based matcher 查找触发标记,例如"label"(带有词性标签VERB),然后检查dependency tree 以查找附加到它们的标记。例如,如果动词“label”附加在介词“as”上,您可以很确定附加到它的 object 是标签的名称。或者,您可以从句子的根部开始,遍历其 subtree 并检查它是否包含您感兴趣的标记或结构。

    您可能需要进行一些试验,最终可能会得到一堆不同的规则来涵盖数据中常见的不同类型的结构。

    【讨论】:

    • 感谢您的回复@InesMontani。我想知道如何创建基于多规则的匹配器。这样我就可以提取值,即使句子可以是任何序列,例如:sentence1="I want to add field having name datadata" OR sentence1="Add field having name datadata" OR sentence1="User need field and label it datadata" ,它如何检测多个动词,例如sentence2="I need to add field datata and remove field notsomuchdata OR sentence2="Just remove field datadata and user require a field specificdata"
    猜你喜欢
    • 2018-12-31
    • 2021-09-04
    • 1970-01-01
    • 2019-11-17
    • 2021-05-05
    • 1970-01-01
    • 2019-06-23
    • 2020-05-06
    相关资源
    最近更新 更多