'dict'对象没有属性'union'

时间:2014-02-08 20:58:52

标签: python dictionary union corpus

我有作为字典的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

3 个答案:

答案 0 :(得分:3)

您可以使用set代替dict

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()