微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AttributeError: 'WordList' 对象没有属性 'split'

如何解决AttributeError: 'WordList' 对象没有属性 'split'

在对“脚本”列进行标记后,我尝试应用词形还原。但我得到一个 AttributeError。我尝试了不同的方法

这是我的“脚本”栏:

df_toklem["script"][0:5]
---------------------------------------------------------------------------
type(df_toklem["script"])

输出

id
1    [ext,street,day,ups,man,big,pot,belly,...
2    [credits,still,life,tableaus,lawford,n,h...
3    [fade,ext,convent,whispering,nuns,pr...
4    [fade,int,c,hercules,turbo,prop,night,e...
5    [open,theme,jaws,plane,busts,clouds,like...
Name: script,dtype: object
---------------------------------------------------------------------------
pandas.core.series.Series

以及我尝试应用词形还原的代码

from textblob import Word
nltk.download("wordnet")
df_toklem["script"].apply(lambda x: " ".join([Word(word).lemmatize() for word in x.split()]))

错误

[nltk_data] Downloading package wordnet to
[nltk_data]     C:\Users\PC\AppData\Roaming\nltk_data...
[nltk_data]   Package wordnet is already up-to-date!
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-72-dbc80c619ec5> in <module>
      1 from textblob import Word
      2 nltk.download("wordnet")
----> 3 df_toklem["script"].apply(lambda x: " ".join([Word(word).lemmatize() for word in x.split()]))

~\Anaconda3\lib\site-packages\pandas\core\series.py in apply(self,func,convert_dtype,args,**kwds)
   4198             else:
   4199                 values = self.astype(object)._values
-> 4200                 mapped = lib.map_infer(values,f,convert=convert_dtype)
   4201 
   4202         if len(mapped) and isinstance(mapped[0],Series):

pandas\_libs\lib.pyx in pandas._libs.lib.map_infer()

<ipython-input-72-dbc80c619ec5> in <lambda>(x)
      1 from textblob import Word
      2 nltk.download("wordnet")
----> 3 df_toklem["script"].apply(lambda x: " ".join([Word(word).lemmatize() for word in x.split()]))

AttributeError: 'WordList' object has no attribute 'split'

我尝试了不同的方法,但不幸的是找不到有效的解决方案。感谢您抽出宝贵时间。

解决方法

您尝试执行的操作不起作用,因为您将字符串函数(拆分)应用于单词列表。 我会尝试使用 nltk,并使用我的标记化数据创建一个新的 Pandas 列:

import nltk
df_toklem['tokenized'] = df_toklem.apply(lambda row: nltk.word_tokenize(row['script']))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。