如何在NLTK的Brown语料库中生成四元组(four grams)
NLTK基于brown语料库生成四元组的方法
核心结论
不需要将brown语料库转换为字符串,直接调用NLTK提供的通用n元组生成函数即可实现四元组生成,操作非常简单。
实现步骤
- 前置准备
确保已经安装NLTK且下载了brown语料库,未下载的话运行以下代码:
import nltk nltk.download('brown')
- 直接生成全语料四元组
nltk.bigrams()、nltk.trigrams()本质是通用ngrams函数的二阶、三阶封装,四元组及更高阶n元组都可以直接调用nltk.ngrams()实现:
from nltk import ngrams # 直接基于brown语料的词序列生成四元组 four_grams = ngrams(nltk.corpus.brown.words(), 4) # 可以转为列表查看具体内容,示例输出前3个四元组 print(list(four_grams)[:3]) # 输出示例:[('The', 'Fulton', 'County', 'Grand'), ('Fulton', 'County', 'Grand', 'Jury'), ('County', 'Grand', 'Jury', 'said')]
进阶优化(推荐)
如果要避免跨句子生成不合理的四元组,可以遍历语料的单句分别生成:
from nltk import ngrams import nltk valid_four_grams = [] for sent in nltk.corpus.brown.sents(): # 跳过长度不足4的句子,避免生成无效元组 if len(sent) >= 4: valid_four_grams.extend(ngrams(sent, 4))
内容的提问来源于stack exchange,提问作者KSilver48
相关产品推荐
相关产品推荐

