我已經編寫了以下代碼來計算輸入文件sample.txt中包含一段文本的句子,單詞和字符的數量。它的工作原理在給句子和單詞的數量罰款,但沒有給出字符的準確和正確的數量(不包括空格和標點符號)用於計算輸入文件中句子,單詞和字符數的代碼
lines,blanklines,sentences,words=0,0,0,0
num_chars=0
print '-'*50
try: filename = 'sample.txt' textf = open(filename,'r')c except IOError: print 'cannot open file %s for reading' % filename import sys sys.exit(0)
for line in textf: print line lines += 1 if line.startswith('\n'): blanklines += 1 else:
sentences += line.count('.')+ line.count ('!')+ line.count('?')
tempwords = line.split(None)
print tempwords
words += len(tempwords)
textf.close()
打印「 - 「* 50 打印 「行:」 行 打印 「空行」,blanklines 打印 「的句子:」 句子 打印 「的話:」 話
進口NLTK 進口nltk.data 進口nltk.tokenize
張開( 'sample.txt的', 'R')爲f: 在F線:0NUM_CHARS + = LEN(線)
NUM_CHARS = NUM_CHARS - (+字1)
pcount = 0 從nltk.tokenize進口TreebankWordTokenizer 張開( 'sample.txt的', 'R')爲F1: 在F1行: #tokenised_words = nltk.tokenize.word_tokenize(線) tokenizer = TreebankWordTokenizer() tokenised_words = tokenizer.tokenize (line ==) for w in tokenised_words: if((w =='。')|(w ==';')|(w =='!')|(w =='?')): pcount = pcount + 1個 打印 「pcount:」,pcount NUM_CHARS = NUM_CHARS - pcount 打印 「字符:」,NUM_CHARS
pcount是標點符號的數量。有人可以建議我需要做出的改變,以找出沒有空格和標點符號的字符的確切數量嗎?
這是功課?如果沒有,我敢肯定,只需幾行shell腳本就可以得到答案。 – 2011-02-23 17:56:49