NLTK(自然语言工具包)允许您使用 nltk.FCFG.fromstring([此处的语法字符串]) 解析 FCFG 语法。
FCFG 语法格式规范在哪里*?我用谷歌搜索死了,但我只能找到this 。
*即语法语言规范
最佳答案
问题是要求FCFG(特征语法)而不是普通的CFG。
我认为您可以在非终结符上添加方括号,并在括号中添加功能名称、等号和值。该值可以是变量(以问号开头)、终结符号(对于简单值)或新的特征结构。我在互联网上找到了这个示例( http://www.nltk.org/howto/featgram.html ),它正在我的笔记本电脑上运行。
from nltk import grammar, parse
g = """
% start DP
DP[AGR=?a] -> D[AGR=?a] N[AGR=?a]
D[AGR=[NUM='sg', PERS=3]] -> 'this' | 'that'
D[AGR=[NUM='pl', PERS=3]] -> 'these' | 'those'
D[AGR=[NUM='pl', PERS=1]] -> 'we'
D[AGR=[PERS=2]] -> 'you'
N[AGR=[NUM='sg', GND='m']] -> 'boy'
N[AGR=[NUM='pl', GND='m']] -> 'boys'
N[AGR=[NUM='sg', GND='f']] -> 'girl'
N[AGR=[NUM='pl', GND='f']] -> 'girls'
N[AGR=[NUM='sg']] -> 'student'
N[AGR=[NUM='pl']] -> 'students'
"""
grammar = grammar.FeatureGrammar.fromstring(g)
tokens = 'these girls'.split()
parser = parse.FeatureEarleyChartParser(grammar)
trees = parser.parse(tokens)
for tree in trees:
tree.draw()
print(tree)
看来功能终端符号是否带引号并不重要。
关于python - NLTK FCFG 语法标准/规范是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35963350/