如何查找字典中的单词频率(CSV文件)

时间:2015-12-01 16:58:52

标签: python csv

1我知道在这个网站上有几篇关于此的帖子。但是,我的计数器功能不起作用。

我有一个CSV文件,其中包含有关体育的推文。我试图找到以下主题标签的频率[" #lovepatriots"," #GoJets"等]共有10个主题标签。

以下是我的代码。我想使用下面代码的格式而不是计数器函数。

   $.each(response.posts.data, function(index){

        $('.announcementsTitle'+index).prepend($(this).name);
        $('.announcementsText'+index).prepend($(this).message);
        $('.announcementsText'+index).prepend($(this).description);
        $('.announcementsImage'+index).attr("src",$(this).full_picture);

    });

我收到以下错误:

def readCSV():
    myFile = open("/Users/acantrr/Desktop/south.csv", newline='',   encoding='utf-8"')
    fileString=myFile.read()
    fileString = re.sub ('[^\s\w#]+',' ',fileString)
    fileString = re.sub("\d+", "", fileString)
    fileString  = fileString.lower()
    myFile.close()
    myList= fileString.split()
    return myList

def freqdic():
    myList = readCSV()
    for word in myList:
        # Add a word to my dict. What should the val be?
        if not word_freqs.has_key(word):
            word_freqs[word] = 1
            print('Saw', word, 'for the first time')
        else:
            word_freqs[word] = word_freqs[word]+1
            print('Saw', word, 'again. Doh :(')

CSV file image

1 个答案:

答案 0 :(得分:1)

此错误

 AttributeError: 'dict' object has no attribute 'has_key'

告诉我你正在使用Python 3。

来自What's New in Python 3.0

  

移除。 dict.has_key() - 改为使用in运算符。

修复问题更改

if not word_freqs.has_key(word):

if word not in word_freqs:

更好的是,使用collections.Counter并且您的功能变为:

def freqdic():
    words = readCSV()
    word_freqs = collections.Counter(words)
    return word_freqs

甚至

def freqdic():
    return collections.Counter(readCSV())