You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NLTK Word Tokenizer结尾单引号拆分异常,如何调整为指定分词结果?

解决NLTK Word Tokenizer对单引号的拆分问题

我之前也碰到过NLTK自带的word_tokenize对单引号的处理不太符合预期的情况,刚好可以给你针对两种期望输出的解决方案:

情况1:期望得到 ["'v'"]

如果你想把整个被单引号包裹的内容作为一个单独的token,可以用NLTK的RegexpTokenizer自定义匹配规则,直接匹配单引号包裹的字符:

from nltk.tokenize import RegexpTokenizer

test = "'v'"
# 匹配被单引号包裹的单个字母,如需支持更长内容可改成 r"'[^'\s]+'"
tokenizer = RegexpTokenizer(r"'[a-zA-Z]'")
words = tokenizer.tokenize(test)
print(words)  # 输出: ["'v'"]

情况2:期望得到 ["'", "v", "'"]

要是想把单引号和中间的字符拆分开,同样可以用RegexpTokenizer,定义规则分别匹配单引号和字母:

from nltk.tokenize import RegexpTokenizer

test = "'v'"
# 匹配单个单引号或者单个字母,按需调整范围(比如支持数字)
tokenizer = RegexpTokenizer(r"'|[a-zA-Z]")
words = tokenizer.tokenize(test)
print(words)  # 输出: ["'", "v", "'"]

相比修改NLTK默认分词的复杂规则,用RegexpTokenizer自定义匹配逻辑会更灵活直接,完全能满足你的需求~

内容的提问来源于stack exchange,提问作者Lingviston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:50:30