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

如何使用Python对字符串进行连续成对Tokenize处理?

连续两两组合分词的实现方案

基础单句实现逻辑

你需要的是大小为2的滑动窗口分词,先用nltk拿到单分词列表后,遍历取相邻两个词拼接即可,示例代码如下:

from nltk.tokenize import word_tokenize

def pair_tokenize(sentence: str) -> list:
    # 先拿到单个分词结果
    tokens = word_tokenize(sentence)
    # 句子分词后不足2个词时可按需求调整返回规则,此处返回空列表
    if len(tokens) < 2:
        return []
    # 滑动窗口取相邻两个词拼接
    return [f"{tokens[i]} {tokens[i+1]}" for i in range(len(tokens)-1)]

# 测试用例
test_sentence = "I like to play basketball"
print(pair_tokenize(test_sentence))

运行后输出结果为:['I like', 'like to', 'to play', 'play basketball'],符合预期。

数据库整列批量处理方案

根据数据量级选对应处理方案即可:

  • 百万级及以下数据:用对应数据库的Python连接库(MySQL用pymysql、PostgreSQL用psycopg2)分批拉取目标列数据,每次拉取1000~10000条,调用上述函数处理完成后写回数据库新列,可搭配多进程并行处理进一步提速。
  • 亿级及以上超大规模数据:如果数据存储在Hive、Spark SQL等大数据组件中,直接将上述分词逻辑包装为Spark UDF,对整列执行分布式计算,无需手动分批,框架会自动调度资源完成处理。

可选优化点

  • 若不需要标点符号参与分词组合,可在拿到单分词列表后先过滤掉标点,再执行滑动窗口拼接,减少无效结果。
  • 若后续需要统计两两组合的出现频次,处理时可直接用collections.Counter累加计数,无需存储全部分词结果,节省存储空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:42:02