forked from mrlan/EnglishPal
				
			bug修改,前面提交的first commit是重构
							parent
							
								
									61f46f7d58
								
							
						
					
					
						commit
						705aa5efcb
					
				|  | @ -38,10 +38,32 @@ def file2str(fname):#文件转字符 | |||
|     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赋值。 | ||||
|     special_characters = '_©~=+[]*&$%^@.,?!:;#()"“”—‘’' # 把里面的字符都去掉 | ||||
|     # carr = str2chararray(s)  # 字符串转字符数组 | ||||
|     # print(carr) | ||||
|     special_characters = '&_~=+[]%^@.,?!:;#()"“”—‘’|/\\<>{}'  # 把里面的字符都去掉 | ||||
|     special_words = ('$lt', '$gt', '$')  # 特殊词汇 | ||||
|     for c in special_characters: | ||||
|         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.strip()  # 去除前后的空格 | ||||
| 
 | ||||
|  | @ -51,7 +73,7 @@ def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用 | |||
|         for i in range(n):  # 只有单引号前后都有英文字符,才保留 | ||||
|             if s[i] == '\'': | ||||
|                 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] | ||||
|  | @ -60,6 +82,7 @@ def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用 | |||
|         return s | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| def sort_in_descending_order(lst):# 单词按频率降序排列 | ||||
|     lst2 = sorted(lst, reverse=True, key=lambda x: (x[1], x[0])) | ||||
|     return lst2 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue