紧慢 2019-12-20 12:30
浏览 94

stopwordsremover输入格式有问题(无法使用但没有报错)?

按照原始数据输入可以正常运行,但是将自己的数据代入时,并没有删除想删除的部分
原始数据

data_list=[[['r', 'z', 'h', 'k', 'p']]\
           ,[['z', 'y', 'x', 'w', 'v', 'u', 't', 's']]\
           ,[['s', 'x', 'o', 'n', 'r']]\
           ,[['x', 'z', 'y', 'm', 't', 's', 'q', 'e']]\
           ,[['z']]\
           ,[['x', 'z', 'y', 'r', 'q', 't', 'p']]]
    data2=spark.createDataFrame(data_list,["items"])
    data2.show()
    print(data2.dtypes)
    data2.printSchema()
    print('***********remover-z************')
    remover = StopWordsRemover(inputCol='items', outputCol='input', stopWords=['z'])
    data_input=remover.transform(data2)
    data_input.show()
    data_input.printSchema()

原始输出结果为:

    +--------------------+
    |               items|
    +--------------------+
    |     [r, z, h, k, p]|
    |[z, y, x, w, v, u...|
    |     [s, x, o, n, r]|
    |[x, z, y, m, t, s...|
    |                 [z]|
    |[x, z, y, r, q, t...|
    +--------------------+

    [('items', 'array<string>')]
    root
    |-- items: array (nullable = true) 
    |    |-- element: string (containsNull = true)
    ***********remover-z************
    +--------------------+--------------------+
    |               items|               input|
    +--------------------+--------------------+
    |     [r, z, h, k, p]|        [r, h, k, p]|
    |[z, y, x, w, v, u...|[y, x, w, v, u, t...|
    |     [s, x, o, n, r]|     [s, x, o, n, r]|
    |[x, z, y, m, t, s...|[x, y, m, t, s, q...|
    |                 [z]|                  []|
    |[x, z, y, r, q, t...|  [x, y, r, q, t, p]|
    +--------------------+--------------------+

    root
    |-- items: array (nullable = true)
    |    |-- element: string (containsNull = true)
    |-- input: array (nullable = true)
    |    |-- element: string (containsNull = true)

我的数据为:

    data_new.show()
    print(data_new.dtypes)
    add_stopwords =['o']
    remover = StopWordsRemover(inputCol='items', outputCol='input', stopWords=['o'])
    data_input=remover.transform(data_new)
    data_input.show()

StopWordsRemover并没有删除字符,程序结果为:


    +---------------+---------------+
    |          items|          input|
    +---------------+---------------+
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,o,c,o,o,e,g]|[o,o,c,o,o,e,g]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    +---------------+---------------+

    root
    |-- items: array (nullable = false)
    |    |-- element: string (containsNull = false)

请问这种情况该如何改?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥25 主成分分析中的第一第二主成分分别代表哪些参数
    • ¥15 oracle数据库查询语句问题
    • ¥15 有没有c++绘制算法的佬们吗救孩一下
    • ¥15 android 蓝牙闪退
    • ¥15 绝缘子污秽comsol仿真参数
    • ¥15 Fatal error in Process MEMORY
    • ¥15 labelme生成的json有乱码?
    • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
    • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
    • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时