我有作为字典的wdict,我想要添加所有独特的单词,这些单词是从存储在路径中的文本文件中扫描的,并通过CleanDoc()转换为单词列表。 我得到错误AttributeError:'dict'对象没有属性'union'。我该怎么办?
import collections
import os.path
import glob
import nltk
wdict = {}
path = "C://Python27//Corpus Files//*.*"
#this function cleans up a doc (removes stopwords etc)
def cleanDoc(doc):
stopset = set(nltk.corpus.stopwords.words('english'))
stemmer = nltk.PorterStemmer()
tokens = nltk.WordPunctTokenizer().tokenize(doc)
clean = [token.lower() for token in tokens if token.lower() not in stopset and len(token) > 3 and token.isalpha() and not 'reuter']
final = [stemmer.stem(word) for word in clean]
return final
for text in glob.glob(path):
f = open(text)
data= f.read()
words = cleanDoc(data)
wdict = wdict.union(words)
print wdict
答案 0 :(得分:3)
wdict = set() # `wset` will make a better name
同样可能wdict.update(words)
看起来比wdict = wdict.union(words)
答案 1 :(得分:2)
Python Dictionary对象没有union方法。 正如错误中所建议的那样。 联合方法仅适用于集合。
您应该查看SO答案: - How to merge two Python dictionaries in a single expression?
我最喜欢的是: -
w_dicts.update(words)
但这完全是出于个人选择。
希望这有帮助。
答案 2 :(得分:0)
将wdict = {}
更改为wdict = set()
。