0
이 수축 가끔 같은 분할됩니다수축 토큰 화에서 정규식을 뒤집는 방법은 무엇입니까? <code>nlp</code> 토큰에서
>>> import re
>>> s = 'he cannot fly'
>>> pattern, substitution = r"(?i)\b(can)(not)\b", r" \1 \2 "
>>> re.sub(pattern, substitution, s)
'he can not fly'
을 바꾸려면 (즉 detokenization), 나는 시도했다이 :
>>> rev_pattern, rev_substitution = r"(?i)\b(can)\s(not)\b", r" \1\2 "
>>> re.sub(rev_pattern, rev_substitution, s)
'he cannot fly'
문제는 r"(?i)\b(can)\s(not)\b"
및 r" \1\2 "
는 IS 원래의 패턴 치환의 반대? 이것을 뒤집을 다른 방법이 있습니까?
이 경우 패턴에 \s
을 수동으로 코딩했습니다. 자동으로 목록을 반복 할 수있는 방법이
CONTRACTIONS2 = [re.compile(r"(?i)\b(can)(not)\b"),
re.compile(r"(?i)\b(d)('ye)\b"),
re.compile(r"(?i)\b(gim)(me)\b"),
re.compile(r"(?i)\b(gon)(na)\b"),
re.compile(r"(?i)\b(got)(ta)\b"),
re.compile(r"(?i)\b(lem)(me)\b"),
re.compile(r"(?i)\b(mor)('n)\b"),
re.compile(r"(?i)\b(wan)(na) ")]
CONTRACTIONS3 = [re.compile(r"(?i) ('t)(is)\b"),
re.compile(r"(?i) ('t)(was)\b")]
CONTRACTIONS4 = [re.compile(r"(?i)\b(whad)(dd)(ya)\b"),
re.compile(r"(?i)\b(wha)(t)(cha)\b")]
: 가장 큰 문제는 수동으로 토큰 화를위한 코딩이 정규 표현식에 한 무리가있어 내가 수동으로 그들 모두의 \s
을 추가했습니다 regexes를 추가하고 제트 변형 정규 표현식을 하드 코드하지 않고 그룹간에 \s
을 추가하십시오.
원래의 토큰 화 대체는 ->`r '\ 1 \ 2'이므로이를 취소하려면 다시 변경해야합니다. r '\ 1 \ 2'.