我正在尝试在Python中将字符串拆分为“标签”列表。拆分应该处理诸如“HappyBirthday”之类的字符串,删除大多数标点符号但保留连字符和撇号。我的起点是:
tags = re.findall("([A-Z]{2,}(?=[A-Z]|$)|[A-Z][a-z]*)|\w+-\w+|[\w']+"
I would want to turn this sample data:
Jeff's dog is un-American SomeTimes! BUT NOTAlways
Into:
['Jeff's', 'dog', 'is', 'un-American', 'Some', 'Times', 'BUT', 'NOT', 'Always']
抱歉我的描述可能不太好。我不确定如何解释,并且在谷歌上大多数情况下都没有成功。我希望示例可以恰当地说明问题。
编辑:我认为需要更精确,因此也有以下要求:
1.如果单词是连字号和大写字母的,比如“UN-American”,输出将保持为一个单词,因此输出为“UN-American”。 2.如果连字符两侧有空格,例如“THIS- is”或“This - is”,它应该忽略连字符并生成["THIS","is"]和["This","is"]。 3.同样,对于在单词中间的撇号,比如"What'sItCalled",应该生成["What's","It","Called"]。