【问题标题】:How can I clean and text mine a list of lists in Python如何在 Python 中清理和文本挖掘列表列表
【发布时间】:2021-08-25 21:01:14
【问题描述】:

我有一段代码可以从几个 PDF 中提取文本并将它们放入一个名为 pages_text 的列表列表中

现在我的文本在列表中,我正在尝试使用以下代码清除它的特殊字符:

for i in len(pages_text):
    pages_text[i] = pages_text[i].lower()
    re.sub('™', "", pages_text[i])
    re.sub('[\n]', "", pages_text[i])
    re.sub("'\n'", "", pages_text[i])
    re.sub('[™]', '', pages_text[i])
    re.sub('fl', '', pages_text[i])
    re.sub('\nŒ', '', pages_text[i])
    re.findall(r"\s+", pages_text[i])
    print(pages_text)

但删除特殊字符并不完全有效。

我的问题是:

  1. 谁能帮我解决我的清洁过程的问题?

感谢您为我指明正确方向的任何帮助!

**为简洁明了而编辑

【问题讨论】:

    标签: python beautifulsoup scikit-learn python-re


    【解决方案1】:

    Python 字符串是不可变的,re.sub 不会就地修改它们。您必须将原始字符串替换为re.sub() 返回的新字符串。

    此外,您可以更有效地将它们组合成一个正则表达式,而不是使用多个正则表达式。例如:

    special_chars_re = re.compile('[™flŒ\n]')
    for idx, line in enumerate(pages_text):
        pages_text[idx] = special_chars_re.sub('', line.lower())
    

    对于您的其余问题,请一次只针对一个问题发布帖子,以免您的问题因过于宽泛而被关闭。

    【讨论】:

    • 有道理!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多