我正在尝试使用Python从组合的英语句子中创建子句。我需要帮助,以找出最佳方法和正确方法。
我调查了与此Finding meaningful sub-sentences from a sentence相关的类似问题。提出新问题的原因是,一旦我从原始句子中识别出一组子陈述,便想重新表达新创建的句子。
发布当前正在用于执行任务的最小代码:
def create_SLEW_Messages(req):
print(req)
# Pass Fail statement will be something like
# "Verify that " + InitPart
# first split the requirement with SHALL keyword, which is the subject
InitPart = re.split('shall', req, flags=re.IGNORECASE)[0]
# to get the exact word after shall
verbWord = re.split('shall', req, flags=re.IGNORECASE)[1].split()[0]
TempPassFailStatement1 = re.split('and', req, flags=re.IGNORECASE)[0]
PassFailStatement1 = re.split('shall', TempPassFailStatement1, flags=re.IGNORECASE)[1]
PassFailStatement2 = re.split('and', req, flags=re.IGNORECASE)[1].split(",")[0]
returnPassFailStatement1 = "Verify that " + InitPart + " will " + PassFailStatement1
print(returnPassFailStatement1)
returnPassFailStatement2 = ""
if verbWord in PassFailStatement2:
returnPassFailStatement2 = "Verify that " + InitPart + " will " + PassFailStatement2
print(returnPassFailStatement2)
else:
returnPassFailStatement2 = "Verify that " + InitPart + " will " + verbWord + " " + PassFailStatement2
print(returnPassFailStatement2)
return returnPassFailStatement1, returnPassFailStatement2
前提条件-提供给上述函数的语句将始终带有“必须”关键字
数据1 ==> 输入1- alpha磁带应向下移动以增加xyz_alphaBeta,而向上移动以减小xyz_alphaBeta。
输出(实际):
验证alpha磁带将向下移动以增加xyz_alphaBeta
验证alpha磁带将向上移动以减小xyz_alphaBeta。
上面的输出是根据我的要求,但是,当我传递相似种类和不同复杂度的句子时,我的算法无法检测到正确的子句,并且对不正确或不完整的句子进行构架,如数据2所示,< / em>
数据2 ==> 输入2-最小数据错误应放置在alpha磁带上,向上移动以增大fac_alphaV3,向下移动以减小fac_alphaV3。
输出(实际):
验证“最小数据错误”将位于alpha磁带上,向上移动以增加fac_alphaV3
验证最小数据错误将向下以减少fac_alphaV3。
输出(必填):
验证“最小数据错误”将放置在alpha磁带上,并向上移动以增加fac_alphaV3
验证最小数据错误将放置在alpha磁带上,并向下移动以减小fac_alphaV3。
PS。我知道,就拆分语言文本而言,正则表达式或拆分技术不是一种好技术,因为文本语言可能会因一种形式而异。这就是原因,我正在为此寻求一些建议
欢迎任何建议或意见!!!