【发布时间】:2013-01-29 05:20:13
【问题描述】:
我有想要标记的句子,包括标点符号。但是我需要处理缩略词,以便将“不能”之类的单词标记为“ca”和“n't”,其中拆分是撇号前的一个字符,其余的缩略词拆分在像“you've”和“It's”这样的撇号变成“you”“'ve”和“It”和“'s”。这就是我卡住的地方。基本上大致相当于 NKTL 的 TreebankWord Tokenizer 的行为方式: NLTK Word Tokenization Demo
我一直在使用这里提出的解决方案之一,它不能按照我想要的方式处理收缩:
re.findall("'\w+|[\w]+|[^\s\w]", "Hello, I'm a string! Please don't kill me? It's his car.")
我得到了这个结果:
['Hello', ',', 'I', "'m", 'a', 'string', '!', 'Please', 'don', "'t", 'kill', '我','?','它',''s','他的','汽车','.']
除了应该是“do”和“n't”的don't情况外,哪个会正确处理撇号。有谁知道如何解决这个问题?
我只能使用标准库,因此在这种情况下不能选择 NLTK。
【问题讨论】: