xlsx 文件的 Readlines 函数工作不正常
Readlines function for an xlsx file works inproper
目标是情感分类。步骤是打开 3 个 xlsx 文件,读取它们,用 gensim.doc2vec 方法处理并用 SGDClassificator 分类。只需尝试重复 this code on doc2vec。 Python2.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()
但事实证明,生成的列表不是预期的那样:
print 'length of pos_reviews is %s' % len(pos_reviews)
>>> length of pos_reviews is 1
文件对应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 是句子列表的情况,而
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 行时,没有任何变化。
当我在论坛上搜索时,没有人有类似的错误。我已经打破了我的头出了什么问题以及如何解决它。感谢您的帮助!
目标是情感分类。步骤是打开 3 个 xlsx 文件,读取它们,用 gensim.doc2vec 方法处理并用 SGDClassificator 分类。只需尝试重复 this code on doc2vec。 Python2.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()
但事实证明,生成的列表不是预期的那样:
print 'length of pos_reviews is %s' % len(pos_reviews)
>>> length of pos_reviews is 1
文件对应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 是句子列表的情况,而
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 行时,没有任何变化。 当我在论坛上搜索时,没有人有类似的错误。我已经打破了我的头出了什么问题以及如何解决它。感谢您的帮助!