一尘不染

python中的n-gram,four, five, six grams?

python

我正在寻找一种将文本拆分为 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?

谢谢!


阅读 62

收藏
2022-09-28

共1个答案

一尘不染

其他用户给出的基于 Python 的优秀答案。但这是一种方法(以防万一,OP因重新发明图书馆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
2022-09-28