我无法创建从字符串输入中删除停用词的代码。目前,这是我的代码:
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?提前谢谢。
答案 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