我需要计算包含如下文本的文本文件的Unigrams、BiGrams和Trigrams:
“仅在美国,囊性纤维化就影响了30000名儿童和年轻人
吸入盐水的雾气可以减少充满囊性纤维化患者气道的脓液和感染,尽管副作用包括剧烈的咳嗽和难闻的味道。
这是本周出版的《新英格兰医学杂志》上发表的两项研究的结论。”
我从Python开始使用以下代码:#!/usr/bin/env python
# File: n-gram.py
def N_Gram(N,text):
NList = [] # start with an empty list
if N> 1:
space = " " * (N-1) # add N - 1 spaces
text = space + text + space # add both in front and back
# append the slices [i:i+N] to NList
for i in range( len(text) - (N - 1) ):
NList.append(text[i:i+N])
return NList # return the list
# test code
for i in range(5):
print N_Gram(i+1,"text")
# more test code
nList = N_Gram(7,"Here is a lot of text to print")
for ngram in iter(nList):
print '"' + ngram + '"'
但它对一个词内的所有n-克都有效,当我想要它在两个词之间时,如在囊性纤维化或囊性纤维化中。有人能帮我解决这个问题吗?