Python 2.7 在Python中从列表中删除句号、逗号和引号

Python 2.7 在Python中从列表中删除句号、逗号和引号,python-2.7,word-frequency,Python 2.7,Word Frequency,我有一个用于文本文件中单词频率计数的python代码。该程序的问题在于它考虑了fullstop,因此改变了计数。为了计算单词,我使用了一个单词排序列表。我试图使用 words = open(f, 'r').read().lower().split() uniqueword = sorted(set(words)) uniqueword = uniqueword.replace(".","") 但我得到的错误是 AttributeError: 'list' object has no

我有一个用于文本文件中单词频率计数的python代码。该程序的问题在于它考虑了fullstop,因此改变了计数。为了计算单词,我使用了一个单词排序列表。我试图使用

 words = open(f, 'r').read().lower().split()  
 uniqueword = sorted(set(words))
 uniqueword = uniqueword.replace(".","") 
但我得到的错误是

AttributeError: 'list' object has no attribute 'replace'

任何帮助都将不胜感激:)

您可以在设置
之前使用列表理解来处理单词:

words = [word.replace(".", "") for word in words]
您也可以在(
uniquewords=[word.replace…]
之后删除它们,但随后将重新引入重复项

请注意,如果要计算这些单词,a可能更有用:

from collections import Counter

counts = Counter(words)

你最好还是和我一起去

words = re.findall(r'\w+', open(f, 'r').read().lower())

它将获取由一个或多个“单词字符”组成的所有字符串,并忽略标点和空格。

不清楚您到底遇到了什么问题。你是否发现你的单词后面有标点符号?或者你发现你的“单词”列表中有标点符号吗?我得到的结果是:
单词数金发女郎4个金发女郎。2
两者都是同一个词,唯一的区别是一个出现在句子的中间,而另一个出现在结尾。