【问题标题】:Best way to parse suffixed words解析后缀词的最佳方法
【发布时间】:2015-04-30 13:46:24
【问题描述】:

我需要一个能够根据每个单词的最后一个字母识别词性的解析器。我用过 Python,但我不确定可用的 CFG 解析器会接受这个。

让我们以世界语单词为例。所有形容词都以 -a 结尾(例如,'ganda' 代表大),所有名词都以 -o 结尾(例如,'hundo' 代表狗)。所以这是一个玩具语法:

S -> A N |一个小号

A ->(任何以 -a 结尾的单词)

N ->(任何以 -o 结尾的单词)

句子:“granda bela animalo hundo”(原文如此!)应该解析如下:

(S (A granda) (S (A bela) (N animalo)) (N hundo))

有人知道如何编码吗?我试图使语法尽可能简单。抱歉,如果这看起来很奇怪 - 这很复杂......

【问题讨论】:

    标签: python parsing context-free-grammar tagging


    【解决方案1】:

    您可以使用str.endswith 方法

    word = "granda"
    
    if word.endswith('o'):
        print "Noun"
    elif word.endswith('a'):
        print "Adjective"
    

    【讨论】:

    • 感谢 ILMS! str.endswith 很好,但是 CFG 格式只接受 Noun -> hundo 类型的产生式规则。我还没有弄清楚如何插入命令。也许我必须从头开始做一个解析器,但这感觉很有趣,因为这个问题看起来很基础。
    猜你喜欢
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2010-09-22
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多