【问题标题】:NLP: spacy getting dependenciesNLP:spacy 获取依赖项
【发布时间】:2019-07-19 16:46:11
【问题描述】:

我正在尝试从这句话中提取一些数字,但我想验证正确的数字是否与正确的文本匹配。

nlp = spacy.load('en_core_web_sm')  
s2 = 'Revenue from the advertising and subscription business for the first quarter of 2019 was RMB897.0 million (US$133.7 million), representing a 13.9% increase from RMB787.5 million (US$117.3 million) in the corresponding period in 2018.'

doc = nlp(s2)
for w in doc.ents:
    print(w.text, w.label_, w.root)
    for i in w.subtree:
        print("   ", i, i.head)
        for a in i.ancestors:
            print("       ", a, a.head)

我想将RMB897.0 millionadvertising and subscription 联系起来,但不知道该怎么做。还尝试了名词分块。

for chunk in doc.noun_chunks:
    print(chunk.text, chunk.root.text, chunk.root.dep_,
          chunk.root.head.text)

    for c in chunk.subtree:
        print("   ", c, c.head)

【问题讨论】:

  • 关联到底是什么意思?是否想为回指解析或文本结构执行此操作?您使用的数据中是否存在任何模式?否则只需使用依赖解析器,我的意思是它是一个简单的案例,因为复杂的名词短语通过连接动词与数字相关。
  • 我想看看RMB897.0是不是在说advertising and subscription

标签: python nlp spacy


【解决方案1】:

首先,您需要考虑您的数据。如果您发现数字和相关名词的某些模式,您也许可以使用它们来找出关系,无论如何,这并不是很可靠。 更好的方法是使用依赖解析或完整解析算法,使用词性标记 (POS) 信息和可能的关于头部动词的语义信息。这是一项真正的语言任务,这意味着您需要语言信息。连接动词表示数字与动词参数有关,所以 提取和关系很简单。其他情况可能不太明显。

也许开始对包含数字的表达式和与它们一起出现的矩阵动词(be、amount to、reduce to、increased 等)进行一些搭配分析,那么您也许可以将动词参数的信息用于关系上的注释。也许看看关联和照应解析,这可能会对你有所帮助。

【讨论】:

    猜你喜欢
    • 2016-10-24
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2016-10-08
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多