delimeter로 일부 공백을 사용할 수 있습니까? 내 말은 ...구문 분석의 공백 문자와 연산자의 유사 함
주어진 파이썬 연산자 우선 구문 분석기, 자연어와 연산자를 섞어주고 싶다. 즉, 노트 작성을위한 약어로 'caffeine : A1 antagonist -> caffeine : peripheral stimulant'
에는 해석 'caffeine is an A1 antagonist implies that it is a peripheral stimulant'
이있다.
나는이
operands = delimitedList(Word(alphanums), delim=',')
# delim=' ' obviously doesn't work
precedence = [
(":", 2, opAssoc.LEFT),
("->", 2, opAssoc.LEFT),
]
parser = operatorPrecedence(operands, precedence)
def parse(s): return parser.parseString(s, parseAll=True)
print parse('a:b -> c : d e')
수 같은과 함께이 parse('a:b -> c : d e')
[[['a', ':', 'b'], '->', ['c', ':', ['d', 'e']]]]
로 구문 분석 할 수있게하려면?
여기서 첫 번째로 구분 기호를 사용합니까? 어디에도 쉼표가 없으며'parser = operatorPrecedence (Word (alphanums), precedence) '를 사용하는 것과 동일한 효과가 있습니다. – abarnert
또한 공백이 보존 된 구문을 반환하는 대신'b' 및'd' 용어를 공백으로 분리 하시겠습니까? 왜냐하면 후자는 사소한 것 ('Word (alphanums + '')')을 사용하는 것뿐만 아니라 의도 한 유스 케이스에 더 유용하게 보이기 때문입니다.''A1 길항제 '와''주변 자극제''는 주변 표식의 용어이지'''A1'',''길항제''''''말초'',''자극제'''는 아닙니다. – abarnert
오른쪽. '단어 (영숫자 + '))'가 작동합니다. 감사! –