【问题标题】:How do I extract noun phrases in Danish using StanfordNLP in python?如何在 python 中使用 StanfordNLP 提取丹麦语中的名词短语?
【发布时间】:2019-10-01 22:43:55
【问题描述】:

到目前为止,我已经在 python 中使用了 stanfordnlp 库,并且我已经对文本数据框进行了标记化和 POS 标记。我现在想尝试提取名词短语。我尝试了两种不同的方法,但都遇到了问题:

  1. 据我所知,stanfordnlp python 库似乎并没有提供开箱即用的 NP 分块,至少我还没有找到一种方法来做到这一点。我尝试使用它们的 POS 标签按顺序制作所有单词的新数据框,然后检查名词是否重复。但是,这对我来说非常粗糙且相当复杂。

  2. 我已经能够使用 nltk 处理英文文本,因此我也尝试在 NLTK 中使用 Stanford CoreNLP API。我在这方面的问题是,在使用 Maven 设置 CoreNLP 时我需要一个丹麦模型(我对此非常缺乏经验)。对于本文的问题1,我一直使用丹麦模型found here。这似乎不是我被要求找到的那种模型 - 再说一次,我现在不知道我在做什么,如果我在这里误解了一些东西,我深表歉意。

然后我的问题是(1)实际上是否有可能在 python 中对 stanfordnlp 中的 NP 进行分块,(2)我是否可以以某种方式将 POS-tagged+tokenized+lemmatized 单词从 stanfordnlp 解析为 NLTK 并执行在那里分块,或者 (3) 是否可以在丹麦语中设置 CoreNLP,然后使用带有 NLTK 的 CoreNLP api。

谢谢你,并为我在此不够清楚而道歉。

【问题讨论】:

    标签: python nlp nltk stanford-nlp


    【解决方案1】:

    一些有用的信息:

    1.) 据我所知,Stanford CoreNLP (Java) 不支持丹麦语。我们没有丹麦语支持,我不知道有第三方有丹麦语模型。因此,Java 代码和服务器都不会有太大帮助。尽管肯定有可能某个地方的某个人有一些丹麦模型。我会尝试在 Google 上进行更多研究。

    2.) 我们确实为 StanfordNLP (Python) 代码库的标记化、词性、引理和依赖项解析提供丹麦支持。目前我们还没有任何名词词组识别软件。我们不产生选区解析,所以我们不能只在解析树中找到NP,它是一个依赖解析。我想有一些不错的技术可以基于依赖解析或基于分块词性来提取名词短语。我们可以努力添加一些功能来帮助解决这个问题。虽然这样的技术一开始可能并不完美。但是 UD 2.0 的精神是处理所有语言,因此这似乎是一个完美的案例,可以在 UD 2.0 解析上编写通用名词短语提取规则,然后可以在 Python 包中支持的所有 70 多种语言上工作。

    【讨论】:

    • 谢谢你,这清楚了很多!我很想成为帮助从 POS 或依赖解析中提取某种名词短语的工具的一部分。
    【解决方案2】:

    从 CoreNLP 中提取块的方法是使用 constituency parser 的输出。据我所知,CoreNLP 中没有任何方法可以直接为您提供块列表,但是,您可以解析选区解析器的输出,实际字符串,并根据您的需要列出块。例如,对于像“I bought the book because I read good reviews about it.”这样的输入句子,您的方法的输出将类似于:

    <class 'list'>: 
    [['NP', 'I'], 
    ['NP', 'the book'], 
    ['NP', 'I'], 
    ['NP', 'good reviews'],
    ['NP', 'it'], 
    ['SBAR', 'because I read good reviews about it'], 
    ['VP', 'bought the book because I read good reviews about it'], 
    ['VP', 'read good reviews about it']]
    

    上面的输出是我自己写的一个方法,这里只列出了NPs、VPs和SBARs,但是还没有公布方法,因为我需要进一步测试和调试。

    而且,如果您只需要名词短语,您可能还想查看 Spacy 和解决方案 here,它非常快。我提到的一切主要是关于你的第一个问题,部分是关于你的第二个问题,我不知道这些解决方案是否也适用于丹麦语。

    【讨论】:

    • 谢谢!我的问题是我无法让选区解析器与 stanfordnlp python 库一起工作。它在 stanford-corenlp 包装器中,但后来我又回到了必须用丹麦语设置 CoreNLP 的问题。
    猜你喜欢
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多