首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:'WordList‘对象没有属性’拆分‘

AttributeError:'WordList‘对象没有属性’拆分‘
EN

Stack Overflow用户
提问于 2020-12-29 07:14:28
回答 1查看 152关注 0票数 0

在标记我的“脚本”列之后,我尝试应用Lemmatization。但我得到了一个AttributeError。我尝试了不同的方法

这是我的“脚本”专栏:

代码语言:javascript
复制
df_toklem["script"][0:5]
---------------------------------------------------------------------------
type(df_toklem["script"])

输出:

代码语言:javascript
复制
id
1    [ext, street, day, ups, man, big, pot, belly, ...
2    [credits, still, life, tableaus, lawford, n, h...
3    [fade, ext, convent, day, 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

以及我试图应用Lemmatization的代码:

代码语言:javascript
复制
from textblob import Word
nltk.download("wordnet")
df_toklem["script"].apply(lambda x: " ".join([Word(word).lemmatize() for word in x.split()]))

错误:

代码语言:javascript
复制
[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'

我尝试了不同的方法,但不幸的是没有找到一个有效的解决方案。谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-29 07:28:41

您要做的工作将无法工作,因为您正在将字符串函数(拆分)应用到一个单词列表中。我会尝试使用nltk,然后用我的标记化数据创建一个新的熊猫列:

代码语言:javascript
复制
import nltk
df_toklem['tokenized'] = df_toklem.apply(lambda row: nltk.word_tokenize(row['script']))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65488631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档