我正在使用 Python 2.7.4
我拼凑了一个程序,它将读取 .txt 文件,分隔单词,删除空格和标点符号,将大写字母转换为小写,并返回 x 最常见的单词,以及这些单词出现的次数文件。我正在尝试(但未能)做的是从输出中排除某些最常见的单词(即“a”、“i”、“to”、“for”等)。
我是初学者,所以我可能只是误解了对某些已经回答(并且我无法利用)的问题的回答,例如:
和
我试图将不同的方面分成不同的功能,希望能简化事情,尽管我怀疑我实际上可能过于复杂了。我的程序如下:
import string
from collections import Counter
def wordlist(line):
wordlist2 = []
wordlist1 = line.split()
for word in wordlist1:
cleanword = ""
for char in word:
if char in string.punctuation:
char = ""
if char in string.whitespace:
char = ""
cleanword += char
wordlist2.append(cleanword)
return wordlist2
def wordcaps(line):
line = [char.lower() for char in line]
return line
def countwords(document):
words = Counter()
words.update(document)
x = words.most_common()
print x
def readfile(filename):
fin = open(filename).read()
print countwords(wordcaps(wordlist(fin)))
以下是我尝试过的一些事情。我试图创建一个列表 - 例如 filterlist = ['i', 'to', 'and'] - 并将其用作 wordlist 函数中的条件:
for word in wordlist1:
if word in filterlist:
word = ""
这似乎没有任何效果。我也试过了,没用:
for word in wordlist1:
if word in filterlist:
wordlist1.append("")
我已经尝试了很多其他的东西,但是无论如何这个问题似乎都太长了。我已经看到对“正则表达式”的引用,但我只是不确定那是什么或它如何适合。