Compare commits
	
		
			3 Commits 
		
	
	
		
			master
			...
			Bug474-Ren
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | 35205d2066 | |
|  | ce2af6665d | |
|  | 3ca66d147c | 
|  | @ -20,6 +20,6 @@ class WordFreq: | ||||||
|      |      | ||||||
| 
 | 
 | ||||||
| if __name__ == '__main__': | 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()) |     print(f.get_freq()) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -8,6 +8,7 @@ import string | ||||||
| import operator | import operator | ||||||
| import os, sys # 引入模块sys,因为我要用里面的sys.argv列表中的信息来读取命令行参数。 | import os, sys # 引入模块sys,因为我要用里面的sys.argv列表中的信息来读取命令行参数。 | ||||||
| import pickle_idea | import pickle_idea | ||||||
|  | import re | ||||||
| 
 | 
 | ||||||
| def freq(fruit): | def freq(fruit): | ||||||
|     ''' |     ''' | ||||||
|  | @ -39,19 +40,26 @@ def file2str(fname):#文件转字符 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用时才给s赋值。 | def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用时才给s赋值。 | ||||||
|     special_characters = '_©~=+[]*&$%^@.,?!:;#()"“”—‘’' # 把里面的字符都去掉 |     '''special_characters = '_©~=+[]*&$%^@.,?!:;#()"“”—‘’'  #把里面的字符都去掉 | ||||||
|     for c in special_characters: |     for c in special_characters: | ||||||
|         s = s.replace(c, ' ') # 防止出现把 apple,apple 移掉逗号后变成 appleapple 情况 |         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 = 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) |         n = len(s) | ||||||
|         t = '' # 用来收集我需要保留的字符 |         t = ''  # 用来收集我需要保留的字符 | ||||||
|         for i in range(n): # 只有单引号前后都有英文字符,才保留 |         for i in range(n):  # 只有单引号前后都有英文字符,才保留 | ||||||
|             if s[i] == '\'': |             if s[i] == need: | ||||||
|                 i_is_ok = i - 1 >= 0 and i + 1 < n |                 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] |                     t += s[i] | ||||||
|             else: |             else: | ||||||
|                 t += s[i] |                 t += s[i] | ||||||
|  | @ -59,7 +67,6 @@ def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用 | ||||||
|     else: |     else: | ||||||
|         return s |         return s | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| def sort_in_descending_order(lst):# 单词按频率降序排列 | def sort_in_descending_order(lst):# 单词按频率降序排列 | ||||||
|     lst2 = sorted(lst, reverse=True, key=lambda x: (x[1], x[0])) |     lst2 = sorted(lst, reverse=True, key=lambda x: (x[1], x[0])) | ||||||
|     return lst2 |     return lst2 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue