/:python中不支持的操作数类型:“ list”和“ int”

时间:2019-07-09 14:37:33

标签: python arrays list loops average

   import re
    import csv
    import gensim
    import pandas as pd
    def processing(kata):
        words=re.sub(r'([^\s\w]|_)', '', str(kata))
        words= re.sub(r'[0-9]+', '', words)
        return words

    #fp = open('data/data.csv', 'r',)
    path = './model_terbaru/idwiki_word2vec_100.model'
    model = gensim.models.word2vec.Word2Vec.load(path)
    data = pd.read_csv('data/coba_data1.csv',encoding = "ISO-8859-1") 
    hehe=list(data)
    #print(data.head())
    for index,row in data.iterrows():
        total=[]
        kalimat=row[0]
        vector=[]
        rata=[]
        words=re.sub(r'([^\s\w]|_)', '', str(kalimat))
        words= re.sub(r'[0-9]+', '', words)
        for word in words.split():    
            kata=word.lower()
            try:
                vector=model[""+kata+""]
                total=vector+total
                print(vector)
                print(total)
                print(kata)
            except:
                pass
        jumlah_kata=len(words.split())
        print(jumlah_kata)
        #ok=open('data/vector_training.csv','a')
        rata=total/jumlah_kata
        #tulis=csv.writer(ok,lineterminator='\n')
        #tulis.writerows([rata])
        print(rata)
    #ok.close()

rata=total/jumlah_kata
  

TypeError:/:'list'和'int'的不受支持的操作数类型

我的代码在对每个向量求和时以及对它求平均时出现问题。当我声明如下时,没有错误,但结果与预期不符。

    total=[100]
    kalimat=row[0]
    vector=[100]
    rata=[100]

1 个答案:

答案 0 :(得分:0)

要向列表中添加元素,请使用append方法。要划分列表中的每个元素并返回新列表,您可以使用列表推导来访问列表中的每个元素,而不仅仅是划分整个列表。从而修改代码的相关部分:

total.append(vector)

和:

rata = [x/jumlah_kata for each x in total]