gpt4 book ai didi

python - NLTK 上下文无关文法生成器

转载 作者:太空狗 更新时间:2023-10-29 20:20:20 25 4
gpt4 key购买 nike

我正在开发一个带有 Unicode 字符的非英语解析器。为此,我决定使用 NLTK。

但是它需要如下预定义的上下文无关语法:

  S -> NP VP
VP -> V NP | V NP PP
PP -> P NP
V -> "saw" | "ate" | "walked"
NP -> "John" | "Mary" | "Bob" | Det N | Det N PP
Det -> "a" | "an" | "the" | "my"
N -> "man" | "dog" | "cat" | "telescope" | "park"
P -> "in" | "on" | "by" | "with"

在我的应用中,我应该使用基于规则的语法来最大程度地减少硬编码。例如,我可以假设任何以 -ed-ing 结尾的词都是动词。所以它应该适用于任何给定的上下文。

如何将此类语法规则提供给 NLTK?或者使用有限状态机动态生成它们?

最佳答案

如果您正在创建一个解析器,那么您必须在实际解析之前添加一个词性标记步骤——没有办法成功地确定一个词的词性标记语境。例如,'closed' 可以是形容词或动词;词性标注器会根据单词的上下文为您找出正确的标签。然后您可以使用词性标注器的输出来创建您的 CFG。

您可以使用许多现有的词性标注器之一。在 NLTK 中,您可以简单地执行以下操作:

import nltk
input_sentence = "Dogs chase cats"
text = nltk.word_tokenize(input_sentence)
list_of_tokens = nltk.pos_tag(text)
print list_of_tokens

输出将是:

[('Dogs', 'NN'), ('chase', 'VB'), ('cats', 'NN')]

您可以使用它来创建语法字符串并将其提供给 nltk.parse_cfg()

关于python - NLTK 上下文无关文法生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17695611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com