【问题标题】:Get TypeError when using TfidfVectorizer in python在 python 中使用 TfidfVectorizer 时获取 TypeError
【发布时间】:2019-10-10 14:39:42
【问题描述】:

我是 python 新手,需要你的帮助。

我正在使用 NLP,我想对一个字符串字段进行分类。

我阅读了数据集

data = pd.read_csv("dataset.csv",sep=';',encoding='latin-1',error_bad_lines=False)

标记字段

data['campo']= data['campo'].str.split()

输出是:

1- [Su, inexperto, personal] 2- [Atención, al, cliente]

当我查看互联网上存在的教程时,对于大多数人来说,tokeniza 返回带有撇号的分隔词。

问题是当我想矢量化 (TfidfVectorizer) 时,我收到一个错误,我认为我的问题就在这里。

你能帮帮我吗?为什么我没有带撇号的标记?

执行此操作后,我添加了对字段进行矢量化的可能性:

Tfidf_vect = TfidfVectorizer (max_features = 5000)
Tfidf_vect.fit(data ['field'])

从这里,我抛出错误:

AttributeError: 'list' 对象没有属性 'lower'

我以为我是来找低级的,所以我补充说:

Tfidf_vect = TfidfVectorizer (lowercase = False, max_features = 5000)  

Tfidf_vect.fit (data ['field'])

然后他从那里向我开枪:

TypeError:预期的字符串或类似字节的对象

你知道这是什么问题吗?

【问题讨论】:

    标签: python-3.x scikit-learn tfidfvectorizer


    【解决方案1】:

    在输入tfidfVectorizer() 之前不要标记您的文本,这意味着您必须删除代码中的以下行。

    data['campo']= data['campo'].str.split()
    

    TfidfVectorizer 在内部进行标记化。直接尝试以下代码行!

    Tfidf_vect = TfidfVectorizer (max_features = 5000)
    Tfidf_vect.fit(data ['campo'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-25
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      相关资源
      最近更新 更多