Compare commits

...

3 Commits

Author SHA1 Message Date
任殷杰 35205d2066 更新 'app/wordfreqCMD.py' 2022-06-20 13:13:26 +08:00
任殷杰 ce2af6665d 更新 'app/wordfreqCMD.py' 2022-06-20 13:12:27 +08:00
任殷杰 3ca66d147c 更新 'app/wordfreqCMD.py' 2022-06-20 13:07:27 +08:00
2 changed files with 19 additions and 12 deletions

View File

@ -20,6 +20,6 @@ class WordFreq:
if __name__ == '__main__':
f = WordFreq('BANANA; Banana, apple ORANGE Banana banana.')
f = WordFreq('i\'m BANANA; Banana, apple ORANGE Bana-na/////,./;\'[]-=---\'/-banana.')
print(f.get_freq())

View File

@ -8,6 +8,7 @@ import string
import operator
import os, sys # 引入模块sys因为我要用里面的sys.argv列表中的信息来读取命令行参数。
import pickle_idea
import re
def freq(fruit):
'''
@ -39,19 +40,26 @@ def file2str(fname):#文件转字符
def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用时才给s赋值。
special_characters = '_©~=+[]*&$%^@.,?!:;#()"“”—‘’' # 把里面的字符都去掉
'''special_characters = '_©~=+[]*&$%^@.,?!:;#()"“”—‘’' #把里面的字符都去掉
for c in special_characters:
s = s.replace(c, ' ') # 防止出现把 apple,apple 移掉逗号后变成 appleapple 情况
s = s.replace('--', ' ')
s = s.replace('--', ' ')'''
cop = re.compile("[^a-z^A-Z^\\']")#通过正则表达式保留英文字符和'特殊字符
s=cop.sub(' ' , s)
s = s.strip() # 去除前后的空格
#s=keep_need_punctuation(s,'-')
s=keep_need_punctuation(s,'\'')
return s
if '\'' in s:
def keep_need_punctuation(s,need):#用于保留特定的字符
if need in s:
n = len(s)
t = '' # 用来收集我需要保留的字符
for i in range(n): # 只有单引号前后都有英文字符,才保留
if s[i] == '\'':
t = '' # 用来收集我需要保留的字符
for i in range(n): # 只有单引号前后都有英文字符,才保留
if s[i] == need:
i_is_ok = i - 1 >= 0 and i + 1 < n
if i_is_ok and s[i-1] in string.ascii_letters and s[i+1] in string.ascii_letters:
if i_is_ok and s[i - 1] in string.ascii_letters and s[i + 1] in string.ascii_letters:
t += s[i]
else:
t += s[i]
@ -59,7 +67,6 @@ def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用
else:
return s
def sort_in_descending_order(lst):# 单词按频率降序排列
lst2 = sorted(lst, reverse=True, key=lambda x: (x[1], x[0]))
return lst2