python - 从文本问题中删除标点符号/数字

标签 python nltk

我有一些代码可以很好地使用 python 中的正则表达式删除标点符号/数字,我不得不稍微更改代码以便停止列表起作用,这不是特别重要。不管怎样,现在标点符号没有被删除,坦率地说,我很困惑为什么。

import re
import nltk

# Quran subset
filename = raw_input('Enter name of file to convert to ARFF with extension, eg. name.txt: ')

# create list of lower case words
word_list = re.split('\s+', file(filename).read().lower())
print 'Words in text:', len(word_list)
# punctuation and numbers to be removed
punctuation = re.compile(r'[-.?!,":;()|0-9]')
for word in word_list:
    word = punctuation.sub("", word)
print word_list

任何关于为什么它不起作用的指示都会很棒,我不是 python 专家,所以它可能是愚蠢得可笑的东西。谢谢。

最佳答案

改变

for word in word_list:
    word = punctuation.sub("", word)

word_list = [punctuation.sub("", word) for word in word_list]    

在上面的for-loop中对word的赋值,只是简单的改变了这个临时变量引用的值。它不会改变 word_list

关于python - 从文本问题中删除标点符号/数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5512765/

相关文章:

python - 使用多线程在不同的运行中获得不同的结果

python - 如何在 python 单元测试中模拟连接错误和请求超时

python - 如何将 XSD 转换为 Python 类

python - 如何使用继承在python中定义父对象?

python - 通过语法检查(Python)从一组可能性中选择最流畅的文本

python - pdb有没有初始化文件(类似于.gdbinit)?

python - NLTK 关系提取 - relextract.extract_rels 中的自定义语料库

machine-learning - NLP 和 ML 短语提取

适用于从右到左语言的 NLP 工具?

python - 将连字符与换行符相结合