【发布时间】:2020-01-22 13:38:24
【问题描述】:
我有一个文件,我正在尝试对其进行词频列表,但我在列表和字符串方面遇到了问题。我将文件更改为字符串以从文件中删除数字,但这最终会弄乱标记化。预期的输出是我正在打开的文件的字数,不包括数字,但我得到的是以下内容:
Counter({'<_io.TextIOWrapper': 1, "name='german/test/polarity/negative/neg_word_list.txt'": 1, "mode='r'": 1, "encoding='cp'>": 1})
done
代码如下:
import re
from collections import Counter
def word_freq(file_tokens):
global count
for word in file_tokens:
count = Counter(file_tokens)
return count
f = open("german/test/polarity/negative/neg_word_list.txt")
clean = re.sub(r'[0-9]', '', str(f))
file_tokens = clean.split()
print(word_freq(file_tokens))
print("done")
f.close()
【问题讨论】:
-
您好,您可以添加输入和预期结果示例吗?
-
clean = re.sub(r'[0-9]', '', f.read())? -
facepalm 我尝试了所有方法,但 f.read 当然有效。谢谢!
-
为什么
count在这里是全局的,如果您只在循环内使用file_tokens而不是word,那么for word in file_tokens:循环的目的是什么?我认为您的功能可以简化为def word_freq(file_tokens): return Counter(file_tokens),然后您可以通过删除它并改为调用print(Counter(file_tokens))来简化它。
标签: python string list word-frequency