Python - 从字符串中删除停用词

时间:2013-11-30 14:29:40

标签: python string

我无法创建从字符串输入中删除停用词的代码。目前,这是我的代码:

stopWords = [ "a", "i", "it", "am", "at", "on", "in", "to", "too", "very", \
                 "of", "from", "here", "even", "the", "but", "and", "is", "my", \
                 "them", "then", "this", "that", "than", "though", "so", "are" ]
stemEndings = [ "-s", "-es", "-ed", "-er", "-ly" "-ing", "-'s", "-s'" ]
punctuation = [ ".", ",", ":", ";", "!", "?" ]
line = raw_input ("Type in lines, finish with a . at start of line only:")
while line != ".":
    def remove_punctuation(input): #removes punctuation from input
        output = ""
        text= 0
        while text<=(len(input)-1) :
            if input[text] not in punctuation:
               output=output + input[text]
            text+=1
        return output
    newline= remove_punctuation(line)
    newline= newline.lower()

可以添加哪些代码来根据上面的stopWords列表从字符串中删除stopWords?提前谢谢。

4 个答案:

答案 0 :(得分:3)

我理解你的问题,你想从输入字符串中删除标点符号。我的变体remove_punctuation功能:

def remove_punctuation(input_string):
    for item in punctuation:
        input_string = input_string.replace(item, '')
    return input_string

答案 1 :(得分:3)

正如greg建议的那样,你应该使用for循环而不是while,因为它更像pythonic&amp;容易理解代码。此外,您应该在<{1}}循环之前使用函数声明进行输入,以便python解释器不会每次都重新定义函数!

此外,如果您愿意,可以将标点符号设置为while而不是string(为了便于阅读和简化)

list

答案 2 :(得分:0)

我在另一篇文章中发现了一些有趣的东西,可以提高你的代码性能。 尝试使用下面链接中提到的设置。 Faster way to remove stop words in Python

信用转到alko

答案 3 :(得分:0)

您可以使用 NTLK 库代替定义停止词。

pip install nltk