CAB*_*CAB -2 python nltk python-3.x pandas
我正在尝试标记我的pandas系列中的每个句子。我尝试按照文档中的说明使用 apply 进行操作,但没有成功:
x.apply(nltk.word_tokenize)
Run Code Online (Sandbox Code Playgroud)
如果我只是使用nltk.word_tokenize(x)也不起作用,因为x不是字符串。有人有什么想法吗?
编辑:x是一系列pandas句子:
0 A very, very, very slow-moving, aimless movie ...
1 Not sure who was more lost - the flat characte...
2 Attempting artiness with black & white and cle...
Run Code Online (Sandbox Code Playgroud)
与x.apply(nltk.word_tokenize)它返回完全相同:
0 A very, very, very slow-moving, aimless movie ...
1 Not sure who was more lost - the flat characte...
2 Attempting artiness with black & white and cle...
Run Code Online (Sandbox Code Playgroud)
错误nltk.word_tokenize(x)是:
TypeError: expected string or bytes-like object
Run Code Online (Sandbox Code Playgroud)
问题:您是否保存中间结果?x.apply()创建原始文件的副本Series,并将适当的转换应用于Series. 请参阅下面的示例,了解这可能如何影响您的代码......
我们将首先确认该方法word_tokenize()适用于示例文本片段。
>>> import pandas as pd
>>> from nltk import word_tokenize
>>> word_tokenize('hello how are you') # confirming that word_tokenize works.
['hello', 'how', 'are', 'you']
Run Code Online (Sandbox Code Playgroud)
然后让我们创建一个Series来玩。
>>> s = pd.Series(['hello how are you',
'lorem ipsum isumming lorems',
'more stuff in a line'])
>>> print(s)
0 hello how are you
1 lorem ipsum isumming lorems
2 more stuff in a line
dtype: object
Run Code Online (Sandbox Code Playgroud)
在交互式 Python 提示符下word_tokenize使用该函数执行表明它标记化了...apply()
但并不表明这是一个副本...而不是永久更改s
>>> s.apply(word_tokenize)
0 [hello, how, are, you]
1 [lorem, ipsum, isumming, lorems]
2 [more, stuff, in, a, line]
dtype: object
Run Code Online (Sandbox Code Playgroud)
事实上,我们可以打印s来表明它没有改变......
>>> print(s)
0 hello how are you
1 lorem ipsum isumming lorems
2 more stuff in a line
dtype: object
Run Code Online (Sandbox Code Playgroud)
相反,如果我们提供一个标签(在本例中wt为函数调用的结果),apply()它允许我们永久保存结果。我们可以通过打印看到wt。
>>> wt = s.apply(word_tokenize)
>>> print(wt)
0 [hello, how, are, you]
1 [lorem, ipsum, isumming, lorems]
2 [more, stuff, in, a, line]
dtype: object
Run Code Online (Sandbox Code Playgroud)
在交互式提示上执行此操作使我们能够更轻松地检测到这种情况,但在脚本中运行它有时意味着生成副本的事实将悄无声息地通过,并且没有任何指示。
| 归档时间: |
|
| 查看次数: |
3490 次 |
| 最近记录: |