首页 > 解决方案 > 如何在 pyspark 数据帧上应用 nltk.pos_tag

问题描述

我正在尝试在 pyspark 数据框中名为“已删除”的标记化列之一上应用 pos 标记。

我正在尝试

nltk.pos_tag(df_removed.select("removed"))

但我得到的只是价值错误:ValueError: Cannot apply 'in' operator against a column: please use 'contains' in a string column or 'array_contains' function for an array column.

我怎样才能做到?

标签: pysparknltkpart-of-speech

解决方案


答案似乎在错误消息中:输入pos_tag应该是一个字符串,并且您提供一个列输入。您应该pos_tag使用该功能在列的每一行上应用withColumn

例如,您首先编写:

my_new_df = df_removed.withColumn("removed", nltk.pos_tag(df_removed.removed))

你也可以这样做:

my_new_df = df_removed.select("removed").rdd.map(lambda x: nltk.pos_tag(x)).toDF()

这里有文档。


推荐阅读