在UTF-8上应用collections.counter()
我有一个由utf-8格式的非英语文本组成的列表。 因此,当我试图打印一个单词时,它会给出以下信息: u'\u0648\u0627\u0644\u0623\u0631\u0646\u0628' 因此,为了将其打印为原始单词,我必须循环它,它将正确输出为原始单词 我想找出5个最常用的单词。 将单词存储到collections.counter()函数中时,它们以unicode格式输入。 如何访问计数器()中的单词以打印前5个最常见的单词 我已经完成了以下代码:(txt是我的文本文件) words=[w代表txt.split()中的w] 将打印出来在UTF-8上应用collections.counter(),collections,utf-8,python-2.7,frequency,Collections,Utf 8,Python 2.7,Frequency,我有一个由utf-8格式的非英语文本组成的列表。 因此,当我试图打印一个单词时,它会给出以下信息: u'\u0648\u0627\u0644\u0623\u0631\u0646\u0628' 因此,为了将其打印为原始单词,我必须循环它,它将正确输出为原始单词 我想找出5个最常用的单词。 将单词存储到collections.counter()函数中时,它们以unicode格式输入。 如何访问计数器()中的单词以打印前5个最常见的单词 我已经完成了以下代码:(txt是我的文本文件) words=[w
>>> [(u'\u0627\u0644\u0633\u0644\u062d\u0641\u0627\u0629', 5),
(u'\u0627\u0644\u0645\u063a\u0631\u0648\u0631', 3),
(u'\u0627\u0644\u0623\u0631\u0646\u0628', 2), (u'\u060c', 2),
(u'\u0648\u0627\u0644\u0623\u0631\u0646\u0628', 2)]
[u'\ufeff\u0643\u0627\u0646',u'\u064a\u0627',u'\u0645\u0627',
…u'\u0643\u0627\u0646',u'\u0641\u064a',u'\u0642\u062f\u064a\u0645']
因此,我循环它以获得所需的输出(我不知道为什么)
将打印出来
>>> [(u'\u0627\u0644\u0633\u0644\u062d\u0641\u0627\u0629', 5),
(u'\u0627\u0644\u0645\u063a\u0631\u0648\u0631', 3),
(u'\u0627\u0644\u0623\u0631\u0646\u0628', 2), (u'\u060c', 2),
(u'\u0648\u0627\u0644\u0623\u0631\u0646\u0628', 2)]
كايا㶋㶋ن
我使用counter()函数查找最频繁的单词
>>> count = collections.Counter(words)
>>> print count.most_common(5)
将打印出来
>>> [(u'\u0627\u0644\u0633\u0644\u062d\u0641\u0627\u0629', 5),
(u'\u0627\u0644\u0645\u063a\u0631\u0648\u0631', 3),
(u'\u0627\u0644\u0623\u0631\u0646\u0628', 2), (u'\u060c', 2),
(u'\u0648\u0627\u0644\u0623\u0631\u0646\u0628', 2)]
我想访问每个单词并循环打印出它们的频率。在第一个示例中,您可以直接打印单词以获得原件(我不懂阿拉伯语,所以这可能是错误的): 如果您是通过解释器执行此操作的,并且没有明确使用
打印
,您仍然会看到unicode表示:
>>> u'\u0648\u0627\u0644\u0623\u0631\u0646\u0628'
u'\u0648\u0627\u0644\u0623\u0631\u0646\u0628'
因此,您只需调用print
即可查看实际单词:
>>> l
[(u'\u0627\u0644\u0633\u0644\u062d\u0641\u0627\u0629', 5),
(u'\u0627\u0644\u0645\u063a\u0631\u0648\u0631', 3),
(u'\u0627\u0644\u0623\u0631\u0646\u0628', 2), (u'\u060c', 2),
(u'\u0648\u0627\u0644\u0623\u0631\u0646\u0628', 2)]
>>> for el in l:
print el[0], el[1]
السلحفاة 5
المغرور 3
الأرنب 2
، 2
والأرنب 2
@用户1799092没问题,很高兴它有帮助:)