【问题标题】:unsupported operand type(s) for /: 'list' and 'int' in python/ 不支持的操作数类型:python中的“list”和“int”
【发布时间】:2019-07-09 14:37:33
【问题描述】:
   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]

【问题讨论】:

标签: python arrays list loops average


【解决方案1】:

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

total.append(vector)

和:

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

【讨论】:

    猜你喜欢
    • 2018-10-19
    • 1970-01-01
    • 2017-01-30
    • 2012-12-12
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多