如何在 pyspark 数据帧上应用 nltk.pos_tag

How to apply nltk.pos_tag on pyspark dataframe

我正在尝试在 pyspark 数据帧中名为 "removed" 的标记化列之一应用 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.

我怎样才能做到?

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

在列的每一行上应用 pos_tag

例如你开始写:

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()

Here 你有文档。