【发布时间】:2020-10-28 18:25:12
【问题描述】:
对于一个看似简单的问题,我提前道歉;但是,我是使用 Tensorflow 和 Keras 的新手,我无法从教程或以前提出的问题中找到解决方案。
我正在尝试加载包含文章标题和情绪分数的数据集,并在文本数据上使用标记器进行分类。我的代码如下:
import keras
import sklearn
import pandas as pd
import numpy as np
from keras import preprocessing
from keras import models
from keras import layers
from google.colab import drive
drive.mount("/content/drive")
!ls drive/'My Drive'/'Dat'/Data
data = pd.read_csv("drive/My Drive/Dat/Data/stock_sentiments.csv", header=[0])
dataset = data.values
X = dataset[:, :-1]
y = dataset[:, -1]
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.sequence import pad_sequences
tokenizer = Tokenizer(num_words=1000, filters='0123456789!"#$%&()*+,-./:;<=>?@[\]^_`{|}~', lower=True) #this code works
tokenizer.fit_on_texts(X) #this code returns the error
sequences = tokenizer.texts_to_sequences(X) #this also returns and error
word_index = tokenizer.word_index
word_index
当我尝试拟合标记器时,我收到以下错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-21-0c427a3ac01d> in <module>()
2
3 tokenizer = Tokenizer(num_words=1000, filters='0123456789!"#$%&()*+,-./:;<=>?@[\]^_`{|}~', lower=True) #this code works
----> 4 tokenizer.fit_on_texts(X) #this code returns the error
1 frames
/usr/local/lib/python3.6/dist-packages/keras_preprocessing/text.py in
text_to_word_sequence(text, filters, lower, split)
41 """
42 if lower:
---> 43 text = text.lower()
44
45 if sys.version_info < (3,):
AttributeError: 'numpy.ndarray' object has no attribute 'lower'
当我打印出 X 时,它返回一个标题数组,由逗号和 [括号] 分隔,这正是我所期望的。当我打印出 y 时,它会打印一个由 0 和 1 组成的数组,用逗号分隔,这也是我所期望的。
我确定我错过了导致此错误的明显内容,但我觉得我已经走到了死胡同。任何帮助或澄清表示赞赏。
【问题讨论】:
标签: python pandas tensorflow keras