读取xlsx文件的readlines功能无效

2024-10-02 14:24:20 发布

您现在位置:Python中文网/ 问答频道 /正文

目标是情感分类。步骤是打开3个xlsx文件,读取它们,使用gensim.doc2vec公司方法用sgd分类仪进行分类。试着重复this code on doc2vec。Python 2.7

with open('C:/doc2v/trainpos.xlsx','r') as infile:
    pos_reviews = infile.readlines()
with open('C:/doc2v/trainneg.xlsx','r') as infile:
    neg_reviews = infile.readlines()
with open('C:/doc2v/unsup.xlsx','r') as infile:
    unsup_reviews = infile.readlines()

但结果发现,最终的列表并不是预期的那样:

^{pr2}$

这些文件分别包含18、1221和2203个raw。我认为这些列表将具有相同数量的元素。在

下一步是连接所有的句子。在

y = np.concatenate((np.ones(len(pos_reviews)), np.zeros(len(neg_reviews))))
x_train, x_test, y_train, y_test = train_test_split(np.concatenate((pos_reviews, neg_reviews)), y, test_size=0.2)

这就导致了当x-train,x-test是句子的列表时,它们应该是while

y_train = [0.]
y_test = [1.]

在这个除法之后,每个句子都有一个标签:

def labelizeReviews(reviews, label_type):
labelized = []
for i,v in enumerate(reviews):
    label = '%s_%s'%(label_type,i)
    labelized.append(LabeledSentence(v, [label]))
return labelized
x_train = labelizeReviews(x_train, 'TRAIN')
x_test = labelizeReviews(x_test, 'TEST')
unsup_reviews = labelizeReviews(unsup_reviews, 'UNSUP')

正如在the numpy documentation中所写,数组的大小应该相等。但是当我把更大的文件减少到18行时,没有什么改变。 当我在论坛上搜索时,没有人有类似的错误。我的头都断了,出什么毛病了,怎么修。谢谢你的帮助!在


Tags: 文件testaswithnp分类trainopen
1条回答
网友
1楼 · 发布于 2024-10-02 14:24:20

通常,不能使用readlinesread等方法将Microsoft Excel文件作为文本文件读取。您应该先将文件转换成另一种格式(好的解决方案是.csv,它可以由csv模块读取),或者使用特殊的python模块,如pyexcel和{a3}直接读取.xlsx文件。在

相关问题 更多 >