【问题标题】:How to delete sentence with one word in Python如何在Python中删除一个单词的句子
【发布时间】:2019-02-25 15:12:09
【问题描述】:

我目前正在处理一个包含超过 10000 条新闻的数据集,我想删除只包含一个单词的句子。我搜索了 nltk 和 textcleaner,但是我无法删除只包含一个单词的句子。

比如说: 输入:我想删除一个单词的句子。好的。好的。让我们开始吧。 输出:我想删除一个单词的句子。让我们开始吧。

代码是:

import textcleaner as tc
import nltk
import numpy as np

datafile = np.genfromtxt("f12filtered.txt", encoding='utf-8', delimiter=".")

data = tc.document(datafile)
data.remove_stpwrds() 

【问题讨论】:

  • 你试过什么?您的代码仅读取文件并删除停用词。你做了什么来解决这个问题?请添加代码。
  • 删除停用词是我想要实现的。阅读说明。但是,它不会打印出来或打印到 txt 文件。
  • 其实你是对的。停用词不会删除一个单词的句子,它只是删除英语中最常用的单词。我不知道如何用一个单词删除句子。任何形式的帮助表示赞赏。

标签: python numpy text nltk


【解决方案1】:

可以使用分隔符'.'将数据拆分为句子列表。然后如果句子中只有一个单词,我们可以删除该句子。数据现在将是一个列表,如果您想使用完整的文本或按原样使用它,您可以加入该列表。您可以使用以下代码执行此操作:

    data = data.split('.')
    for sent in data:
        sent = sent.split(' ')
        if len(sent) < 2:
            data.remove((' ').join(sent))

连接数据以形成单个字符串:

    data = ('.').join(data)

【讨论】:

  • 有一些错误,请您修复它们。其中之一是split(.)
  • 感谢您的回答。我还应该在您的代码中包含data = tc.document(datafile) data.remove_stpwrds() 吗?
  • 您可以根据自己的用例添加。如果您想删除多余的单词,请使用文本清理和删除停用词以及我给出的代码。
  • 我自己添加了几行,效果很好。谢谢,女士。我接受你的回答。
猜你喜欢
  • 1970-01-01
  • 2021-08-20
  • 1970-01-01
  • 1970-01-01
  • 2021-05-16
  • 2021-10-31
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多