我正在使用scikit learn建立一个分类器来预测两个句子是否为释义(例如,释义:爱因斯坦有多高,而阿尔伯特·爱因斯坦的长度是多少)。在
我的数据由2列字符串(短语对)和1列目标列(0和1)组成(=无释义,释义)。我想试试不同的算法。在
我希望下面的最后一行代码符合模型。相反,预处理管道不断产生一个我无法解决的错误:“AttributeError:”努比·恩达雷'对象没有'lower'属性。“
代码如下所示,我隔离了在最后一行显示的错误(为了简洁起见,我排除了其余部分)。我怀疑是因为目标列包含0和1,它们不能变为小写。在
我已经在stackoverflow上尝试过类似问题的答案,但到目前为止还没有运气。在
你怎么能解决这个问题?在
question1 question2 is_paraphrase
How long was Einstein? How tall was Albert Einstein? 1
Does society place too How do sports contribute to the 0
much importance on society?
sports?
What is a narcissistic What is narcissistic personality 1
personality disorder? disorder?
======
^{pr2}$
错误不是因为最后一列,而是因为trainxdataset将包含两列}。现在这将导致
question1
和{X_train
将每一行作为值列表。所以当CountVectorizer
试图将其转换为小写时,它将返回一个错误,因为努比·恩达雷不包含lower函数。在为了克服这个问题,您需要将数据集}。然后对这些单独执行CountVectorizer,然后对每个结果执行tfiddtransformer。还要确保在这些数据集上进行转换的对象是相同的。在
X_train
分成两部分,比如X_train_pt1
和{最后,将这两个数组堆叠在一起,并将其作为分类器的输入。您可以找到类似的implementation here。在
更新:
我认为以下几点应该会有所帮助(我承认可以进一步改进此代码以提高效率):
相关问题 更多 >
编程相关推荐