我正在寻找一种将文本拆分为 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 只提供二元组和三元组,但有没有办法将我的文本分成four-grams, five-grams or even hundred-grams?
谢谢!
其他用户给出的基于 Python 的优秀答案。但这是一种方法(以防万一,OP因重新发明图书馆nltk中已有的东西而受到惩罚)。nltk
nltk
有一个人们很少使用的ngram 模块nltk。这不是因为 ngrams 难以阅读,而是基于 ngrams 训练模型,其中 n > 3 会导致大量数据稀疏。
from nltk import ngrams sentence = 'this is a foo bar sentences and i want to ngramize it' n = 6 sixgrams = ngrams(sentence.split(), n) for grams in sixgrams: print grams