【问题标题】:How to remove space between English Words after extracting from pdfplumber从pdfplumber中提取后如何删除英文单词之间的空格
【发布时间】:2021-03-15 13:04:48
【问题描述】:

我已将文本从 pdf(使用 pdfplumber)提取到 txt,但在 PDF 文件中没有的单词之间存在一些空格。

我尝试使用“Previous_word”+“current_word”组合查找单词并检查它们是否存在于 NLTK.words 中以找出单词之间有多余空格的位置,但效果不佳。

我正在寻找一些建议,谢谢

【问题讨论】:

  • 好像有几个空格,是“\t”吗?能否附上一段文字样本?
  • sedyou 可以:sed -i /s/\ */ /g <your file>,但我不知道这是否是一个好的答案,也许你可以直接在 python 中做一些更好的事情

标签: python pdf pdfplumber


【解决方案1】:

我建议在你的语料库中寻找两个的后续单词的出现,这应该揭示这种拆分不会导致其他英文单词的所有情况。

【讨论】:

    【解决方案2】:

    将带有两个空格的单词放入列表的示例逻辑,然后您可以实现您喜欢的功能:

    text = """
    asdasd  asd asdd d
    uuurr ii ii  rrr
    """
    
    words = text.split(" ") #<- split if 1 spaces
    dictionary = list() #<- dictionary list to compare
    words_wrapper = list() #<- list of words with 2 spaces
    
    for idx in range(len(words)):
        if words[idx] == '':
            word = f"{words[idx-1]} {words[idx+1]}"
            words_wrapper.append(word)
            if word in dictionary:
                pass #<- do sth 
                
    # Print filtered words
    print(words_wrapper)
    

    或者您也可以使用 .join 将带有 2 个空格的单词组合在一起 :

    text = """
    asdasd  asd asdd d
    uuurr ii ii  rrr
    """
    
    print("".join(text.split("  ")))
    

    【讨论】:

    • 如果您在提取的文本中进一步阅读,您会发现还有一些不需要的单空格(“profi tably”、“definitive”),双空格只是让人眼前一亮.因此,删除双空格并不能解决 OP 的问题。
    猜你喜欢
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多