【问题标题】:Apply isalpha to a list将 isalpha 应用于列表
【发布时间】:2020-04-10 15:08:48
【问题描述】:

我是 python 新手。我有一个 NLP 项目,需要从我的关键字中删除频率。我成功地在我列入列表的一行中做到了。

所以输入:tokens= ['fiber', '16', ';', 'quoi', '1', ';', “危险”, '1',]

使用

tokens = [word for word in tokens if word.isalpha()

输出是这个 ['纤维','quoi','危险',]

现在我想将此应用于整个专栏。这就是我所拥有的:

from nltk import word_tokenize,sent_tokenize
tokens = cleaningkey.apply(word_tokenize)
tokens.head(5)

输出:

0    [fibre, 16, ;, quoi, 1, ;, dangers, 1, ;, comb...
1               [restaurant, 1, ;, marrakech.shtml, 1]
2    [payer, 1, ;, faq, 1, ;, taxe, 1, ;, habitatio...
3    [rigaud, 3, ;, laurent, 3, ;, photo, 11, ;, pr...
4    [societe, 1, ;, disparition, 1, ;, proche, 1, ...
Name: text_norm, dtype: object

我尝试了不同的方法,但不断得到(列表对象没有属性“isalpha”)。有人可以告诉我如何进行吗?

谢谢!

【问题讨论】:

    标签: python-3.x function text nlp


    【解决方案1】:

    您应该将测试功能应用于列表的每个项目:

    cleaningkey.apply(lambda lst: [word for word in lst if word.isalpha()])
    #0    [fibre, quoi, dangers]
    #1              [restaurant]
    

    或者:

    df.cleaningkey.apply(lambda lst: list(filter(str.isalpha, lst)))
    #0    [fibre, quoi, dangers]
    #1              [restaurant]
    

    【讨论】:

    • 奇怪.. 我得到了这个输出:cleaningkey.apply(lambda lst: list(filter(str.isalpha, lst))) 0 [f, i, b, r, e, q, u , o, i, d, a, n, g, e, r, ... 1 [r, e, s, t, a, u, r, a, n, t, m, a, r, r, a, ... 2 [p, a, y, e, r, f, a, q, t, a, x, e, h, a, b, ...
    • 编辑:成功了!! tokens.apply(lambda lst: [word for word in lst if word.isalpha()]) 谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 2015-08-25
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    相关资源
    最近更新 更多