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

如何在Python中将NLTK路透社语料库转为字符串生成N-Gram?

解决NLTK路透社语料库生成N-Gram耗时问题

你之前用本地小文本测试N-Gram的代码逻辑可行,但切换到路透社语料库时,直接调用reuters.words()生成unigram耗时过长,核心原因是reuters.words()返回的是懒加载的迭代器对象,而非可快速处理的序列或字符串。下面是将其转为字符串变量并生成N-Gram的具体方法:

步骤1:将路透社语料库转为字符串

通过join()方法把语料库的所有词汇拼接成完整字符串,词汇间用空格分隔:

import nltk
from nltk.corpus import reuters

# 首次运行需下载路透社语料库
nltk.download('reuters')

# 将语料库所有词拼接为字符串
corpus_str = ' '.join(reuters.words())

步骤2:基于字符串生成N-Gram

使用NLTK的ngrams工具,先把字符串拆分为词汇列表,再生成指定长度的N-Gram:

from nltk.util import ngrams

# 生成unigram
unigrams = list(ngrams(corpus_str.split(), 1))

# 生成bigram示例
bigrams = list(ngrams(corpus_str.split(), 2))

# 生成trigram示例
trigrams = list(ngrams(corpus_str.split(), 3))

补充优化方案

如果不需要严格转为字符串,直接将reuters.words()转为列表再生成N-Gram会更高效(省去字符串拼接与拆分的额外开销):

corpus_words = list(reuters.words())
unigrams = list(ngrams(corpus_words, 1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:01:53