문단이 있으며 단어와 구두점을 구분하여 토큰 화하고 그 결과를 인쇄하려고합니다. 특별한 경우가 있습니다 (예 : Peter와 같은 약어 (미국) & 및 십진수)는 문자에 첨부해야하며 구분하지 않아야합니다.약어 및 구두점 표기법에 대한 정규식 패턴
나는 다음 코드를 실행합니다 :
import re
text = "My weight is about 68 kg, +/- 10 grams! I live in U.S.A. at Mr.
Peter's house! 3,500 calorie rule, which equates a weight alteration
of 2.2 lb"
pattern = r"""(?:[A-Z]\.)+ |\d+(?:\.\d+)?%?|\w/.+$\s-|\w+(?:[-']\w+)*|
(?:[+/\[email protected]&*]|/.$/)"""
print (re.findall(pattern, text))
아웃풋 :
['My', 'weight', 'is', 'about', '68', 'kg', '+', '/', '-', '10',
'grams', 'I', 'live', 'in', 'U.S.A. ', 'at', 'Mr', "Peter's", 'house',
'3', '500', 'calorie', 'rule', 'which', 'equates', 'a', 'weight',
'alteration', 'of', '2.2', 'lb'
]
이 코드 몇 가지 실수가있다, 나는 정말 그 문제를 해결하는 데 도움이 필요합니다
모든 구두점을 제거합니다! 나는 그 (것)들을 지키고 그러나 낱말에서 분리하고 싶다.
패턴은 contains (,)를 무시하고 제거합니다. 패턴에
\d+(?:\,\d+)?%?
을 추가했지만 제대로 작동하지 않습니다. 패턴은 일부 약어 등Mr.
이
가 당신의 도움이 매우 이해할 수를 무시
전적으로 가능하다고 생각하지 않습니다. 정규 표현식에서 "미국"의 마지막 요점을 어떻게 알 수 있습니까? 문장의 끝인가요? – Emaro