如何获取文件中Unicode字符串的频率

时间:2014-02-10 11:41:42

标签: python unicode

这是我的代码

计算文件中出现单词的次数(所有条目均为Unicode)

Text_file  = open("Mytext.txt", 'r').read()

Wordlist = {'മാന്നാര്‍':[], 'മാന്‍':[]}
for line in Text_file:
    for word in Wordlist.keys():
        Wordlist[word].append(line.count(word))

我的预期结果是

'മാന്നാര്‍' _ 5
മാന്‍ _ 1

My_text =

കുരുവികളോട്‌ കൂട്ട്‌ കൂടാന്‍ …  മട്ടാഞ്ചേരി  കുരുവികളോടൊത്ത്‌ കൂട്ടുകൂടാനും സംരക്ഷിക്കുവാനും കുരുന്നുമനസ്സുകളില്‍ ബോധമുണര്‍ത്താന്‍ ജെയിന്‍ ഫൗണ്ടേഷന്‍ രംഗത്ത്‌  ലോക കുരുവി ദിനമായ ഇന്നലെ കുരുന്നുകള്‍ക്ക്‌ കുരുവിക്കൂടും കുടിവെള്ളപാത്രവും നല്‍കിക്കൊണ്ടാണ്‌ ഫൗണ്ടേഷന്‍ പക്ഷി-മൃഗാദി പരിശീലന പദ്ധതി നടപ്പിലാക്കുന്നത്‌  സ്ക്കൂളുകള്‍  ലൈബ്രറികള്‍ എന്നിവ കേന്ദ്രീകരിച്ചാണ്‌ ഫൗണ്ടേഷന്‍ പദ്ധതി നടപ്പിലാക്കുന്നത്‌  കുരുവികളെ സംരക്ഷിക്കുന്നതിനും  പരിചരിക്കുന്നതിനുമായി പരിസ്ഥിതി സൗഹൃദമായ മണ്‍കുടങ്ങളാണ്‌ ഫൗണ്ടേഷന്‍ സമ്മാനിച്ചത്‌  വേനല്‍കാല ചൂടില്‍ ദാഹമകറ്റുന്നതിന്‌ മണ്‍കലങ്ങളും ഇതിനോടൊപ്പം നല്‍കുകയും ചെയ്തു   
ലോകകുരുവി ദിനത്തില്‍ നടന്ന കുരുവികള്‍ക്ക്‌ കൂടൊരുക്കാം പരിപാടിയില്‍ വിദേശികളും സ്വദേശികളും സാക്ഷികളായി  ഫോര്‍ട്ടുകൊച്ചിയിലെ സെന്റ്‌ മാര്‍ക്കസ്‌ സ്ക്കൂളിലെ കുട്ടികള്‍ക്കാണ്‌ ഫൗണ്ടേഷന്‍ കുരുവിക്കൂടുകള്‍ നല്‍കിയത്‌  ജൈന്‍ ഫൗണ്ടേഷന്‍  ജനമൈത്രി പോലീസ്‌  സെന്റ്മാര്‍ക്കസ്‌ സ്ക്കൂള്‍ എന്നിവരുമായി കൈകോര്‍ത്ത്‌ സംഘടിപ്പിച്ച പരിപാടിയില്‍ ജനമൈത്രി പോലീസ്‌ സി ആര്‍ ഒ  പി യു ഹരിദാസ്‌ സ്ക്കൂള്‍ പ്രിന്‍സിപ്പല്‍ ഹേറിന്‍ ഫെര്‍ണാണ്ടസിന്‌ നല്‍കി പദ്ധതി ഉദ്ഘാടനം ചെയ്തു  ഫൗണ്ടേഷന്‍ ഭാരവാഹി മുകേഷ്‌ ജെയിന്‍ ശാന്തി മേനോന്‍  പ്രിയ കെനറ്റ്‌  എം എം സലീം സുധി എന്നിവര്‍ സംസാരിച്ചു    

但我得到了

{'\xe0\xb4\xae\xe0\xb4\xbe\xe0\xb4\xa8\xe0\xb5\x8d\xe0\xb4\xa8\xe0\xb4\xbe\xe0\xb4\xb0\xe0\xb5\x8d\xe2\x80\x8d': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'മാന്‍': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}

这里有什么错误?

1 个答案:

答案 0 :(得分:0)

你需要你的脚本文件是unicode,你需要python来打开输入文件unicode,utf-8,utf-16 - 无论文件的编码是什么。例如,

import codecs
f = codecs.open('Mytext.txt', encoding='utf-16')
for line in f:
    print repr(line)

请参阅http://docs.python.org/2/howto/unicode.html

除此之外,你需要你的字典将计数的字符串映射到计数,而不是列表,如,

Wordlist = {'മാന്നാര്‍':0, 'മാന്‍':0}

当您需要递增字典条目时:

Wordlist['മാന്നാര്‍'] += 1