我有要标记的句子,包括标点符号。但是我需要处理缩略词,以便将“不能”之类的单词标记为“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', 'me' , '?', 'It', "'s", 'his', 'car', '.']
哪个可以正确处理撇号,除非它应该是“do”和“n't”。有谁知道如何解决这个问题?
我只能使用标准库,所以在这种情况下 NLTK 不是一个选项。