次のようなテキストを含むテキスト ファイルの Unigram、BiGrams、および Trigram を計算する必要がありました。
「嚢胞性線維症は、米国だけで 30,000 人の子供と若年成人に影響を与えています。塩水のミストを吸入すると、嚢胞性線維症患者の気道を満たす膿と感染症を減らすことができますが、副作用には不快な咳の発作と不快な味が含まれます。それが結論です。ニューイングランド・ジャーナル・オブ・メディスンの今週号に掲載された 2 つの研究のうちの 1 つです。」
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 + '"'
http://www.daniweb.com/software-development/python/threads/39109/generating-n-grams-from-a-word
しかし、CYSTIC と FIBROSIS または CYSTIC FIBROSIS のように単語の間から必要な場合は、単語内のすべての n-gram で機能します。どうすればこれを行うことができるかについて、誰かが私を助けることができますか?