我正在寻找一种将文本拆分为 n-gram 的方法。通常我会做类似的事情:
import nltk
from nltk import bigrams
string = "I really like python, it's pretty awesome."
string_bigrams = bigrams(string)
print string_bigrams
我知道 nltk 只提供双字母组和三字母组,但有没有办法将我的文本分成四克、五克甚至一百克?
谢谢!
原文由 Shifu 发布,翻译遵循 CC BY-SA 4.0 许可协议
其他用户给出的基于原生 python 的出色答案。但这是
nltk
方法(以防万一,OP 因重新发明nltk
库中已经存在的内容而受到惩罚)。nltk
中有一个人们很少使用的 ngram模块。这不是因为 ngram 很难阅读,而是基于 n > 3 的 ngram 训练模型会导致大量数据稀疏。