0

我在 Python 中遇到了一个程序问题。我正在尝试从 html 文件中读取内容,删除 html 标签,然后删除停用词。

实际上,我可以删除标签,但不能删除停用词。该程序从文本文件中获取这些信息并将它们存储在一个列表中。该文件的格式如下:

a
about
an
...
yours

如果我在 Python 解释器中逐步测试我的代码,它可以工作,但是当我执行 'python main.py' 时它就不起作用

我的代码是:

from HTMLParser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

def remove_stop_words(textContent, stopWords):
    for stopWord in stopWords:
        word = stopWord.replace('\n','') + ' '
        textContent.replace(word, '')
    return textContent


def main():
    stopWords = open("stopWords.txt", "r").readlines()
    emailContent = open("mail.html", "r").read()
    textContent = strip_tags(emailContent)
    print remove_stop_words(textContent.lower(), stopWords)

main()

我希望你能帮帮我

4

1 回答 1

4

这里的问题是您没有保存textContent.replace(word, ''). 该replace函数不会textContent就地修改变量;而是返回结果。

因此,您需要将结果保存回textContent. 所以

textContent.replace(word, '')

应该:

textContent = textContent.replace(word, '')
于 2013-07-24T04:11:35.960 回答