新增编辑距离函数
This commit is contained in:
@@ -218,7 +218,7 @@ class ToolFile(BaseModel):
|
|||||||
with open(self.OriginFullPath, 'rb') as f:
|
with open(self.OriginFullPath, 'rb') as f:
|
||||||
return f.read()
|
return f.read()
|
||||||
def LoadAsText(self) -> str:
|
def LoadAsText(self) -> str:
|
||||||
with open(self.OriginFullPath, 'r') as f:
|
with open(self.OriginFullPath, 'r', encoding='utf-8') as f:
|
||||||
return f.read()
|
return f.read()
|
||||||
def LoadAsWav(self):
|
def LoadAsWav(self):
|
||||||
try:
|
try:
|
||||||
@@ -370,8 +370,8 @@ class ToolFile(BaseModel):
|
|||||||
f.write(binary_data)
|
f.write(binary_data)
|
||||||
return self
|
return self
|
||||||
def SaveAsText(self, text_data:str):
|
def SaveAsText(self, text_data:str):
|
||||||
with open(self.OriginFullPath, 'w') as f:
|
with open(self.OriginFullPath, 'w', encoding='utf-8') as f:
|
||||||
f.writelines(text_data)
|
f.write(text_data)
|
||||||
return self
|
return self
|
||||||
def SaveAsAudio(self, audio_data:"AudioSegment"):
|
def SaveAsAudio(self, audio_data:"AudioSegment"):
|
||||||
'''
|
'''
|
||||||
|
|||||||
@@ -52,7 +52,10 @@ def word_segmentation(
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
raise ValueError("jieba is not install")
|
raise ValueError("jieba is not install")
|
||||||
|
|
||||||
def GetEditorDistanceAndOperations(s1:str, s2:str) -> Tuple[int, List[Tuple[str, int, int, str]]]:
|
def GetEditorDistanceAndOperations(
|
||||||
|
s1:str,
|
||||||
|
s2:str,
|
||||||
|
) -> Tuple[int, List[Tuple[Literal["add","delete"], int, int, str]]]:
|
||||||
"""
|
"""
|
||||||
计算两个字符串的编辑距离和操作序列
|
计算两个字符串的编辑距离和操作序列
|
||||||
操作格式: (操作类型, 开始位置, 结束位置, 内容)
|
操作格式: (操作类型, 开始位置, 结束位置, 内容)
|
||||||
@@ -112,3 +115,14 @@ def GetEditorDistanceAndOperations(s1:str, s2:str) -> Tuple[int, List[Tuple[str,
|
|||||||
edit_distance = m + n - 2 * lcs[m][n]
|
edit_distance = m + n - 2 * lcs[m][n]
|
||||||
return edit_distance, merged_operations
|
return edit_distance, merged_operations
|
||||||
|
|
||||||
|
def GetDiffOperations(
|
||||||
|
s1:str,
|
||||||
|
s2:str,
|
||||||
|
) -> List[Tuple[Literal["add","delete"], int, int, str]]:
|
||||||
|
"""
|
||||||
|
计算两个字符串的差异操作序列
|
||||||
|
操作格式: (操作类型, 开始位置, 结束位置, 内容)
|
||||||
|
位置基于源字符串s1
|
||||||
|
"""
|
||||||
|
|
||||||
|
return operations
|
||||||
Reference in New Issue
Block a user