nltk .lhs()问题比较字符串

时间:2013-03-04 19:52:18

标签: python nltk

分配string = i.lhs()时的值,然后与之比较 print (var == 'P')var时,'P'会返回false。

 for i in grammar.productions():
    var = i.lhs()
    P = "P"
    if (not i.is_nonlexical()):
        print var
        print (var == P)

它对任何东西都返回false。我不明白为什么它会对所有内容都返回false。有提示吗?

1 个答案:

答案 0 :(得分:0)

您不能将lhs() - 对象与字符串进行比较,但您可以使用.lhs().__str__()获取对象的字符串表示形式,并将其与另一个字符串进行比较,如下所示:

for i in grammar.productions() :
   var = i.lhs()
   P = "P"
   if (not i.is_nonlexical()) :
       print var
       print (var.__str__() == P)

此外,您可以使用is_lexical()而不是询问它是否不是非法的