gpt4 book ai didi

python - 如何标记 Python 中的收缩?

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:32 25 4
gpt4 key购买 nike

我有一些句子要标记化,包括标点符号。但我需要处理缩略词,以便将不是“can't”之类的词标记为“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 不是一个选项。

最佳答案

正则表达式:

\w+(?=n't)|n't|\w+(?=')|'\w+|\w+

用法

match_list = re.findall(r"\w+(?=n't)|n't|\w+(?=')|'\w+|\w+","you've it's couldn't don't", re.IGNORECASE | re.DOTALL)

匹配:

['you', "'ve", "it", "'s", 'could', "n't", "do", "n't"]

关于python - 如何标记 Python 中的收缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14576158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com