forked from mrlan/EnglishPal
				
			bug修改,前面提交的first commit是重构
							parent
							
								
									61f46f7d58
								
							
						
					
					
						commit
						705aa5efcb
					
				|  | @ -38,20 +38,42 @@ def file2str(fname):#文件转字符 | ||||||
|     return s |     return s | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def str2chararray(str):  # 字符串转字符数组 | ||||||
|  |     chararray = [] | ||||||
|  |     for i in range(len(str)): | ||||||
|  |         chararray.append(str[i]) | ||||||
|  |     return chararray | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用时才给s赋值。 | def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用时才给s赋值。 | ||||||
|     special_characters = '_©~=+[]*&$%^@.,?!:;#()"“”—‘’' # 把里面的字符都去掉 |     # carr = str2chararray(s)  # 字符串转字符数组 | ||||||
|  |     # print(carr) | ||||||
|  |     special_characters = '&_~=+[]%^@.,?!:;#()"“”—‘’|/\\<>{}'  # 把里面的字符都去掉 | ||||||
|  |     special_words = ('$lt', '$gt', '$')  # 特殊词汇 | ||||||
|     for c in special_characters: |     for c in special_characters: | ||||||
|         s = s.replace(c, ' ') # 防止出现把 apple,apple 移掉逗号后变成 appleapple 情况 |         s = s.replace(c, ' ')  # 防止出现把 apple,apple 移掉逗号后变成 appleapple 情况 | ||||||
|  |     carr = str2chararray(s)  # 字符串转字符数组 | ||||||
|  |     for i, value in enumerate(carr): | ||||||
|  |         if value == '&':  # 遍历替换 | ||||||
|  |             carr[i] = '\'' | ||||||
|  |             print('sss' + s) | ||||||
|  |             for j in range(1,5): | ||||||
|  |                 if carr[i+j] in [' ','3','9']: | ||||||
|  |                     carr[i + j]='' | ||||||
|  |     s = ''.join(carr)  # 字符数组转字符串 | ||||||
|  |     print('sss'+s) | ||||||
|  |     for w in special_words:  # 替换字符串中的剩余特殊字符 | ||||||
|  |         s = s.replace(w, ' ') | ||||||
|     s = s.replace('--', ' ') |     s = s.replace('--', ' ') | ||||||
|     s = s.strip() # 去除前后的空格 |     s = s.strip()  # 去除前后的空格 | ||||||
| 
 | 
 | ||||||
|     if '\'' in s: |     if '\'' 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] == '\'': | ||||||
|                 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] | ||||||
|  | @ -60,6 +82,7 @@ def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用 | ||||||
|         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