NLTK CFG语法识别所有字符串

时间:2019-05-22 15:22:15

标签: python string nltk context-free-grammar

我需要在上下文无关语法中转换以下正则表达式:[A-Za-z _] +

我想要一种更好的方法来识别只在语法中添加所有字母的字符串。

import nltk
grammar = """
S -> '"' A '"'
A -> B A | B
B -> '_' | 'a' | 'b' | 'c' | ... | 'z' | 'A' | 'B' | 'C' | ... | 'Z'
"""
grammar = nltk.CFG.fromstring(grammar)

字符串是从“ a”到“ z”(大写和小写)的字符序列,下划线是“ _”。

我找到了解决方案:

strings = list(set(regexp_tokenize(s, pattern='"[A-Za-z_]+"')))
for st in strings:
    grammar += "S -> \'" + st + "\'\n    "

0 个答案:

没有答案