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]
答案 0 :(得分:0)
要向列表中添加元素,请使用append方法。要划分列表中的每个元素并返回新列表,您可以使用列表推导来访问列表中的每个元素,而不仅仅是划分整个列表。从而修改代码的相关部分:
total.append(vector)
和:
rata = [x/jumlah_kata for each x in total]